1курс,2семестр лабы для зачета / лаба3
.docxГУО «БГУИР»
Факультет радиотехники и электроники
Кафедра микро и наноэлектроники
Отчет по
Лабораторной работе №3
Решение систем линейных алгебраических уравнений
Подготовил:
Студент гр.943201
Королюк Н.В
Проверила:
Семижон Е.А.
Минск 2020
Цель: Составить программу решения СЛАУ порядка n и решить систему ли-нейных уравнений пятого порядка с трехдиагональной симметричной матрицей
Вариант №11
Код: #include "iostream"
#include "math.h"
#include "conio.h"
using namespace std;
int i, n, k, n1 = 5;
double t, z, q, d;
double A[5][5];
double B[5];
double eps[5];
double X[5];
double et[5];
int main()
{
for (i = 0; i < 5; i++)
{
for (k = 0; k < 5; k++)
{
A[i][k] = 0;
}
}
cout << "Enter q: ";
cin >> q;
cout << endl << "Enter d: ";
cin >> d;
cout << endl;
A[0][0] = A[4][4] = q;
A[1][1] = A[2][2] = A[3][3] = -2;
for (i = 0; i < 4; i++)
{
k = i + 1;
A[i][k] = A[k][i] = 1;
}
cout << "Matrix A:" << endl;
for (i = 0; i < 5; i++)
{
for (k = 0; k < 5; k++)
{
cout << A[k][i] << "\t ";
}
cout << endl;
}
B[0] = B[4] = 0;
for (i = 1; i <= 3; i++)
{
B[i] = d;
}
cout << "Matrix B:" << endl;
for (i = 0; i < 5; i++)
{
cout << B[i] << endl;
}
n = n1 - 1;
eps[0] = -A[0][1] / A[0][0];
et[0] = B[0] / A[0][0];
for (i = 1; i < n; i++)
{
z = A[i][i] + A[i][i - 1] * eps[i - 1];
eps[i] = -A[i][i + 1] / z;
et[i] = (B[i] - A[i][i - 1] * et[i - 1]) / z;
}
X[n] = (B[n] - A[n][n - 1] * et[n - 1]) / (A[n][n] + A[n][n - 1] * eps[n - 1]);
for (i = n - 1; i >= 0; i--)
{
X[i] = eps[i] * X[i + 1] + et[i];
}
cout << "Matrix X:" << endl;
for (i = 0; i < n1; i++)
{
cout << X[i] << endl;
}
return 0;
}