实验三 线性方程组的直接解法
来源:互联网 发布:mac os app store更新 编辑:程序博客网 时间:2024/06/05 10:58
一、问题提出
给出下列几个不同类型的线性方程组,请用适当的算法计算其解。
1、设线性方程组
104 2 -3 -1 2 1 0 0 0 0 58 6 -5 -3 6 5 0 1 0 0 124 2 -2 -1 3 2 -1 0 3 1 30 -2 1 5 -1 3 -1 1 9 4 2-4 2 6 -1 6 7 -3 3 2 3 38 6 -8 5 7 17 2 6 -3 5 460 2 -1 3 -4 2 5 3 0 1 1316 10 -11 -9 17 34 2 -1 2 2 384 6 2 -7 13 9 2 0 12 4 190 0 -1 8 -3 -24 -8 6 3 -1 -21
二、要求
1、对上述三个方程组分别用Gauss顺序消元法与Gauss列主元消元法:平方根法与改进平方根法:追赶法求解(选择其一);
2、应用结构程序设计编出通用程序;
3、比较计算结果、分析数值解误差的原因;
4、尽可能利用相应模板输出系数矩阵的三角分解式;
三、目的和意义
1、通过该课题的实验,体会模板化结构程序设计方法的优点;
2、通过所学的计算方法,解决各类线性方程组的直接算法;
3,提高分析和解决问题的能力,做到学以致用;
4,通过三对角线性方程组的解法,体会稀疏线性方程组解法的特点;
四、代码实现
#include <iostream>#include <cstring>#include <cstdio>using namespace std;const int maxn=100;int n,i,j,k=1;double a[maxn][maxn],b[maxn],sum;int main(){ freopen("in.txt","r",stdin); cin>>n; for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) cin>>a[i][j]; cin>>b[i]; } for(int k=1; k<=n; k++) { for(j=k+1; j<=n; j++) a[k][j]=a[k][j]/a[k][k]; //系数化为1 b[k]=b[k]/a[k][k]; for(i=k+1; i<=n; i++) //消元 { for(j=k+1; j<=n; j++) a[i][j]-=a[i][k]*a[k][j]; b[i]-=a[i][k]*b[k]; } } for(i=n-1; i>=1; i--) //求值 { sum=0; for(j=i+1; j<=n; j++) sum+=a[i][j]*b[j]; b[i]-=sum; } for(i=1; i<=n; i++) printf("b[%2d]=%lf\n",i,b[i]); return 0;}
阅读全文
0 0
- 实验三 线性方程组的直接解法
- 线性方程组的直接解法
- 线性方程组的直接解法(python)
- 克洛特分解法Crout_解线性方程组的直接解法
- 高斯消去法_解线性方程组的直接解法
- 高斯列主元消去法_解线性方程组的直接解法
- 紧凑存储的杜利特尔分解法Doolittle(LU分解法)_解线性方程组的直接解法
- 杜利特尔分解法Doolittle(LU分解法)_解线性方程组的直接解法
- 紧凑存储的克洛特分解法Crout_解线性方程组的直接解法
- 线性方程组的直接法
- 线性方程组的迭代解法
- 实验一 直接法解线性方程组(android)
- 数值分析之线性方程组直接解法(一)
- 数值分析课实验-求解线性方程组的直接法C代码
- 数值计算——线性方程组的解法
- 计算方法 实验四 解线性方程组的迭代法
- 线性方程组6种数值解法的对比研究
- 基于MATLAB的Cholesky分解法解线性方程组
- Zookeeper异常Exception in thread "main" org.apache.zookeeper.KeeperExcep
- myeclipse选中的变量,相关引用的地方高亮
- Python 练习实例16
- OVN架构原理
- 输入一个正整数n,获得该整数低字节中的前4位,并按示例格式输出。
- 实验三 线性方程组的直接解法
- java之接口(interface)和抽象(abstract)关键字详解
- Python画等高线
- 批量修改文件的系统和隐藏属性
- 【视频开发】IR-CUT作用
- Smardcard Reader+D8射频卡读写演示测卡。
- 软件开发未来发展五大趋势,从业者们注意了!
- 了解http
- NSButton NSImageview 添加背景图片