#include<stdio.h>
#include<math.h>
Gaussdiedai(int n,double *a,double *x)
{
int i,j,k,r;
double m;
for(k=0;k<n-1;k++)
{
r=k;
m=fabs(a[k*(n+1)+k]);
for(i=k+1;i<n;i++)
if(fabs(a[i*(n+1)+k])>m)
{
r=i;
m=fabs(a[i*(n+1)+k]);
}
if(r>k)
for(j=k;j<n+1;j++)
{
m=a[k*(n+1)+j];
a[k*(n+1)+j]=a[r*(n+1)+j];
a[r*(n+1)+j]=m;
}
for(i=k+1;i<n;i++)
{
m=a[i*(n+1)+k]/a[k*(n+1)+k];
for(j=k+1;j<n+1;j++)
a[i*(n+1)+j]-=m*a[k*(n+1)+j];
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载