昆明理工大学工科研究生。
《数值分析》上机实验。
学院:材料学院。
专业:材料工程。
学号:2011730011
姓名: 刘宁。
任课教师:胡杰。
p277-e1
1.已知矩阵a=,b=,=
1)用matlab函数“eig”求矩阵全部特征值。
2)用基本qr算法求全部特征值(可用matlab函数“qr”实现矩阵的qr分解)。
解:matlab程序如下:
求矩阵a的特征值:
clear;
a=[10 7 8 7;7 5 6 5;8 6 10 9;7 5 9 10];
e=eig(a)
输出结果:求矩阵b的特征值:
clear;
b=[2 3 4 5 6;4 4 5 6 7;0 3 6 7 8;0 0 2 8 9;0 0 0 1 0];
e=eig(b)
输出结果:求矩阵的特征值:
clear;
e=eig()
输出结果:2)a=
第一步:a0=hess(a);[q0,r0]=qr(a0);a1=r0*q0
返回得到:第二部:[q1,r1]=qr(a1);a2=r1*q1
第三部:[q2,r2]=qr(a2);a3=r2*q2
现在收缩,继续对a3的子矩阵=
进行累世变换,得到(假设收缩后的矩阵为c6)
c6=这是进行了6步qr算法所得的结果。故求的a的近似特征值为30.2886,,,0.0102。而a的特征值是0.010230.2886
同理,用类似的方法可求矩阵b和的特征值,但过程过于繁琐,不再一一求解。
2、对于给定的一元函数的n+1个节点值。试用lagrange公式求其插值多项式或分段二次lagrange插值多项式。
数据如下:求五次lagrange多项式l,和分段三次插值多项式,计算的值。
1、 利用lagrange插值公式。
编写出插值多项式程序;
lagrange插值多项式。
function f=lagrange(x,y,x0)
syms t;
if(length(x)==length(y))
n=length(x);
elsedisp('x和y维数不等!')
return;
endf=0.0;
for(i=1:n)
l=y(i);
for(j=1:i-1)
l=l*(t-x(j))/x(i)-x(j));
end;for(j=i+1:n)
l=l*(t-x(j))/x(i)-x(j));
end;f=f+l;
simplify(f);
if(i==n)
if(nargin==3)
f=subs(f,'t',x0);
elsef=collect(f);
f=vpa(f,6);
endend
end1)f = 121.972*t-377.255*t^2+572.567*t^3-422.750*t^4+121.626*t^5-15.0845运算结果。
> x=[0.4,0.55,0.65,0.80,0.95,1.05]
y=[0.41075,0.57815,0.69675,0.90,1.00,1.25382]x =
y => f=lagrange(x,y)
f =121.972*t-377.255*t^2+572.567*t^3-422.750*t^4+121.626*t^5-15.0845
> f=lagrange(x,y,0.596)f =
> f=lagrange(x,y,0.99)f =
3)对此插值问题用newton插值多项式其结果如何。
1)牛顿前插值。
function f=newtonfoward(x,y,x0)
syms t;
if(length(x)==length(y))
n=length(x);
c(1:n)=0.0;
elsedisp('x和y维数不等!')
renturn;
endf=y(1);
y1=0;xx=linspace(x(1),x(n),(x(2)-x(1)))
if(xx~=x)
disp('节点之间不是等距!')
return
endfor(i=1:n-1)
for(j=1:n-i)
y1(j)=y(j+1)-y(j);
endc(i)=y1(1);
l=t;for(k=1:i-1)
l=l*(t-k);
end;f=f+c(i)*l/factorial(i);
simplify(f);
y=y1;if(i==n-1)
if(nargin==3)
f=subs(f,'t',(x0-x(1))/x(2)-x(1)))
elsef=collect(f);
f=vpa(f,6);
endend
end运行结果。
> x=[0.4,0.55,0.65,0.80,0.95,1.05]x =
> y=[0.41075,0.57815,0.69675,0.90,1.00,1.25382]y =
> f=newtonfoward(x,y)
f =410750+.469885*t-.557710*t^2+.326089*t^3-.772496e-1*t^4+.638600e-2*t^5
> f=newtonfoward(x,y,0.596)f =
> f=newtonfoward(x,y,0.99)f =
数值分析上机作业
一。上机作业任务一 用五点差分格式求解poisson方程边值问题,p 任选一题 二。上机作业任务二 用simpson求积法计算定积分。下面两种方法任选一。1 变步长复化simpson求积法2 自适应simpson求积法。三。上机作业任务三 用matlab语言编写连续函数最佳平方逼近的算法程序 函数式...
数值分析上机作业
今天的上机作业。1.lagrange 插值。给出的数值表。用lagrange 插值计算的近似值。2 newton插值。用newton插值计算x 0.41的近似值。3.插值法的全部内容。把chap 2试验。doc的全部内容作一边,粘在这个文件里 包括图形 答 插值。function f lagrang...
数值分析上机作业
第二次上机作业。一。任务 用matlab语言编写连续函数最佳平方逼近的算法程序 函数式m文件 并用此程序进行数值试验,写出计算实习报告。二。程序功能要求 在后面的附一的基础上进行修改,使其更加完善。要求算法程序可以适应不同的具体函数,具有一定的通用性。所编程序具有以下功能 1.用lengendre多...