您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 大连理工大学矩阵与数值分析上机作业
1矩阵与数值分析上机作业学校:大连理工大学学院:班级:姓名:学号:授课老师:2注:编程语言Matlab程序:Norm.m函数functions=Norm(x,m)%求向量x的范数%m取1,2,inf分别表示1,2,无穷范数n=length(x);s=0;switchmcase1%1-范数fori=1:ns=s+abs(x(i));endcase2%2-范数fori=1:ns=s+x(i)^2;ends=sqrt(s);caseinf%无穷-范数s=max(abs(x));end计算向量x,y的范数Test1.mclearall;clc;n1=10;n2=100;n3=1000;x1=1./[1:n1]';x2=1./[1:n2]';x3=1./[1:n3]';y1=[1:n1]';y2=[1:n2]';y3=[1:n3]';disp('n=10时');disp('x的1-范数:');disp(Norm(x1,1));disp('x的2-范数:');disp(Norm(x1,2));disp('x的无穷-范数:');disp(Norm(x1,inf));disp('y的1-范数:');disp(Norm(y1,1));disp('y的2-范数:');disp(Norm(y1,2));disp('y的无穷-范数:');disp(Norm(y1,inf));disp('n=100时');disp('x的1-范数:');disp(Norm(x2,1));3disp('x的2-范数:');disp(Norm(x2,2));disp('x的无穷-范数:');disp(Norm(x2,inf));disp('y的1-范数:');disp(Norm(y2,1));disp('y的2-范数:');disp(Norm(y2,2));disp('y的无穷-范数:');disp(Norm(y2,inf));disp('n=1000时');disp('x的1-范数:');disp(Norm(x3,1));disp('x的2-范数:');disp(Norm(x3,2));disp('x的无穷-范数:');disp(Norm(x3,inf));disp('y的1-范数:');disp(Norm(y3,1));disp('y的2-范数:');disp(Norm(y3,2));disp('y的无穷-范数:');disp(Norm(y3,inf));运行结果:n=10时x的1-范数:2.9290;x的2-范数:1.2449;x的无穷-范数:1y的1-范数:55;y的2-范数:19.6214;y的无穷-范数:10n=100时x的1-范数:5.1874;x的2-范数:1.2787;x的无穷-范数:1y的1-范数:5050;y的2-范数:581.6786;y的无穷-范数:100n=1000时x的1-范数:7.4855;x的2-范数:1.2822;x的无穷-范数:1y的1-范数:500500;y的2-范数:1.8271e+004;y的无穷-范数:1000程序Test2.mclearall;clc;n=100;%区间h=2*10^(-15)/n;%步长x=-10^(-15):h:10^(-15);%第一种原函数4f1=zeros(1,n+1);fork=1:n+1ifx(k)~=0f1(k)=log(1+x(k))/x(k);elsef1(k)=1;endendsubplot(2,1,1);plot(x,f1,'-r');axis([-10^(-15),10^(-15),-1,2]);legend('原图');%第二种算法f2=zeros(1,n+1);fork=1:n+1d=1+x(k);if(d~=1)f2(k)=log(d)/(d-1);elsef2(k)=1;endendsubplot(2,1,2);plot(x,f2,'-r');axis([-10^(-15),10^(-15),-1,2]);legend('第二种算法');运行结果:5显然第二种算法结果不准确,是因为计算机中的舍入误差造成的,当]10,10[1515x时,xd1,计算机进行舍入造成d恒等于1,结果函数值恒为1。程序:秦九韶算法:QinJS.mfunctiony=QinJS(a,x)%y输出函数值%a多项式系数,由高次到零次%x给定点n=length(a);s=a(1);fori=2:ns=s*x+a(i);endy=s;计算p(x):test3.mclearall;clc;x=1.6:0.2:2.4;%x=2的邻域disp('x=2的邻域:');xa=[1-18144-6722016-40325376-46082304-512];p=zeros(1,5);fori=1:5p(i)=QinJS(a,x(i));enddisp('相应多项式p值:');pxk=1.95:0.01:20.5;nk=length(xk);pk=zeros(1,nk);k=1;fork=1:nkpk(k)=QinJS(a,xk(k));endplot(xk,pk,'-r');xlabel('x');ylabel('p(x)');运行结果:6x=2的邻域:x=1.60001.80002.00002.20002.4000相应多项式p值:p=1.0e-003*-0.2621-0.000500.00050.2621p(x)在x[1.95,20.5]上的图像7程序:LU分解,LUDecom.mfunction[L,U]=LUDecom(A)%不带列主元的LU分解N=size(A);n=N(1);L=eye(n);U=zeros(n);fori=1:nU(1,i)=A(1,i);L(i,1)=A(i,1)/U(1,1);endfori=2:nforj=i:nz=0;fork=1:i-1z=z+L(i,k)*U(k,j);endU(i,j)=A(i,j)-z;endforj=i+1:nz=0;fork=1:i-1z=z+L(j,k)*U(k,i);endL(j,i)=(A(j,i)-z)/U(i,i);endendPLU分解,PLUDecom.mfunction[P,L,U]=PLUDecom(A)%带列主元的LU分解[m,m]=size(A);U=A;P=eye(m);L=eye(m);fori=1:mforj=i:mt(j)=U(j,i);fork=1:i-1t(j)=t(j)-U(j,k)*U(k,i);endenda=i;b=abs(t(i));forj=i+1:m8ifbabs(t(j))b=abs(t(j));a=j;endendifa~=iforj=1:mc=U(i,j);U(i,j)=U(a,j);U(a,j)=c;endforj=1:mc=P(i,j);P(i,j)=P(a,j);P(a,j)=c;endc=t(a);t(a)=t(i);t(i)=c;endU(i,i)=t(i);forj=i+1:mU(j,i)=t(j)/t(i);endforj=i+1:mfork=1:i-1U(i,j)=U(i,j)-U(i,k)*U(k,j);endendendL=tril(U,-1)+eye(m);U=triu(U,0);(1)(2)程序:Test4.mclearall;clc;forn=5:30x=zeros(n,1);A=-ones(n);A(:,n)=ones(n,1);fori=1:nA(i,i)=1;forj=(i+1):(n-1)9A(i,j)=0;endx(i)=1/i;enddisp('当n=');disp(n);disp('方程精确解:');xb=A*x;%系数bdisp('利用LU分解方程组的解:');[L,U]=LUDecom(A);%LU分解xLU=U\(L\b)disp('利用PLU分解方程组的解:');[P,L,U]=PLUDecom(A);%PLU分解xPLU=U\(L\(P\b))%求解A的逆矩阵disp('A的准确逆矩阵:');InvA=inv(A)InvAL=zeros(n);%利用LU分解求A的逆矩阵I=eye(n);fori=1:nInvAL(:,i)=U\(L\I(:,i));enddisp('利用LU分解的A的逆矩阵:');InvALEnd运行结果:(1)只列出n=5,6,7的结果当n=5方程精确解:x=1.00000.50000.33330.25000.2000利用LU分解方程组的解:xLU=1.00000.50000.33330.25000.2000利用PLU分解方程组的解:xPLU=101.00000.50000.33330.25000.2000当n=6方程精确解:x=1.00000.50000.33330.25000.20000.1667利用LU分解方程组的解:xLU=1.00000.50000.33330.25000.20000.1667利用PLU分解方程组的解:xPLU=1.00000.50000.33330.25000.20000.1667当n=7方程精确解:x=1.00000.50000.33330.25000.20000.16670.1429利用LU分解方程组的解:xLU=1.00000.5000110.33330.25000.20000.16670.1429利用PLU分解方程组的解:xPLU=1.00000.50000.33330.25000.20000.16670.1429(2)只列出n=5,6,7时A的逆矩阵的结果当n=5A的准确逆矩阵:InvA=0.5000-0.2500-0.1250-0.0625-0.062500.5000-0.2500-0.1250-0.1250000.5000-0.2500-0.25000000.5000-0.50000.50000.25000.12500.06250.0625利用LU分解的A的逆矩阵:InvAL=0.5000-0.2500-0.1250-0.0625-0.062500.5000-0.2500-0.1250-0.1250000.5000-0.2500-0.25000000.5000-0.50000.50000.25000.12500.06250.0625当n=6A的准确逆矩阵:InvA=0.5000-0.2500-0.1250-0.0625-0.0313-0.031300.5000-0.2500-0.1250-0.0625-0.0625000.5000-0.2500-0.1250-0.12500000.5000-0.2500-0.250000000.5000-0.50000.50000.25000.12500.06250.03130.0313利用LU分解的A的逆矩阵:InvAL=0.5000-0.2500-0.1250-0.0625-0.0313-0.03131200.5000-0.2500-0.1250-0.0625-0.0625000.5000-0.2500-0.1250-0.12500000.5000-0.2500-0.250000000.5000-0.50000.50000.25000.12500.06250.03130.0313当n=7A的准确逆矩阵:InvA=0.5000-0.2500-0.1250-0.0625-0.0313-0.0156-0.015600.5000-0.2500-0.1250-0.0625-0.0313-0.0313000.5000-0.2500-0.1250-0.0625-0.06250000.5000-0.2500-0.1250-0.125000000.5000-0.2500-0.2500000000.5000-0.50000.50000.25000.12500.06250.03130.01560.0156利用LU分解的A的逆矩阵:InvAL=0.5000-0.2500-0.1250-0.0625-0.0313-0.0156-0.015600.5000
本文标题:大连理工大学矩阵与数值分析上机作业
链接地址:https://www.777doc.com/doc-4249455 .html