用无回代的高斯消元法和简单迭代法 解四元一次方程组

来源:百度知道 编辑:UC知道 时间:2024/05/13 19:20:50
用C语言编写程序实现。要能运行的。 等验证可以运行后可以追加分的

N元通用程序,用四元调用.四元方程组:
a[4][5]={4.,-1.,0.,2.,-1.0,-1,4,-1,0,-7.0,0,-1,4,-1,9.0,2,0,-1,4.0,0.0};

高斯消元法(通用程序):
#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]={4.,-1.,0.,2.,-1.0,-1,4,-1,0,-7.0,0,-1,4,-1,9.0,2,0,-1,4.0,0.0};

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)