1.程序源码
#include
#include
#include
#include
#include
#define PI 3.141592654
//高斯消元法
int Gauss_Solve(double *x, double **A, double *b, int n)
{
double mik;
double s;
int i, j, k;
//消元
for(k=0; k
{
if(!A[k][k])
return -1;
for(i=k+1; i
{
mik = A[i][k] / A[k][k];
for(j=k; j
{
A[i][j] = A[i][j] - mik * A[k][j];
}
b[i] = b[i] - mik * b[k];
}
}
//printf("消元后的矩阵A: \n");
//for(i=0; i
//printf("%.4lf\n", b[i]);
//回代
x[n-1] = b[n-1] / A[n-1][n-1];
for(k=n-2; k>=0; k--)
{
s = b[k];
for(j=k+1; j
{
s = s - A[k][j] * x[j];
}
x[k] = s / A[k][k];
}
return 0;
}
//3个方形矩阵乘法
int Matrix_Mul(double **A, double **B, double **C, double **D, int a)
{
double **E = (double **)malloc(a*sizeof(double *));
double *rE = (double *)malloc(a*a*sizeof(double));
double sum;
int i, j, k;
for(i=0; i
{
E[i] = rE+i*a;
}
for(i=0; i