#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include "string.h"
// typedef struct
// {
// int (*Matrix)
// /* data */
// }Equation_Typedef;
double Solve_Matrix_1[][10]={
4 , 2 , -3 , -1 , 2 , 1 , 0 , 0 , 0 , 0 ,
8 , 6 , -5 , -3 , 6 , 5 , 0 , 1 , 0 , 0 ,
4 , 2 , -2 , -1 , 3 , 2 , -1 , 0 , 3 , 1 ,
0 , -2 , 1 , 5 , -1 , 3 , -1 , 1 , 9 , 4 ,
-4 , 2 , 6 , -1 , 6 , 7 , -3 , 3 , 2 , 3 ,
8 , 6 , -8 , 5 , 7 , 17 , 2 , 6 , -3 , 5 ,
0 , 2 , -1 , 3 , -4 , 2 , 5 , 3 , 0 , 1 ,
16 , 10 , -11 , -9 , 17 , 34 , 2 , -1 , 2 , 2 ,
4 , 6 , 2 , -7 , 13 , 9 , 2 , 0 , 12 , 4 ,
0 , 0 , -1 , 8 , -3 , -24 , -8 , 6 , 3 , -1
};
double B_1[]={5,12,3,2,3,46,13,38,19,-21};
double Solve_Matrix_2[][8]={
4, 2, -4, 0, 2, 4, 0, 0 ,
2, 2, -1, -2, 1, 3, 2, 0 ,
-4, -1, 14, 1, -8, -3, 5, 6 ,
0, -2, 1, 6, -1, -4, -3, 3 ,
2, 1, -8, -1, 22, 4, -10, -3 ,
4, 3, -3, -4, 4, 11, 1, -4 ,
0, 2, 5, -3, -10, 1, 14, 2 ,
0, 0, 6, 3, -3, -4, 2, 19
};
double B_2[]={0,-6,20,23,9,-22,-15,45};
double Solve_Matrix_3[][10]={
4,-1,0,0,0,0,0,0,0, 0,
-1,4,-1,0,0,0,0,0,0,0,
0,-1,4,-1,0,0,0,0,0,0,
0,0,-1,4,-1,0,0,0,0,0,
0,0,0,-1,4,-1,0,0,0,0,
0,0,0,0,-1,4,-1,0,0,0,
0,0,0,0,0,-1,4,-1,0,0,
0,0,0,0,0,0,-1,4,-1,0,
0,0,0,0,0,0,0,-1,4,-1,
0,0,0,0,0,0,0,0,-1,4
};
double B_3[]={7,5,-13,2,6,-12,14,-4,5,-5};
void Gauss(void *Matrix,double *B,int Order)
{
double *X = malloc(sizeof(double)*Order);
for(int i = 0;i<Order-1;i++)
{
for(int j = i+1;j<Order;j++)
{
double k = ((double (*)[Order])Matrix)[j][i]/((double (*)[Order])Matrix)[i][i];
for(int m = i;m<Order;m++)
{
((double (*)[Order])Matrix)[j][m]-= k*((double (*)[Order])Matrix)[i][m];
}
B[j] -=k*B[i];
}
}
for(int i = Order-1;i>=0;i--)
{
double Tmp = 0;
for(int j = Order-1;j>i;j--)
{
Tmp += X[j]*((double (*)[Order])Matrix)[i][j];
}
X[i] = (B[i]-Tmp)/((double (*)[Order])Matrix)[i][i];
}
printf("X = [");
for(int i = 0;i<Order;i++)
{
printf(" %.5lf",X[i]);
}
printf("]\n");
free(X);
}
int main(int arg)
{
Gauss((void*)Solve_Matrix_1,B_1,10);
Gauss((void*)Solve_Matrix_2,B_2,8);
Gauss((void*)Solve_Matrix_3,B_3,10);
}
高斯消去解非齐次线性方程组
最新推荐文章于 2023-02-20 17:10:59 发布