Міністерство освіти і науки України
Національний університет
„Львівська політехніка”
Лабораторна робота №2
з курсу
„Алгоритмізація та програмування задач автоматизації”
Завдання:
Використовуючи метод Гауса , розв'язати систему лінійних рівнянь з
точністю до 0.01 .
30.1x1-1.4x2+10x3-1.5x4=10,
-17.5x1+11.1x2+1.3x3-7.5x4=1.3,
1.7x1-21.1x2+1.3x3-7.5x4=10,
2.1x1+2.1x2+3.5x3+3.3x4=1.7,
# include <stdio.h>
# include <math.h>
# include <conio.h>
# define N 4
main()
{
short i,j;float c,s,x[N];
float a[N][N+1]= {{ 30.1,-1.4,10,-1.5,10},
{ -17.5,11.1,1.3,-7.5,1.3},
{ 1.7,-21.1,7.1,-17.1,10},
{2.1,2.1,3.5,3.3, 1.7}},
clrscr();
for(i=0;i<=N-1;i++)
{
for(j=0;j<=N;j++)
printf(" %5.3f ",a[i][j]);
printf("\n");
}
for(i=1;i<=N-1;i++)
{
c=a[i][0];
for(j=0;j<=N;j++)
a[i][j]=a[i][j]*a[0][0]/c-a[0][j];
}
for(i=2;i<=N-1;i++)
{
c=a[i][1];
for(j=0;j<=N;j++)
a[i][j]=a[i][j]*a[1][1]/c-a[1][j];
}
c=a[3][2];
for(j=0;j<=N;j++)
a[3][j]=a[3][j]*a[2][2]/c-a[2][j];
printf("\n");
for(i=0;i<=N-1;i++)
{
for(j=0;j<=N;j++)
printf(" %5.3f ",a[i][j]);
printf("\n");
}
for(i=N-1;i>=0;i--)
{
s=0;
for(j=1+i;j<=N-1;j++)
s+=a[i][j]*x[j];
x[i]=(a[i][N]-s)/a[i][i];
}
for(i=N-1;i>=0;i--)
printf(" \n x[%d]=%5.3f ",i,x[i]);
getchar();
return 0;
}
29.400 7.800 -32.500 -14.600 15.604
23.900 6.600 22.700 -10.208 19.508
15.300 9.800 -11.208 8.502 26.600
5.502 11.000 9.900 6.000 8.805
36.702 4.306 -33.208 -15.505 0.607
0.000 3.900 -29.800 -17.500 15.903
-0.000 0.000 6.900 1.500 30.900
0.000 0.000 0.000 123.584 -31.512
x[3]=-0.254
x[2]=0.763
x[1]=1.869
x[0]=0.308