#include "stdafx.h"
float systgaus(float,float,float);
int _tmain(int argc, _TCHAR* argv[])
{
float A[]={5,0.1,0.2,0.1,4,-0.1,0.1,-0.2,3};
float B[]={10,20,-4.5},X[3];
systgaus(A,B,X);
printf("\n x1=%f,x2=%f,x3=%f", X[0],X[1],X[2]);
return 0;
}
float systgaus (float A0[],float B0[],float X[])
{
int i,j,k;
float A[3][3],B[3],S,D,C;
for(i=0;i<3;i++)
{
B[i]=B0[i]; A[0][i]=A0[i]; A[1][i]=A0[i+3]; A[2][i]=A0[i+6];
}
for(i=0;i<3;i++)
{
D=A[i][i];B[i]=B[i]/D;
for(j=i;j<3;j++) A[i][j]=A[i][j]/D;
for(k=(i+1);k<3;k++)
{
C=A[k][i]; B[k]=B[k]-B[i]*C;
for(j=i;j<3;j++) A[k][j]=A[k][j]-A[i][j]*C;
}
}
X[2]=B[2];
for(k=1;k>0;k--)
{
S=0; for(j=2;j>k;j--) S=S+X[j]*A[k][j]; X[k]=B[k]-S;
}
}
Сообщение отредактировано: Lapp -