Метод Гаусса для расчета электрических цепей
Разработка алгоритма составления системы уравнений при помощи законов Кирхгофа по определенной электрической схеме. Приложение для решения данной системы методом Гаусса с выбором ведущего элемента по строке. Описание программы, руководство пользователя.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 02.07.2010 |
Размер файла | 435,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
20
Содержание
- Введение
- Метод Гаусса
- Метод Гаусса с выбором ведущего элемента по столбцу
- Описание программы
- Руководство пользователя к программе
- Заключение
- Список литературы
- Приложение А
Введение
Целью настоящей работы является по определенной электрической схеме нужно составить систему уравнений при помощи законов Кирхгофа. А также создать приложение для решения данной системы методом Гаусса с выбором ведущего элемента по строке. Известные значения сопротивлений нагрузок (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.
Данная программа может использоваться при анализе конкретной электрической цепи в электротехники.
Список литературы
1. Амосов, А.А. Вычислительные методы для инженеров: учеб. пособие / А.А. Амосов, Ю.А. Дубинский, Н.А. Копченова; под общ. ред. - М.: Высш. шк., 1994. - 544 с.: ил
2. ГОСТ 2.105 - 95. Общие требования к текстовым документам. Дата введения 1996-07-01. Взамен ГОСТ 2.105-79, ГОСТ 2.906-71
3. ГОСТ 19.701-90 схемы алгоритмов программ, данных и систем. Дата введения 1992-01-01. Взамен ГОСТ 19.002-80
4. Нейман Ю.М., Хлебников В.А. Введение в теорию моделирования и параметризации педагогических тестов. М.: Адепт, 2000.168 с.
5. Гайдамакин Н.А. Автоматизированные информационные системы, базы и банки данных. Москва: Гелиос АРВ, 2002.225 с.
6. Хомоненко А.Д. Базы данных. СП: Корона принт, 2000.637 с.
7. Письменный Д.Т. Конспект лекций по высшей математике. М.: Айрис-пресс, 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 ()
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
Подобные документы
Применение метода Гаусса для решения системы линейный алгебраических уравнений. Алгоритм нахождения максимального по модулю элемента в текущей строке и его перестановки на первое место при помощи матрицы перестановок. Блок-схема и код программы.
лабораторная работа [171,3 K], добавлен 02.10.2013Сущность и особенности языка программирования Си. Основные этапы алгоритма решения системы линейных алгебраических уравнений методом Гаусса, реализация программы для их расчета. Инструкции пользователя и программиста. Тестирование функции решения.
курсовая работа [153,9 K], добавлен 18.02.2013Постановка задачи, математические и алгоритмические основы решения системы линейных алгебраических уравнений. Решение системы данных уравнений методом Гаусса с выбором главного элемента по столбцу. Функциональные модели и блок-схемы решения задачи.
курсовая работа [428,9 K], добавлен 25.01.2010Основные методы решения систем линейных уравнений. Применение способа единственного деления. Способ Гаусса с выбором главного элемента по столбцу и по всей матрице. Сравнение итерационных и прямых методов. Программа решения СЛАУ по методу Гаусса.
курсовая работа [604,0 K], добавлен 28.05.2015Описание математической модели определения тока в электрической цепи с помощью решения системы алгебраических уравнений методом Гаусса. Описание и разработка блок-схемы программы. Ввод данных задачи, составление программы и анализ результатов решения.
контрольная работа [231,8 K], добавлен 15.08.2012Решение системы линейных уравнений с матричными элементами и свободными членами с использованием метода Гаусса с выбором главного элемента, основанного на приведении матрицы системы к треугольному виду с помощью нахождения элементов главной диагонали.
лабораторная работа [71,1 K], добавлен 10.12.2014Метод Гаусса как прямой метод нахождения решений для систем системы линейных уравнений маленькой и средней размерности с помощью компьютерной техники. Редактор кода и исходный код основной программы в Delphi, блок-схема и графическое решение задачи.
контрольная работа [460,8 K], добавлен 15.06.2015Решение системы линейных алгебраических уравнений методом Гаусса с выборкой ведущего элемента. Изучение особенности программной реализации алгоритма, составленной средствами разработки Microsoft Visual Studio. Проведение сложения и умножения двух матриц.
курсовая работа [702,6 K], добавлен 22.03.2015Системы линейных алгебраических уравнений. Код программы для решения систем линейных алгебраических уравнений. Математические и алгоритмические основы решения задачи методом Гаусса. Программная реализация решения. Алгоритмы запоминания коэффициентов.
лабораторная работа [23,5 K], добавлен 23.09.2014Сущность метода Гаусса при решении систем линейных уравнений. Элементарные преобразования этого метода. Краткое описание среды визуальной разработки Delphi. Описание основных применяемых процедур и алгоритм роботы программы по решению уравнений.
курсовая работа [1,1 M], добавлен 29.08.2010