Ітераціїні методи розв’язування лінійних алгебраїчних рівнянь

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
ЗІ
Кафедра:
ЗІ

Інформація про роботу

Рік:
2016
Тип роботи:
Лабораторна робота
Предмет:
Комп’ютерні методи дослідження інформаційних процесів та систем
Варіант:
16 30

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА кафедра ЗІ  З В І Т до лабораторної роботи №3 з курсу: «Комп’ютерні методи дослідження інформаційних процесів та систем» на тему: «Ітераціїні методи розв’язування лінійних алгебраїчних рівнянь» Варіант № 16 Львів 2016 Мета роботи – ознайомлення з ітераційними методами розв’язування систем лінійних алгебраїчних рівнянь. 1.Завдання Розв’язати систему лінійних алгебраїчних рівнянь методами простої ітерації або Зейделя.  , k=1;  p=1. 2.Блок-схема алгоритму програми  3. Список ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення x, a, b, E – змінні дійсного типу, які є аргументами виразу; y – змінна дійсного типу, якій надається значення результату обчислення виразу; Main() – головний метод; Vvid() – метод, в якому вводяться дані; Obrah() – метод, в якому обчислюється вираз; Convert.ToDouble() – метод перетворення типу змінної в тип double; Math.Pow(x,y) – математичний метод обчислення xy; Math.Abs(x) – математичний метод обчислення модуля; 4. Текст програми using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace kmd_lab_3 { class Program { static void Main(string[] args) { Iterations xD = new Iterations(); xD.Initialization(); xD.PerevirkaZbizhnosti(); xD.SomeCalculations(); xD.Checking(); Console.ReadKey(); } } class Iterations { public int k, p, kil; public double s, b, rez, E; public double[] x0 = new double[4]; public double[] x1 = new double[4]; public double[] e = new double[4]; static public double[,] a; public double[,] alpha; public double[] beta; public void Initialization() { Console.Write("\n write k = "); k = int.Parse(Console.ReadLine()); Console.Write("\n write p = "); p = int.Parse(Console.ReadLine()); s = 0.2 * k; b = 0.2 * p; E = 0.0001; a = new double[,]{{ 30.3, 12.62+s, 4.1, 1.9, -10.55+b}, {3.92, 8.45, -(1.78-s), 1.4, 12.21}, {3.77, 1.21+s, 8.04, 0.28, 15.45-b}, {2.21, 3.65-s, 1.69, 9.99, -8.35}}; alpha = new double[a.GetLength(0), a.GetLength(0)]; beta = new double[a.GetLength(0)]; } public void SomeCalculations() { for (int i = 0; i < a.GetLength(0); i++) { for (int j = 0; j < a.GetLength(0); j++) { if (i != j) alpha[i, j] = -(a[i, j] / a[i, i]); } } for (int i = 0, j = (a.GetLength(1) - 1); i < a.GetLength(0); i++) beta[i] = (a[i, j] / a[i, i]); for (int i = 0; i < beta.GetLength(0); i++) x0[i] = beta[i]; do { for (int i = 0; i < alpha.GetLength(0); i++) { x1[i] = beta[i]; for (int j = 0; j < alpha.GetLength(0); j++) x1[i] = x1[i] + x0[j] * alpha[i, j]; e[i] = Math.Abs(x1[i] - x0[i]); x0[i] = x1[i]; } kil++; } while (!(e[0] < E && e[1] < E && e[2] < E && e[3] < E)); } public void PerevirkaZbizhnosti() { for (int i = 0; i < a.GetLength(0); i++) { rez = 0; for (int j = 0; j < a.GetLength(0); j++) if (i != j) rez += Math.Abs(a[i, j]); if (rez > Math.Abs(a[i, i])) Console.WriteLine("False answer"); } } public void Checking() { Console.WriteLine("Koreni rivnyann'a:"); foreach (int x in x1) Console.Write("\t" + x); double z = x1[0] * a[0, 0] + x1[1] * a[0, 1] + x1[2] * a[0, 2] + x1[3] * a[0, 3]; double z1 = x1[0] * a[1, 0] + x1[1] * a[1, 1] + x1[2] * a[1, 2] + x1[3] * a[1, 3]; double z2 = x1[0] * a[2, 0] + x1[1] * a[2, 1] + x1[2] * a[2, 2] + x1[3] * a[2, 3]; double z3 = x1[0] * a[3, 0] + x1[1] * a[3, 1] + x1[2] * a[3, 2] + x1[3] * a[3, 3]; if (((int)z == (int)a[0, 4]) && ((int)z1 == (int)a[1, 4]) && ((int)z2 == (int)a[2, 4]) && ((int)z3) == ((int)a[3, 4])) Console.WriteLine("\nTrue answer"); Console.WriteLine("Kilkist' iteraziy = " + kil); } } } 5. Результати роботи програми  6. Висновки На цій лабораторній роботі я ознайомився з методами розв’язування систем лінійних алгебраїчних рівнянь. Була складена та відлагоджена програма, яка дозволила реалізувати метод простої ітерації.
Антиботан аватар за замовчуванням

13.12.2016 23:12-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!