《实验一解线性方程组的直接法(1)》由会员分享,可在线阅读,更多相关《实验一解线性方程组的直接法(1)(16页珍藏版)》请在金锄头文库上搜索。
1、实 验 报 告课程名称 数值分析 实验项目 解线性方程组的直接法 专业班级 姓 名 学 号 指导教师 成 绩 日 期 月 日 一. 实验目的1、 掌握程序的录入和matlab的使用和操作;2、 了解影响线性方程组解的精度的因素方法与问题的性态。3、 学会Matlab提供的“”的求解线性方程组。二. 实验要求 1、按照题目要求完成实验内容;2、写出相应的Matlab 程序;3、给出实验结果(可以用表格展示实验结果);4、分析和讨论实验结果并提出可能的优化实验。5、写出实验报告。三. 实验步骤1、用分解及列主元高斯消去法解线性方程组a),输出中系数分解的矩阵和,解向量和;用列主元法的行交换次序解向
2、量和求;比较两种方法所得结果。2、用列主高斯消元法解线性方程组。(1)、(2)、分别输出,解向量,(1)中的条件数。分析比较(1)、(2)的计算结果3、线性方程组的和分别为,则解. 用MATLAB内部函数求和的所有特征值和. 若令,求解,输出向量和,从理论结果和实际计算两方面分析线性方程组解的相对误差以及的相对误差的关系。4、 希尔伯特矩阵,其中,(1)分别对计算,分析条件数作为的函数如何变化。(2)令,计算,然后用高斯消去法解线性方程组求出,计算剩余向量以及。分析当增加时解分量的有效位数如何随变化,它与条件数有何关系?当多大时连一位有效数字也没有了?将每种情形的两个结果进行表格对比,如:n=
3、6时:GAUSS列主消去法求得的的有效数字四、实验结果五、讨论分析(对上述算例的计算结果进行比较分析,主要说清matlab的算符与消去法的适用范围不同,自己补充)六、改进实验建议(自己补充)1.列主元的高斯消去法 利用列主元的高斯消去法matlab程序源代码:首先建立一个gaussMethod.m的文件,用来实现列主元的消去方法。function x=gaussMethod(A,b)%高斯列主元消去法,要求系数矩阵非奇异的, %n = size(A,1);if abs(det(A) a=10 -7 0 1;-3 2.099999 6 2;5 -1 5 -1;2 1 0 2a = 10.0000
4、 -7.0000 0 1.0000 -3.0000 2.1000 6.0000 2.0000 5.0000 -1.0000 5.0000 -1.0000 2.0000 1.0000 0 2.0000 l,u=lu(a)l = 1.0000 0 0 0 -0.3000 -0.0000 1.0000 0 0.5000 1.0000 0 0 0.2000 0.9600 -0.8000 1.0000u = 10.0000 -7.0000 0 1.0000 0 2.5000 5.0000 -1.5000 0 0 6.0000 2.3000 0 0 0 5.0800 b=8 5.900001 5 1b =
5、 8.0000 5.9000 5.00001.0000 y=lby =8.00001.00008.30005.0800 x1=Uxx1 =0.0000-1.00001.00001.0000det1= det(a)det1 =-762.00012、(1)在MATLAB窗口:A=3.01 6.03 1.99;1.27 4.16 -1.23;0.987 -4.81 9.34A = 3.0100 6.0300 1.9900 1.2700 4.1600 -1.2300 0.9870 -4.8100 9.3400 b=1 1 1b = 1 1 1x1,det1,index=Gauss (A,b)x1 =
6、1.0e+03 * 1592.599624841381 -631.9113762025488 -493.6177247593899det1 = -0.0305index = 1 (2) 在MATLAB窗口: A=3.00 6.03 1.99;1.27 4.16 -1.23;0.990 -4.81 9.34A = 3.0000 6.0300 1.9900 1.2700 4.1600 -1.2300 0.9900 -4.8100 9.3400 b=1 1 1b = 1 1 1x2,det2,index=Gauss5555(A,b)x2 = 119.5273 -47.1426 -36.8403det
7、2 = -0.4070index = 13、在MATLAB窗口:A=10 7 8 7;7 5 6 5;8 6 10 9;7 5 9 10;b=32 23 33 31;x=Abb1=32.1 22.9 33.1 30.9;x1=Ab1A1=10 7 8.1 7.2;7.08 5.04 6 5;8 5.98 9.89 9;6.99 5 9 9.98;x2=A1bdelta_b=norm(b-b1)/norm(b)delta_A=norm(A-A1)/norm(A)delta_x1=norm(x-x1)/norm(x)delta_x2=norm(x-x2)/norm(x)cond_A=cond(A)
8、x = 1.0000 1.0000 1.0000 1.0000x1 = 9.2000 -12.6000 4.5000 -1.1000x2 = -9.5863 18.3741 -3.2258 3.5240delta_b = 0.0033delta_A = 0.0076delta_x1 = 8.1985delta_x2 = 10.4661cond_A = 2.9841e+033、在MATLAB窗口: A=10 7 8 7;7 5 6 5;8 6 10 9;7 5 9 10; b=32 23 33 31; x=Abb1=32.1 22.9 33.1 30.9;x1=Ab1A1=10 7 8.1 7.
9、2;7.08 5.04 6 5;8 5.98 9.89 9;6.99 5 9 9.98;x2=A1bdelta_b=norm(b-b1)/norm(b)delta_A=norm(A-A1)/norm(A)delta_x1=norm(x-x1)/norm(x)delta_x2=norm(x-x2)/norm(x)cond_A=cond(A)x = 1.0000 1.0000 1.0000 1.0000x1 = 9.2000 -12.6000 4.5000 -1.1000x2 = -9.5863 18.3741 -3.2258 3.5240delta_b = 0.0033delta_A = 0.0076delta_x1 = 8.1985delta_x2 = 10.4661