Реферат: Метод Гаусса для расчета электрических цепей

Содержание

Введение

Метод Гаусса

Метод Гаусса с выбором ведущего элемента по столбцу

Описание программы

Руководство пользователя к программе

Заключение

Список литературы

Приложение А

Введение

Целью настоящей работы является по определенной электрической схеме нужно составить систему уравнений при помощи законов Кирхгофа. А также создать приложение для решения данной системы методом Гаусса с выбором ведущего элемента по строке. Известные значения сопротивлений нагрузок (R) и ЭДС источников должны вводятся из файла, и отображаться в главном окне приложения. Результаты расчета выводиться на экран. В одном из окон приложения должна отображаться данная электрическая схема.

Метод Гаусса

Метод Гаусса — один из самых распространенных методов решения систем линейных алгебраических уравнений. Этот метод (который называют также метолом последовательного исключения неизвестных) известен в различных вариантах уже более 2000 лет.

Вычисления с помощью метода Гаусса состоят из двух основных этапов, называемых прямым ходом и обратным ходом (обратной подстановкой). Прямой ход метода Гаусса заключается — в последовательном исключении неизвестных из системы для преобразования ее к эквивалентной системе с верхней треугольной матрицей. Вычисления значения неизвестных производят на этапе обратного хода.

Метод Гаусса с выбором ведущего элемента по столбцу

Описание метода. На k-м шаге прямого хода коэффициенты уравнений системы с номерами i= k+1, …,m преобразуется по формулам (1.1)

/>(1.1)

Интуитивно ясно, что во избежание сильного роста коэффициентов системы и связанных с этим ошибок нельзя допускать появления больших множителей />.

В методе Гаусса с выбором главного элемента по столбцу гарантируется что /> для всех k = 1, 2, …, m-1 и i= k+1, …,m.

Отличие этого метода Гаусса от схемы единственного деления заключается в том, что на k-м шаге исключения в качества главного элемента выбирают максимальный по модулю коэффициент /> при неизвестной /> в уравнениях с номерами i=k, k+1, …,m. Затем соответствующее выбранному коэффициенту уравнение с номером /> меняют местами с k-м уравнением системы для того, что бы главный элемент занял место коэффициента />.

После этой перестановки исключение неизвестного /> производят, как в схеме единственного деления.

Блок-схема Гаусса с выбором ведущего элемента по столбцу

/>

/>

Описание программы

При запуске программы появляется окно заставки frmSplash (рисунок 2.1).

/>

Рисунок 2.1

При нажатии кнопки «ОК» открывается форма изображенная на рисунке 2.2 Открытие файла для введения необходимых данных и вывода системы уравнений на элемент FlexGrid, осуществляется при помощи нажатие кнопки «Ввести данные» или вызовом меню Файл > Открыть файл, либо с помощью нажатия комбинации клавиш "Ctrl+A". Далее при нажатий кнопки «Вычислить или вызовом меню Файл > Вычислить выводятся результаты расчетов на элемент TextBox. Значения сопротивлений и ЭДС вводится из файла, ранее вызванного при помощи меню.

/>

Рисунок 2.2

Таблица 2.1 Функции выполняемые пунктами меню

Заголовок

Имя

Действие

Файл

mnFile


--открыть файл

mnOpen

Открывает файл

--сохранить файл

mnSave

Сохраняет файл

--Вычисить

mnGauss

Нахождение неизвестных значений

--Выход

mnExit

Завершение работы приложения

Электрическая схема

mnES

Открываем форму Form2

О программа

mnAbout

Открывает форму frmSplash

Это меню создается с помощью мастера MenuEditor, который вызывается из меню Tools, либо с помощью нажатия на клавиатуре Ctrl+E(рисунок 2.3).

/>

Рисунок 2.3

Электрическая схема показана на „Form2“. эту форму со схемой можно вызвать при помощи вызовом меню „Электрическая схема“ (рисунок 2.4).

/>

Рисунок 2.4.

В форме „О программе“ приведенной на рисунке 2.5 дано краткое описание программы.

/>

Рисунок 2.5

Руководство пользователя к программе

Запускаем исполняемый файл “ Расчет токов разветвленной цепи. exe» или открываем файл “ Проект1" и запускаем (F5). В появившемся окне выведено окно заставки. По нажатию кнопки “ok, открывается главная форма.

