高分!C/C++高手请进!

来源:百度知道 编辑:UC知道 时间:2024/05/27 20:45:56
用高斯列主元消去法求解100阶线性方程组:Ax=b,其中矩阵A为:a(ii)=5051-i,(i=1,2,...100);a(ij)=j,(j=1,2,...100且i不等于j),b(i)=338350+5051*i-2*i*i,(i=1,2,...100).注意,我要的是求解该问题的C或者C++程序。好的追加100~150分。有劳高手了,在此不胜感激!

//高斯列主元消去法:
#include <iostream>
#include <cmath>
using namespace std;

#define N 100
void Gaussdiedai(int n, double a[][N+1], double x[])
{
int i,j,k,r;
double m;
for(k=0;k<n-1;k++)
{
r=k;
m=fabs(a[k][k]);
for(i=k+1;i<n;i++)
if(fabs(a[i][k])>m)
{
r=i;
m=fabs(a[i][k]);
}
if(r>k)
for(j=k;j<n+1;j++)
{
m=a[k][j];
a[k][j]=a[r][j];
a[r][j]=m;
}
for(i=k+1;i<n;i++)
{
m=a[i][k]/a[k][k];
for(j=k+1;j<n+1;j++)
a[i][j]-=m*a[k][j];
}
}
x[n-1]=a[(n-1)][n]/a[(n-1)][(n-1)];
for(i=n-2;i>=0;i--)
{
m=a[i][n];