1、(完整word版)数值分析课程设计实验二实验二21一、题目: 用高斯消元法的消元过程作矩阵分解。设消元过程可将矩阵A化为上三角矩阵U,试求出消元过程所用的乘数、并以如下格式构造下三角矩阵L和上三角矩阵U验证:矩阵A可以分解为L和U的乘积,即A=LU。二、算法分析:设矩阵,通过消元法可以将其化成上三角矩阵U,具体算法如下:第1步消元:得到第2步消元:得到的矩阵为三、程序及运行结果b1.mA=20 2 3;1 8 1;2 -3 15;for i=1:2M(i)=A(i+1,1)/A(1,1);endfor j=2:3 A1(j,2)=A(j,2)-M(j-1)*A(1,2); A1(j,3)=A(
2、j,3)-M(j-1)*A(1,3);endM(3)=A1(3,2)/A1(2,2);A1(3,2)=0;A1(3,3)=A1(3,3)-M(3)*A1(2,3);M,A1运行结果为:M = 0.0500 0.1000 -0.4051A1 = 0 0 0 0 7.9000 0.8500 0 0 15.0443所以:验证:L=1 0 0;0.05 1 0;0.1 -0.4051 1;U=20 2 3;0 7.9 0.85;0 0 15.0443;A1=L*UA1 = 20.0000 2.0000 3.0000 1.0000 8.0000 1.0000 2.0000 -3.0003 15.0000
3、四、精度分析因为根据LU的递推公式可知,L,U分别为下三角和上三角矩阵,其中L不在对角线上的元素值为,在计算每个系数时会产生相应的计算误差。 22一、题目用矩阵分解方法求上题中A的逆矩阵。记分别求解方程组由于三个方程组系数矩阵相同,可以将分解后的矩阵重复使用。对第一个方程组,由于A=LU,所以先求解下三角方程组,再求解上三角方程组,则可得逆矩阵的第一列列向量;类似可解第二、第三方程组,得逆矩阵的第二列列向量的第三列列向量。由三个列向量拼装可得逆矩阵。二、算法分析首先根据LU分解,将矩阵A分解成下三角矩阵L和上三角矩阵U乘积的形式。然后分别求解方程组和。通过计算可知 最后求解得到的矩阵三、程序及
4、运行结果b2.mb1=1 0 0;b2=0 1 0;b3=0 0 1;L=1 0 0;0.05 1 0;0.1 -0.4 1;U=20 2 3;0 8 0.85;0 0 15.04;y1=inv(L)*b1;x1=inv(U)*y1;y2=inv(L)*b2;x2=inv(U)*y2;y3=inv(L)*b3;x3=inv(U)*y3;x1,x2,x3,x1,x2,x3运行结果为:x1 = 0.0517 -0.0054 -0.0080x2 = -0.0162 0.1222 0.0266x3 = -0.0093 -0.0071 0.0665ans = 0.0517 -0.0162 -0.0093
5、 -0.0054 0.1222 -0.0071 -0.0080 0.0266 0.0665四、精度分析矩阵A经过LU分解后得到上三角U和下三角矩阵L,分别进行 和计算时便产生了计算误差,所以最后结果与存在一定的误差。22一、题目验证希尔伯特矩阵的病态性:对于三阶矩阵取右端向量,验证:(1)向量是方程组的准确解;(2)取右端向量b的三位有效数字得,求方程组的准确解,并与X的数据作比较 。说明矩阵的病态性。二、算法分析(1)要验证向量X是方程的准确解,只需求解出该方程的解并与X作个比较即可。因为,所以(2)与第一题算法一样,根据求解出三、程序及运行结果b3.mb1=11/6 13/12 47/60;b2=1.83 1.08 0.783;H=1 1/2 1/3;1/2 1/3 1/4;1/3 1/4 1/5;x1=inv(H)*b1x2=inv(H)*b2运行结果为:x1 = 1.0000 1.0000 1.0000x2 = 1.0800 0.5400 1.4400四、精度分析(1)通过x1的运行结果可知,是方程准确解。(2)通过x2的运行结果可知,由于与的误差非常小,可是它们的计算结果却差别很大,根据病态矩阵的定义可知,矩阵H为病态的。