С помощью текстового меню открываем файл, который осуществляется при помощи нажатие кнопки «Ввести данные» или сопровождается вызовом меню Файл > Открыть файл, либо с помощью нажатия на клавиатуре Ctrl+А, создается текстовый документ, куда вводятся в одну строчку значения сопротивлений нагрузок, в следующую строчку значения ЭДС источников через пробел, а также выводится исходная система уравнений в виде таблице на элемент FlexGrid

При нажатии на кнопку “Вычислить” или вызовом меню Файл > Вычислить происходить реализация программного кода, включающего в себя метод Гаусса с выбором ведущего элемента по строке, результаты расчетов токов выводятся на элемент TextBox.

Можно просмотреть данную электрическую схему через вызов меню "Электрическая схема".

Также в программе реализована функция сохранения результатов, которая осуществляется вызовом меню Файл > сохранить файл. При нажатие кнопки «выход» закрывается данное приложение.

Заключение

В результате данной курсовой работы были рассчитаны токи разветвленной цепи при помощи законов Кирхгофа. Система линейных уравнений была решена методом Гаусса с выбором ведущего элемента по строке и выведена на элемент FlexGrid. Результаты расчета выведены на элемент TextBox.

Данная программа может использоваться при анализе конкретной электрической цепи в электротехники.

Список литературы

Амосов, А.А. Вычислительные методы для инженеров: учеб. пособие / А.А. Амосов, Ю.А. Дубинский, Н.А. Копченова; под общ. ред. — М.: Высш. шк., 1994. — 544 с.: ил

ГОСТ 2.105 — 95. Общие требования к текстовым документам. Дата введения 1996-07-01. Взамен ГОСТ 2.105-79, ГОСТ 2.906-71

ГОСТ 19.701-90 схемы алгоритмов программ, данных и систем. Дата введения 1992-01-01. Взамен ГОСТ 19.002-80

Нейман Ю.М., Хлебников В.А. Введение в теорию моделирования и параметризации педагогических тестов. М.: Адепт, 2000.168 с.

Гайдамакин Н.А. Автоматизированные информационные системы, базы и банки данных. Москва: Гелиос АРВ, 2002.225 с.

Хомоненко А.Д. Базы данных. СП: Корона принт, 2000.637 с.

Письменный Д.Т. Конспект лекций по высшей математике. М.: Айрис-пресс, 2005. — 228 с.: ил.

ПриложениеА

Dim a (6,6) As Double

Dim X (6) As Double

Dim rr (4) As Double

Dim e (5) As Double

Private Sub Command1_Click ()

Call Gauss

End Sub

Private Sub Command2_Click ()

Call Vectidan

End Sub

Private Sub mnES_Click ()

Form2. Show

End Sub

Private Sub mnGauss_Click ()

Call Gauss

End Sub

Private Sub mnOpen_Click ()

Call Vectidan

End Sub

Private Sub mnSave_Click ()

--PAGE_BREAK--

Dim sfilename As String, sdark As String

Dim stext As String

'вводим диалог сохранения файла

CommonDialog1. FileName = ""

CommonDialog1. ShowSave

If CommonDialog1. FileName <> "" Then

sfilename = CommonDialog1. FileName

'открываем диалог на запись

Open sfilename For Output As #2

Print #2, Text1. Text + " "

Print #2, Text2. Text + " "

Print #2, Text3. Text + " "

Print #2, Text4. Text + " "

Print #2, Text5. Text + " "

Print #2, Text6. Text + " "

Close #2

End If

End Sub

Sub Vectidan ()

Dim sfilename As String, sdark As String

Dim stext As String

'ввод диалога открытия файла

CommonDialog1. FileName = ""

CommonDialog1. ShowOpen

If CommonDialog1. FileName <> "" Then

sfilename = CommonDialog1. FileName

'открываем файл на чтение

Open sfilename For Input As #1

stext = ""

'читаем текст

Input #1, stext

t = Split (stext, " ")

For i = 1 To 4

rr (i) = t (i — 1)

Next i

Input #1, stext

t = Split (stext, " ")

For i = 1 To 5

e (i) = t (i — 1)

Next i

n = 6

m = 7

Call dann

'устанавливаем число строк и слобцов

MSFlexGrid1. Rows = n + 1

MSFlexGrid1. Cols = m + 1

MSFlexGrid1. ColWidth (0) = 300

'выводнуемерациистолбцов

MSFlexGrid1. Row = 0

For i = 1 To m

MSFlexGrid1. Col = i

MSFlexGrid1. Text = Str (i)

MSFlexGrid1. ColWidth (i) = 400

