МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
Кафедра ЗІ
ЗВІТ
до лабораторної роботи № 2
з курсу
"Комп’ютерні методи дослідження інформаційних процесів та систем"
на тему
Методи Гаусса для розв’язування систем лінійних алгебраїчних рівнянь
Варіант 11
Мета роботи – ознайомлення з прямими методами розв’язування систем лінійних алгебраїчних рівнянь.
1. Завдання:
Розв’язати систему лінійних алгебраїчних рівнянь методом Гаусса.
2.Блок-схема алгоритму програми
початок
1
f(x)
x1:=f(x)
ні
k<3 k:=k+1
так
i<k+1
i:=i+1
ні
так
j>=k ні
j:=j-1
так
a[i,j]:= f(x)
f(x)
i>=0
i:=i-1
ні
j>i
j:=j-1
x[i]:= f(x)
x[i]:=f(x)
так
i<k+1
i:=i+1
так
x1,x2,x3,x4
кінець
3. Список ідентифікаторів констант, змінних, функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення
x1,x2,x3,x4 – змінні, які використовуються для знаходження коренів
рівнянь системи.
i,j – змінні, що застосовуються в циклах для позначення
рядків та стовпців.
n – константа, означає кількість стовпців вихідної матриці.
s, p – константи, що використовують для визначення
коефіцієнтів вихідних рівнянь.
mas() - функція, в якій відбувається виведення вихідної
системи на екран, знаходження допоміжних
коефіцієнтів, обчислення коренів системи рівнянь і
виведення їх на екран.
r - посилання на деякий безіменний об’єкт.
4. Текст програми
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Gays
{
double s, p;
double[] x = new double[4];
int i, j, k;
public Gays(int a, int d)
{
s = 0.2 * a;
p = 0.2 * d;
}
public void mas()
{
double[,] a ={{8.3,2.62+s,4.1,1.9,10.55+p},
{3.92,8.45,7.78-s,2.46,12.21},
{3.77,7.21+s,8.04,2.28,15.45-p},
{2.21,3.65-s,1.69,6.99,-8.35}};
Console.Clear();
Console.WriteLine(@" Rozvyazok klasuchnum metodom Gausa");
Console.WriteLine("\n");
for (i = 0; i < 4; i++)
{
for (j = 0; j < 5; j++)
{
if (j == 3)
Console.Write("{0} x{1} ", a[i, j], j + 1);
else if (j == 4)
Console.Write(" = " + a[i, j]);
else
{
Console.Write("{0} x{1}", a[i, j], j + 1);
Console.Write(" + ");
}
}
Console.WriteLine("\n");
}
for (k = 0; k < 3; k++)
{
for (i = k + 1; i < 4; i++)
{
for (j = 4; j >= k; j--)
{
a[i, j] = a[i, j] - (a[k, j] / a[k, k]) * a[i, k];
}
}
}
Console.WriteLine("\n\n\nKoreni Rivnyan':");
for (i = 3; i >= 0; i--)
{
for (j = 3; j > i; j--)
x[i] = x[i] + a[i, j] * x[j];
x[i] = (1.0 / a[i, i]) * (a[i, 4] - x[i]);
}
for (i = 0; i < 4; i++)
Console.WriteLine("x{0}={1}", i + 1, x[i]);
Console.ReadKey();
}
}
class program
{
public static void Main()
{
Gays g = new Gays(1, 1);
g.mas();
}
}
}
5. Результати роботи програми
Висновок: Під час виконання цієї лабораторної роботи я ознайомився з прямими методами розв’язування систем лінійних алгебраїчних рівнянь. Розробив програму для розв’язання системи лінійних алгебраїчних рівнянь класичним методом Гаусса.