Gauss完全主元素消去法解方程组完全

更新时间:2023-09-23 19:56:01 阅读量: IT计算机 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

计算方法实验报告(三)

班级:地信10801 序号: 姓名:

一、实验题目:Gauss完全主元素消去法解方程组 二、实验学时: 2学时 三、实验目的和要求

1、掌握高斯完全主元素消去法基础原理 2、掌握高斯完全主元素消去法解方程组的步骤 3、能用程序语言对高斯完全主元素消去法进行编程实现

四、实验过程代码及结果

1. 代码

#include #include #include\float a[100][101]; float x[10]; int N; //阶数

void shuchu() { for(int i=1;i<=N;i++) { for(int j=1;j<=N+1;j++) { cout<

}

cout<

}

}

void initdata() { cout<<\请输入阶数N:\ cin>>N; cout<

cout<<\请输入N*(N+1)个数\输入矩阵中的数

1

for(int i=1;i<=N;i++) for(int j=1;j<=N+1;j++) { cin>>a[i][j];

}

cout<

cout<<\建立的矩阵为:\ //打印出矩阵 shuchu();

}

void main() { int z[10]; int maxi,maxj; initdata();

for(int i=1;i<=N;i++) z[i]=i;

for(int k=1;k

{ maxi=k;maxj=k;float maxv=abs(a[k][k]); for(i=k;i<=N;i++) for(int j=k;j<=N;j++) if(abs(a[i][j])>maxv) { maxv=abs(a[i][j]);maxi=i;maxj=j;

}

if(maxi!=k) //换行 { for(int j=1;j<=N+1;j++) { float t=a[k][j];a[k][j]=a[maxi][j];a[maxi][j]=t; }

}

if(maxj!=k) //换列 { for(i=1;i<=N;i++) { float t=a[i][k];a[i][k]=a[i][maxj];a[i][maxj]=t; }

int t=z[k]; z[k]=z[maxj];z[maxj]=t;

}

for(int i=k+1;i<=N;i++) //消元

{

2

}

}

float l=a[i][k]/a[k][k]; for(int j=k;j<=N+1;j++) { }

a[i][j]+=-l*a[k][j];

//回代 for(i=N;i>0;i--) { }

cout<<\用完全主元素消去法后的矩阵为:\<

for(i=1;i<=N;i++) // 打印出x[i] cout<<\ }

float s=0;

for(int j=i+1;j<=N;j++) { }

x[z[i]]=(a[i][N+1]-s)/a[i][i];

s+=a[i][j]*x[z[j]];

2. 结果

3

本文来源:https://www.bwwdw.com/article/shzd.html

Top