Розв’язання систем лінійних алгебраїчних рівнянь на ЕОМ – набуття практичних навичок з моделювання паралельних алгебраїчних методів реконструктивної томографії на послідовних ЕОМ.
Завдання:
N |
A |
B |
||
3 |
-0.20 -0.30 1.20 |
1.60 0.10 -0.20 |
-0.10 -1.50 0.30 |
0.30 0.40 -0.60 |
Алгоритм:
![]() |
Програмна реалізація:
#include <stdio.h>
#include <math.h>
#include <conio.h>
int main(void){
int i,j,k,n;
float c,s;
float B[3][4],X[3];
float A[3][4]={{-0.20,1.60,-0.10,0.30},
{-0.30,0.10,-1.50,0.40},
{1.20,-0.20,0.30,-0.60}
};
n=3;
//Прямий хід, робимо матрицю трикутною
for(i=0;i<n;i++){
c=A[i][i];
for(j=n;j>-1;j–){
A[i][j]=A[i][j]/c;
for(k=i+1;k<n;k++){
A[k][j]=A[k][j]-A[i][j]*A[k][i];
}
}
}
//Зворотній хід, знаходимо корені
X[n-1]=A[n-1][n];
for(k=n-2;k>-1;k–){
s=0;
for(j=k+1;j<n;j++){
s=s+A[k][j]*X[j];
}
X[k]=A[k][n]-s;
}
clrscr();
for(i=0;i<n;i++){
printf(" %-5.4f ",X[i]);
}
return 0;}
Результат:
Перевірка: