当前位置:首页 > 数值分析实验报告
数值分析实验报告
《数值分析》实验报告
班级:
学号: 姓名:
1
数值分析实验报告
课题1 解线性方程组的直接算法
一、问题提出
给出下列几个不同类型的线性方程组,请用适当算法计算其解。
1、设线性方程组
2?3?1210000??x1??4?5??8??x??12?6?5?36501002???????4?3?2?2?132?1031??x3???????x0?215?13?11942???4?????42?3?6?167?3323??x5?????=??
6?8571726?35??x6??8?46??0?13?2?13?425301??x7???????2?122??x8??1610?11?91734?38????4?19?62?713920124??x9???????0?18?3?24?863?1??0????21???x10??x*= -1, 0, 1, 2, 0, 3, 1, -1, 2 )T 2、设对称正定阵系数阵线方程组
2?402400??x1??0??4?2??x???6?2?1?21320???2?????4?1141?8?356??x3??20???????x0?216?1?4?3323???4?= ??
?21?8?1224?10?3??x5??9???????43?3?44111?4?22x???6????025?3?101142??x7???15???????063?3?4219???0???45???x8???x* = ( 1, -1, 0, 2, 1, -1, 0, 2 )T
3、三对角形线性方程组
?4?100000000??x1??7???14?10000000??x??5?2???????0?14?1000000??x3???13???????x00?14?1000002???4????000?14?10000??x5??6? ???? = ??
0000?14?1000?12x???6????00000?14?100??x??14?7???????000000?14?10??x8???4??0000000?14?1??x??5????9??????00000000?14?????5???x10??x*= ( 2, 1, -3, 0, 1, -2, 3, 0, 1, -1 )T
2
数值分析实验报告
二、要求
1、对上述三个方程组分别利用Gauss顺序消去法与Gauss列主元消去法;平方根法与改进平方根法;追赶法求解(选择其一); 2、编出算法通用程序
3、在应用Gauss消去法时,尽可能利用相应程序输出系数矩阵的三角分解式。
三、目的和意义
1、通过该课题的实验,掌握模块化结构程序设计方法的优点; 2、掌握解各类线性方程组的直接算法,了解各种方法的特点; 3、体会高斯消去法选主元的必要性。; 四、流程图
3
入口 定义各种变量 请输入方程维数n 请输入方程系数矩阵A 请输入矩阵B 请输入精度要求 \请输入最大迭代次数 请输入初始向量 数值分析实验报告
用高斯消去法解方程组 用平方根法解方程用追赶法解方程结束
五、源程序代码
1、Gauss顺序消去法 #include \void main() {
double a[10][10]={4,2,-3,-1,2,1,0,0,0,0, 8,6,-5,-3,6,5,0,1,0,0, 4,2,-2,-1,3,2,-1,0,3,1, 0,-2,1,5,-1,3,-1,1,9,4, -4,2,6,-1,6,7,-3,3,2,3, 8,6,-8,5,7,17,2,6,-3,5, 0,2,-1,3,-4,2,5,3,0,1, 16,10,-11,-9,17,34,2,-1,2,2, 4,6,2,-7,13,9,2,0,12,4, 0,0,-1,8,-3,-24,-8,6,3,-1}; double b[10]={5,12,3,2,3,46,13,38,19,-21}; double s; int i,j,k;
for(i=0;i<10;i++) {
for (k=i+1;k<10;k++) {
s=-a[k][i]/a[i][i]; for(j=0;j<10;j++) {
a[k][j]=s*a[i][j]+a[k][j]; }
b[k]=b[i]*s+b[k];
4
共分享92篇相关文档