实验五矩阵的LU分解法雅可比迭代.pdf

上传人:tbuqq 文档编号:5346501 上传时间:2020-04-21 格式:PDF 页数:14 大小:520.69KB
返回 下载 相关 举报
实验五矩阵的LU分解法雅可比迭代.pdf_第1页
第1页 / 共14页
实验五矩阵的LU分解法雅可比迭代.pdf_第2页
第2页 / 共14页
实验五矩阵的LU分解法雅可比迭代.pdf_第3页
第3页 / 共14页
实验五矩阵的LU分解法雅可比迭代.pdf_第4页
第4页 / 共14页
实验五矩阵的LU分解法雅可比迭代.pdf_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《实验五矩阵的LU分解法雅可比迭代.pdf》由会员分享,可在线阅读,更多相关《实验五矩阵的LU分解法雅可比迭代.pdf(14页珍藏版)》请在三一文库上搜索。

1、实验五矩阵的 LU分解法,雅可比迭代 实 验 报 告 学院:计算机科学与软件学院 班级:116 班 姓名:薛捷星 学号:112547 一、目的与要求: 熟悉求解线性方程组的有关理论和方法; 会编制列主元消去法、LU 分解法、雅可比及高斯塞德尔迭代法德程序; 通过实际计算, 进一步了解各种方法的优缺点,选择合适 的数值方法。 二、实验内容: 会编制列主元消去法、LU 分解法、雅可比及高斯塞德尔迭代法德程序,进一步了解 各种方法的优缺点。 三、程序与实例 列主元高斯消去法 算法: 将方程用增广矩阵 Ab=( ij a )1n(n )表示 1) 消元过程 对 k=1,2,n-1 选主元,找n, 1k

2、,kik使得 k,ik a= ik a nik max 如果0a k,ik,则矩阵 A 奇异,程序结束;否则执行。 如果kik,则交换第 k 行与第 k i行对应元素位置, jikj k aaj=k,n+1 消元,对 i=k+1, ,n 计算 kkikik aal/ 对 j=l+1, ,n+1 计算 kjikijij alaa 2) 回代过程 若0 nn a,则矩阵 A 奇异,程序结束;否则执行。 nnnnn aax/ 1, ;对 i=n-1, ,2,1,计算 ii n ij jijnii axaax/ 1 1, 程序与实例 例 1解方程组 035.3643x.5072x.1835x.2 13

3、7.2623x.43712x347x.1 1.1833.555x2.304x0.101x 321 321 321 输出结果如下: X0=-0.398234 X1= 0.013795 X2= 0.335144 程序如下: #include #include main() int i,j,p,o,l,q; double a34=0.101,2.304,3.555,1.183,-1.347,3.712,4.623,2.137,-2.835,1.07 2,5.643,3.035; double x3,z4; printf(“ 列主元消去法 n“); for(j=0;j=j;q-) alq=(alq-(

4、alj/ajj)*ajq); printf(“ 进行消去: n“); for(o=0;o #include void main(void) int i,j,p,o,l,q; double a56=8.77,2.40,5.66,1.55,1.0,-32.04,4.93,1.21,4.48,1.10,1.0,-20.07,3.53,1.4 6,2.92,1.21,1.0,-8.53,5.05,4.04,2.51,2.01,1.0,-6.30,3.54,1.04,3.47,1.02,1.0,-12.04 ; double x5,z6; printf(“ 列主元消去法求五元一次方程组:n“); for

5、(j=0;j=j;q-) alq=(alq-(alj/ajj)*ajq); printf(“ 消去一列: n“); for(o=0;o void main(void) int i,j; double a44=1,2,-12,8,5,4,7,-2,-3,7,9,5,6,-12,-8,3; double l44,b4=27,4,11,49,y4,x4; printf(“ 直接三角分解法求方程组的解:n“); for(i=0;i #include #define e 0.000001 void main(void) float a,b,c,x3; int i; printf(“Jacobi 迭代法求

6、方程组: n“); printf(“ 输入 X1,X2,X3 的初始值 ,以“, ”间隔: n“); scanf(“%f,%f,%f“, for(i=0;i+) x0=(8-2*b-c)/5; x1=(21-2*a+3*c)/8; x2=(1-a+3*b)/(-6); if(fabs(x0-a)200) printf(“ 发散n“); break; printf(“ 迭代%d 次n“,i+3); printf(“ 方程组的解为: n“); for(i=0;i #include #define e 0.000001 void main(void) int i; float a34=8,-3,2,

7、20,4,11,-1,33,6,3,12,36,x3; float t,b,c; printf(“ 高斯-赛德尔法解方程组 n“); printf(“ 输入 X1,X2,X3 的初始值,以逗号间隔:n“); scanf(“%f,%f,%f“, for(i=0;i+) t=x0;b=x1;c=x2; x0=(a03-a01*x1-a02*x2)/a00; x1=(a13-a10*x0-a12*x2)/a11; x2=(a23-a20*x0-a21*x1)/a22; if(fabs(x0-t)200) printf(“ 发散n“); break; printf(“ 迭代%d 次n“,i+1); for(i=0;i3;i+) printf(“x%d=%12.6fn“,i,xi); 结果如下: 例 6用雅可比迭代法解方程组 522 2 722 321 321 321 xxx xxx xxx 迭代 4 次得解 T ) 1,2, 1(,若用高斯 -塞尔德迭代法则发散。 结果如下: 用高斯 -塞尔德迭代法解方程组 7.1x9x.09x.0 0.29x.0x9x.0 9.19x.09x.0x 321 321 321 迭代 84 次得解 T 3 , 2, 1,若用雅克比迭代法则发散。 结果如下:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1