用C帮忙解一道4元1次方程组

来源:百度知道 编辑:UC知道 时间:2024/09/18 16:24:43
请分别用GAUSS消元法,GAUSS-SEIDIL迭代法,JOCOBI迭代法,分别算出值来
2X1+X2+5X3+X4=5
X1+X2-3X3-4X4=-1
3X1+6X2-2X3-X4=8
2X1+2X2+2X3-3X4=2
希望大家不要浪费时间在百度,GOOGLE上找了,我已经找了一天了,所以希望你不要复制那上面的给我了,能用的话我也不用问这个问题了

GAUSS消元法(我贴在百度上的,没问题啊,另2个我也贴过)
a[4][5]={现在用你的值:}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

float *ColPivot(float *c,int n);

void main()
{
int i,j;
float *x;
int n=4;
float a[4][5]={2.,1.,5.,1.,5., 1.,1.,-3.,-4.,-1., 3.,6.,-2.,-1.,8., 2.,2.,2.,-3.,2.};

x=ColPivot(a[0],n);
for (i=0;i<n;i++) printf("x[%d]=%f\n",i,x[i]);
getch();
}

float *ColPivot(float *c,int n)
{
int i,j,t,k;
float *x,p;
x=(float *)malloc(n*sizeof(float));
for(i=0;i<=n-2;i++)
{
k=i;
for(j=i+1;j<=n-1;j++)
if(fabs(*(c+j*(n+1)+i))>(fabs(*(c+k*(n+1)+i)))) k=j;
if(k!=i)
for(j=i;j<=n;j++)
{
p=*(c+i*(n+1)+j);
*(c+i*(n+1)+j)=*(c+k*(n+1)+j);
*(c+k*(n+1)+j)=p;
}
for(j=i+1;j<=n-1;j++)
{