УНІВЕРСИТЕТ РАДІОЕЛЕКТРОНІКИ
Кафедра «КІТАМ»
ЗВІТ
з лабораторної роботи № 1
з дисципліни «ЧМ»
на тему «Методи розв'язання систем лінійних алгебраїчних рівнянь»
Виконав Прийняв:
ст. гр. АКТАКІТ-20-3 Доц. кафедри:
Завалюєв.А.О. Сітнікова П.Е.
Харків 2021
Цель занятия
Знакомство с точными и приближенными методами решения систем
линейных алгебраических уравнений.
#include <iostream>
using namespace std;
float array1[n][m];
float array2[n][m];
float y[n];
float a,b;
int i,j,k,l;
// прямой ход
for (k = 1; k < n; k++)
{
// поиск и перестановка ненулевых элементов
while (array1[k][k]==0)
{
l=k;
do
{
l=k+1;
if (l>n) goto end; //выход если в столбце все нули
}
while (array1[l][k]==0);
// обратный ход
a=1;
for (i = 1; i <= n; i++)
{
a=a*array1[i][i];
}
// нормировка
array1[i][m]=array1[i][m]/array1[i][i];
array1[i][i]=array1[i][i]/array1[i][i];
// вывод решения
}
}
end: system("pause");
return 0;
}
Ответ
Код
#include <iostream>
#include <iomanip>
#include <cmath>
#include <windows.h>
class Matr
{
private:
int size;
double **mas;
double *mas1;
public:
Matr()
size = 0;
mas = NULL;
mas1 = NULL;
Matr(int l)
size = l;
void Add()
void Print()
void Preob()
double temp = 0;
{
for (int i = 0; i < size; i++)
mas1[i] /= temp;
mas[i][j] /= temp;
mas1[i] *= -1;
mas[i][i] = 0;
{
for (int j = 0; j < i; j++)
sum += fabs(mas[i][j]);
sum = 0;
sum += fabs(mas[i][j]);
sum = 0;
cerr << "Норма матрицы больше или равна 1." << endl;
Sleep(4000);
exit(1);
return eps;
x[i] = mas1[i];
p[i] = 0;
double var = 0;
var = 0;
x[i] = var;
int counter = 0;
do
{
counter++;
cout << "Итерация № " << counter << endl << endl;
var = 0;
a[i] = var;
max = 0;
p[i] = x[i];
cout << "x" << i + 1 << "=" << x[i] << " " << endl;
cout << "max =" << max << endl << endl;
} while (max > per);
cout << "x" << i + 1 << "=" << x[i] << " " << endl;
delete[] x;
delete[] p;
delete[] E;
delete[] a;
~Matr()
delete mas[i];
delete mas;
};
int main()
setlocale(LC_ALL, "rus");
cin >> n;
Matr a(n);
a.Add();
a.Print();
a.Preob();
a.Print();
a.Itera(epsi);
system("pause");
return 0;
}
Метод простых итераций
#include <iostream>
#include <cmath>
int main()
int count;
else
count = 0;
do
count = count + 1;
if(fabs(x1n-x1) < eps &&
x1 = x1n;
x2 = x2n;
x3 = x3n;
x4 = x4n;
// cout << "x1 = " << x1n << endl << "x2 = " << x2n << endl << "x3 = " << x3n
<< endl << "x4 = " << x4n << endl;
}while(1);
x1 = x1n;
x2 = x2n;
x3 = x3n;
x4 = x4n;
cout << "Kolichestvo iter. = " << count << endl << "x1 = " << x1 << endl
<< "x2 = " << x2 << endl << "x3 = " << x3 << endl << "x4 = " << x4 <<
endl;