Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет “Львівська політехніка”
Звіт
до лабораторної роботи № 2
ПРЯМІ ТА ІТЕРАЦІЙНІ МЕТОДИ
РОЗВ’ЯЗУВАННЯ СИСТЕМ ЛІНІЙНИХ
АЛГЕБРИЧНИХ РІВНЯНЬ
з курсу “Комп’ютерні методи дослідження систем керування”
Варіант №24
Львів 2014
Мета роботи: вивчити найпоширеніші прямі та ітераційні методи розв’язування систем лінійних алгебричних рівнянь та способи їх застосування для обчислення визначників і обертання матриць.
Завдання до лабораторної роботи.
Варіант номер 24
24
Обчислити визначник матриці методом Гауса з вибором головного елемента по всій матриці
матриця №1
Матриця №1
де ; ; порядковому № завдання; № групи
(наприклад, для КС-21 )
Код програми:
#include <iostream>
#include <iomanip>
#include <math.h>
#include <conio.h>
using namespace std;
int main()
{
int l, h, w;
cout<<"student Number = "; cin>>l;
double s;
s=0.02*l;
int n=4;
double A[4][4]={{8.3, 2.62+s, 4.1, 1.9},{3.92, 8.45, 7.78-s, 2.46},{3.77, 7.21+s, 8.04, 2.28},{2.21, 3.65-s, 1.69, 6.69}};
double C[4][4], V[4][4];
double det=1, max;
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
V[i][j]=A[i][j];
for(int k=0; k<n; k++)
{
max = fabs(V[k][k]);
h = k;
w = k;
for(int l=k; l<n; l++)
for(int f=k; f<n; f++)
if(max < fabs(V[l][f]))
{
max = abs(V[l][f]);
h = l;
w = f;
}
for(int d=0; d<n; d++)
{
double value = V[k][d];
V[k][d] = V[h][d];
V[h][d] = value;
}
for(int d=0; d<n; d++)
{
if(d < k)
{
double value = C[d][k];
C[d][k] = C[d][w];
C[d][w] = value;
}
else
{
double value = V[d][k];
V[d][k] = V[d][w];
V[d][w] = value;
}
}
det*=pow(-1.0,w+h)*V[k][k];
for(int i=k+1; i<n; i++)
for(int j=k+1; j<n; j++)
{
C[k][j]=V[k][j]/V[k][k];
V[i][j]-=V[i][k]*C[k][j];
}
}
cout<<"det = "<<det<<endl;
}
Результат програми:
/
Висновок: На даній лабораторній роботі я вивчив найпоширеніші прямі та ітераційні методи розв’язування систем лінійних алгебраїчних рівнянь та способи їх застосування для обчислення визначників.