Next i

'вывод нуемерации строк

MSFlexGrid1. Col = 0

For i = 1 To n

MSFlexGrid1. Row = i

MSFlexGrid1. Text = Str (i)

Next i

'устанавливаем адрес ячейки для вывода

For i = 1 To n

For j = 1 To m — 1

MSFlexGrid1. Row = i

MSFlexGrid1. Col = j

MSFlexGrid1. Text = CStr (a (i, j))

Next j

MSFlexGrid1. Row = i

MSFlexGrid1. Col = j

MSFlexGrid1. Text = CStr (X (i))

Next i

MSFlexGrid1. Row = 4

MSFlexGrid1. Col = 1

MSFlexGrid1. CellForeColor = vbRed

MSFlexGrid1. Row = 5

MSFlexGrid1. Col = 5

MSFlexGrid1. CellForeColor = vbRed

MSFlexGrid1. Row = 6

MSFlexGrid1. Col = 5

MSFlexGrid1. CellForeColor = vbRed

MSFlexGrid1. Row = 6

MSFlexGrid1. Col = 6

MSFlexGrid1. CellForeColor = vbRed

MSFlexGrid1. Row = 6

MSFlexGrid1. Col = 7

MSFlexGrid1. CellForeColor = vbGreen

MSFlexGrid1. Row = 5

MSFlexGrid1. Col = 7

MSFlexGrid1. CellForeColor = vbGreen

MSFlexGrid1. Row = 4

MSFlexGrid1. Col = 7

MSFlexGrid1. CellForeColor = vbGreen

'закрываем файл

Close #1

End If

End Sub

Sub Gauss ()

Dim i, j, k, r As Double

Call dann

n = 6

' метод

'поиск главного элемента в i-том столбце

For i = 1 To n

k = i

r = Abs (a (i, i))

For j = i + 1 To n

If Abs (a (j, i)) > r Then

k = j

r = a (j, i)

End If

Next j

If r = 0 Then Exit For

If k <> i Then

'перестоновка

r = X (k)

X (k) = X (i)

X (i) = r

For j = 1 To n

r = a (k, j)

a (k, j) = a (i, j)

a (i, j) = r

Next j

End If

'исключение i-ого неизвестного

r = a (i, i)

X (i) = X (i) / r

For j = 1 To n

a (i, j) = a (i, j) / r

Next j

For k = i + 1 To n

r = a (k, i)

X (k) = X (k) — r * X (i)

For j = 1 To n

a (k, j) = a (k, j) — r * a (i, j)

Next j

Next k

Next i

'обратный ход

For i = n — 1 To 1 Step — 1

For j = i + 1 To n

X (i) = X (i) — a (i, j) * X (j)

Next j

Next i

Text1. Text = Format (X (1), «0.000») & " A"

Text2. Text = Format (X (2), «0.000») & " A"

Text3. Text = Format (X (3), «0.000») & " A"

Text4. Text = Format (X (4), «0.000») & " A"

Text5. Text = Format (X (5), «0.000») & " A"

Text6. Text = Format (X (6), «0.000») & " A"

End Sub

Private Sub mnAbout_Click ()

frmAbout. Show

End Sub

Private Sub mnExit_Click ()

End

End Sub

Private Sub dann ()

n = 6

m = 7

a (1,1) = — 1

a (1,2) = 1

a (1,3) = 1

a (1,4) = 0

a (1,5) = 0

a (1,6) = 0

a (2,1) = 0

a (2,2) = 0

a (2,3) = — 1

a (2,4) = — 1

a (2,5) = 0

a (2,6) = 0

a (3,1) = 0

a (3,2) = 1

a (3,3) = 0

a (3,4) = 0

a (3,5) = 1

a (3,6) = 1

a (4,1) = rr (1)

a (4,2) = 0

a (4,3) = 0

a (4,4) = 0

a (4,5) = 0

a (4,6) = 0

a (5,1) = 0

a (5,2) = 0

a (5,3) = 0

a (5,4) = 0

a (5,5) = rr (2)

a (5,6) = 0

a (6,1) = 0

a (6,2) = 0

a (6,3) = 0

a (6,4) = 0

a (6,5) = rr (2)

a (6,6) = — rr (4) — rr (3)

X (1) = 0

X (2) = 0

X (3) = 0

X (4) = e (2) — e (3)

X (5) = e (1)

X (6) = e (1) + e (4) — e (5)

End Sub


еще рефераты
Еще работы по информатике