大连理工大学矩阵与数值分析上机作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

矩阵与数值分析上机作业

学校:大连理工大学

学院:

班级:

姓名:

学号:

授课老师:

注:编程语言Matlab

程序:

Norm.m函数

function s=Norm(x,m)

%求向量x的范数

%m取1,2,inf分别表示1,2,无穷范数

n=length(x);

s=0;

switch m

case 1 %1-范数

for i=1:n

s=s+abs(x(i));

end

case 2 %2-范数

for i=1:n

s=s+x(i)^2;

end

s=sqrt(s);

case inf %无穷-范数

s=max(abs(x));

end

计算向量x,y的范数

Test1.m

clear all;

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));

disp('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的无穷-范数:1

y的1-范数:55; y的2-范数:19.6214; y的无穷-范数:10

n=100时

x的1-范数:5.1874;x的2-范数: 1.2787; x的无穷-范数:1

y的1-范数:5050; y的2-范数:581.6786; y的无穷-范数:100

n=1000时

x的1-范数:7.4855; x的2-范数:1.2822; x的无穷-范数:1

y的1-范数: 500500; y的2-范数:1.8271e+004;y的无穷-范数:1000

程序

Test2.m

clear all;

clc;

n=100;%区间

h=2*10^(-15)/n;%步长

x=-10^(-15):h:10^(-15);

%第一种原函数

f1=zeros(1,n+1);

for k=1:n+1

if x(k)~=0

f1(k)=log(1+x(k))/x(k);

else

f1(k)=1;

end

end

subplot(2,1,1);

plot(x,f1,'-r');

axis([-10^(-15),10^(-15),-1,2]); legend('原图');

%第二种算法

f2=zeros(1,n+1);

for k=1:n+1

d=1+x(k);

if(d~=1)

f2(k)=log(d)/(d-1);

else

f2(k)=1;

end

end

subplot(2,1,2);

plot(x,f2,'-r');

axis([-10^(-15),10^(-15),-1,2]); legend('第二种算法');

运行结果:

显然第二种算法结果不准确,是因为计算机中的舍入误差造成的,当]10,10[1515--∈x 时,x d +=1,计算机进行舍入造成d 恒等于1,结果函数值恒为1。

程序:

秦九韶算法:QinJS.m

function y=QinJS(a,x) %y 输出函数值

%a 多项式系数,由高次到零次 %x 给定点

n=length(a); s=a(1); for i=2:n s=s*x+a(i); end y=s;

计算p(x):test3.m

clear all ; clc;

x=1.6:0.2:2.4;%x=2的邻域

disp('x=2的邻域:');x

a=[1 -18 144 -672 2016 -4032 5376 -4608 2304 -512]; p=zeros(1,5); for i=1:5

p(i)=QinJS(a,x(i)); end

disp('相应多项式p 值:');p xk=1.95:0.01:20.5; nk=length(xk); pk=zeros(1,nk); k=1; for k=1:nk

pk(k)=QinJS(a,xk(k)); end

plot(xk,pk,'-r');

xlabel('x');ylabel('p(x)');

运行结果:

相关文档
最新文档