Метод Гауса для розрахунку електричних ланцюгів

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати


Зміст

Введення

Метод Гауса

Метод Гаусса з вибором ведучого елемента за стовпцем

Опис програми

Керівництво користувача до програми

Висновок

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

Додаток А

Введення

Метою цієї роботи є по певній електричної схемі потрібно скласти систему рівнянь за допомогою законів Кірхгофа. А також створити додаток для вирішення даної системи методом Гаусса з вибором ведучого елемента по рядку. Відомі значення опорів навантажень (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

Електрична схема показана на "Form 2". цю форму зі схемою можна викликати за допомогою викликом меню "Електрична схема" (рисунок 2.4).

Малюнок 2.4.

У формі "Про програму" наведена на рисунку 2.5 даний короткий опис програми.

Рисунок 2.5

Керівництво користувача до програми

Запускаємо виконуваний файл "Розрахунок струмів розгалуженої ланцюга. Exe" або відкриваємо файл "Проект1" і запускаємо (F 5). У вікні виведено вікно заставки. По натисненню кнопки "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

'Встановлюємо число рядків і слобцов

MSFlexGrid 1. 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


Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
30.9кб. | скачати


Схожі роботи:
Методи розрахунку складних електричних ланцюгів
Методи розрахунку електричних ланцюгів постійного струму
Методи розрахунку лінійних електричних ланцюгів при імпульсній дії Спектральний аналіз сигналів
Проектування перемикача для комутації електричних ланцюгів постійного і змінного струму
Метод розрахунку скейлінгових констант Фейгенбаума для одновимірних дискретних відображень по крапках надстійке
Дослідження електричних ланцюгів
Теорія електричних ланцюгів
Аналіз лінійних електричних ланцюгів
Основні закони електричних ланцюгів
© Усі права захищені
написати до нас