Ітераційні методи розвязування СЛАР

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА кафедра ЗІ             ЗВІТ До лабораторної роботи №3 з курсу: «Комп’ютерні методи дослідження інформаційних процесів і систем» на тему: «Ітераційний метод для розв’язування систем лінійних алгебраїчних рівнянь» Варіант №1           Мета роботи – ознайомлення з ітераційними методами розв’язування систем лінійних алгебраїчних рівнянь.   ЗАВДАННЯ ДО ЛАБОРАТОРНОЇ РОБОТИ Розв’язати систему лінійних алгебраїчних рівнянь ітераційний методом.   / / Блок-схема програми Текст прогами using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication25 { 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 Введiть заданий коефiцiєнт k = "); k = int.Parse(Console.ReadLine()); Console.Write("\n Введiть заданий коефiцiєнт 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("Умови збiжностi не виконуються"); } } public void Checking() { Console.WriteLine("Коренi рiвняння:"); 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("\nСЛАР розв'язана вiрно!!!"); Console.WriteLine("Кiлькiсть iтерцiй = " + kil); } } } Результат роботи програми /
Антиботан аватар за замовчуванням

28.05.2013 18:05-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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