大连理工大学矩阵与数值分析上机作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)');
运行结果: