用r语言实现高斯消去法
发布网友
发布时间:2023-03-07 16:37
我来回答
共1个回答
热心网友
时间:2023-10-08 20:38
#include<iostream>
#include<cmath>
using namespace std;
#define MAX 50
void input(double a[MAX][MAX+1],int n)
{
cout<<"输入原方程组的增广矩阵"<<endl;
for(int i=0;i<n;i++)
for(int j=0;j<n+1;j++)
cin>>a[i][j];
}
void output(double x[],int n)
{
cout<<"Gauss 消去法得到的原方程组的解为"<<endl;
for(int k=0;k<n;k++)
cout<<x[k]<<" ";
}
int main()
{
double a[MAX][MAX+1],x[MAX],sum,max,t;
int n,i,j,k,max_i;
cout<<"输入原方程组的阶"<<endl; cin>>n;
input(a,n);
for(k=0;k<n-1;k++)//选主元素
{ max=a[k][k];
max_i=k;
for(i=k+1;i<n;i++)
if(fabs(a[i][k])>fabs(max))
{
max=a[i][k];
max_i=i;
}
if(max==0)
break;
if(max_i!=k)//交换两行
for(j=k;j<n+1;j++)
{
t=a[k][j];
a[k][j]=a[max_i][j];
a[max_i][j]=t;
}
for(i=k+1;i<n;i++)
{