大连理工大学矩阵大作业.pdf
《大连理工大学矩阵大作业.pdf》由会员分享,可在线阅读,更多相关《大连理工大学矩阵大作业.pdf(24页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、(1)从大到小的顺序的计算程序:function y=snd(n)format longy=0;if n2 disp(请输入大于 1 的数!)else s=0;i=2;while i=n s=single(s+(1/(i2-1);i=i+1;end y=s;end(2)从小到大的顺序的计算程序:function y=snx(n)format longy=0;if n2 disp(请输入大于 1 的数!)else s=0;i=n;while 1 s=single(s+(1/(i2-1);i=i-1;if i=1 break end end y=s;end(3)按两种顺序分别计算S102的计算结果
2、:S104的计算结果:S106的计算结果:计算时的有效位数为七位数。并指出有效位数(编制程序时用单精度)秦九昭算法计算程序:function y=qjz(a,x)j=3;i=size(a,2);switch i case 1 y=a(1);case 2 y=a(1)*x+a(2);otherwise p=a(1)*x+a(2);while j=1 k=j+1;s=b(j);while k=9 s=s-x(k)*a(j,k);k=k+1;end x(j)=s/a(j,j);j=j-1;enddisp(x)function x,y=gauss(a,b)num_i=size(a,1);j=1;whi
3、le j=(num_i-1)i=j+1;while i=1 k=j+1;s=b(j);while k=9 s=s-x(k)*a(j,k);k=k+1;end x(j)=s/a(j,j);j=j-1;enddisp(x)function a1,b1=lzy(a,b)num_i,num_j=size(a);ab=zeros(num_i,num_j+1);for k=1:num_j ab(:,k)=a(:,k);endab(:,num_j+1)=b(:,1);j=1;while jnum_j0.4300.1540.0580.2010.290T。max,max_i=searmax(j,j,ab);i_
4、nu=ab(j,:);ab(j,:)=ab(max_i,:);ab(max_i,:)=i_nu;m=j+1;while m=num_i for n=j:num_j+1 ab(m,n)=ab(m,n)-(ab(m,j)/max)*ab(j,n);end m=m+1;end j=j+1;enda1=zeros(num_i,num_j);for k=1:num_i a1(:,k)=ab(:,k);endb1=ab(:,num_i+1);function b,c=searmax(i,j,a)num_i=size(a,1);k=i;m=abs(a(k,j);c=k;while k=abs(a(k,j)c
5、ontinue else m=abs(a(k,j);c=k;endendb=a(c,j);运行的结果为:x 0.2370.4770.7670.0780.3080.1460.1710.2850.345T(1)LU 分解的计算程序及结果:function l,u=lufz(a)num_i,num_j=size(a);l=eye(num_i);u=eye(num_i);for j=1:num_j u(1,j)=a(1,j);l(j,1)=a(j,1)/u(1,1);endi=2;while i=num_i j=i;while jnum_i s=0;for k=1:i-1 s=s+l(i,k)*u(k
6、,j);end u(i,j)=a(i,j)-s;s=0;for k=1:i-1 s=s+l(j+1,k)*u(k,i);end l(j+1,i)=(a(j+1,i)-s)/u(i,i);j=j+1;end s=0;for k=1:i-1 s=s+l(i,k)*u(k,num_i);end u(i,num_i)=a(i,num_i)-s;i=i+1;end输入要求解的矩阵后运行的结果为:10.419100.3051000.3541L 0000.3980000000000000000.11910.15700.1120.08310.6550.0180.01410.0250.02010.0921000
7、1000311329.54890114.1940028.259103.3501.2770075.46131.1860.45200U 44.6027.1800545.8732300.78521.3810.51300093.5780.5620.367(2)带列主元的 LU 分解计算程序及结果由于 Matlab 中自带带列主元的 LU 分解函数,故计算程序如下:A(1,:)=31,-13,0,0,0,-10,0,0,0;A(2,:)=-13,35,-9,0,-11,0,0,0,0;A(3,:)=0,-9,31,-10,0,0,0,0,0;A(4,:)=0,0,-10,79,-30,0,0,0,-9;
8、A(5,:)=0,0,0,-30,57,-7,0,-5,0;A(6,:)=0,0,0,0,-7,47,-30,0,0;A(7,:)=0,0,0,0,0,-30,41,0,0;A(8,:)=0,0,0,0,-5,0,0,27,-2;A(9,:)=0,0,0,-9,0,0,0,-2,29;L,U,P=lu(A);运行结果如下:10.419100.3051000.3541L 0000.398100000.1571000000.65500000.1120.0180000.1190.0830.01426.4132.42027.39010.02510.0200.09210001000311329.5489
9、0114.1940028.259103.3501.2770075.46131.1860.45200U 44.6027.1800545.8732300.78521.3810.51300093.5780.5620.367100000000010000000001000000000100000P 000010000000001000为单位阵。000000100000000010000000001(3)求 A 的逆矩阵的计算程序及结果:A(1,:)=31,-13,0,0,0,-10,0,0,0;A(2,:)=-13,35,-9,0,-11,0,0,0,0;A(3,:)=0,-9,31,-10,0,0,
10、0,0,0;A(4,:)=0,0,-10,79,-30,0,0,0,-9;A(5,:)=0,0,0,-30,57,-7,0,-5,0;A(6,:)=0,0,0,0,-7,47,-30,0,0;A(7,:)=0,0,0,0,0,-30,41,0,0;A(8,:)=0,0,0,0,-5,0,0,27,-2;A(9,:)=0,0,0,-9,0,0,0,-2,29;num_i,num_j=size(A);A_n=eye(num_i);E=eye(num_i);L,U=lufz(A);for i=1:num_i y=hd(1,L,E(:,i);A_n(:,i)=hd(0,U,y);enddisp(A_n
11、)function l,u=lufz(a)num_i,num_j=size(a);26.4132.42027.390l=eye(num_i);u=eye(num_i);for j=1:num_j u(1,j)=a(1,j);l(j,1)=a(j,1)/u(1,1);endi=2;while i=num_i j=i;while j=1 s=0;for k=i+1:num_i s=s+a(i,k)*x(k);end x(i)=(b(i)-s)/a(i,i);i=i-1;end case 1 x(1)=b(1)/a(1,1);j=2;while j=num_i s=0;for k=1:j-1 s=s
12、+a(j,k)*x(k);end x(j)=(b(j)-s)/a(j,j);j=j+1;end otherwise disp(error!请输入正确的参数!)end运行结果:0.03900.01600.00580.00360.00730.01590.03780.01310.00650.01210.00490.01160.03810.00770.00690.00080.00200.00640.01810.0105A10.00050.00110.00360.01010.02430.00010.00030.00100.00280.006800.00020.00070.00210.00500.0001
13、0.00020.00080.00230.00480.00030.00060.00200.00580.0036(4)求 A 的行列式的计算程序及结果:A(1,:)=31,-13,0,0,0,-10,0,0,0;A(2,:)=-13,35,-9,0,-11,0,0,0,0;A(3,:)=0,-9,31,-10,0,0,0,0,0;A(4,:)=0,0,-10,79,-30,0,0,0,-9;A(5,:)=0,0,0,-30,57,-7,0,-5,0;A(6,:)=0,0,0,0,-7,47,-30,0,0;A(7,:)=0,0,0,0,0,-30,41,0,0;A(8,:)=0,0,0,0,-5,
14、0,0,27,-2;A(9,:)=0,0,0,-9,0,0,0,-2,29;num_i,num_j=size(A);L,U=lufz(A);s=1;for i=1:num_i s=s*U(i,i);end0.01760.01290.00970.00710.00390.00280.00330.00240.00700.00510.04190.03060.03060.04680.00140.00100.00110.00080.00140.00120.00240.00220.00150.00250.00240.00580.00480.00350.00130.00100.00100.00070.0382
15、0.00330.00340.0365disp(矩阵的行列式值为:,num2str(s)运行程序后结果与调用 matlab 中 det()函数结果如下:(1)求 cholesky 分解程序及结果:function l=chole(a)num_i,num_j=size(a);l=zeros(num_i);l(1,1)=sqrt(a(1,1);for k=2:num_i l(k,1)=a(k,1)/l(1,1);endj=2;while j=num_j s1=0;for k=1:j-1 s1=s1+l(j,k)2;end l(j,j)=sqrt(a(j,j)-s1);i=j+1;while i=nu
16、m_i s2=0;for k=1:j-1 s2=s2+l(i,k)*l(j,k);end l(i,j)=(a(i,j)-s2)/l(j,j);i=i+1;end j=j+1;end运行程序后的结果为:000 1.4142000.70712.1213L 0.70711.17852.848000.70713.06410.74130.7494(2)求解方程组程序及结果:a=2,1,-1,1;1,5,2,7;-1,2,10,1;1,7,1,11;b=13;-9;6;0;L=chole(a);y=hd(1,L,b);x=hd(0,L,y);disp(x)运行后的结果为:x 26.414665.39021
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大连理工大学 矩阵 作业
限制150内