《应用计算方法教程》matlab作业二答题.docxVIP

  • 44
  • 0
  • 约4.01千字
  • 约 13页
  • 2017-04-20 发布于湖北
  • 举报

《应用计算方法教程》matlab作业二答题.docx

作业六 6-1 试验目的 计算特征值,实现算法 试验内容:随机产生一个10阶整数矩阵,各数均在-5和5之间。 用MATLAB函数“eig”求矩阵全部特征值。 用幂法求A的主特征值及对应的特征向量。 用基本QR算法求全部特征值(可用MATLAB函数“qr”实现矩阵的QR分解)。 原理 幂法:设矩阵A的特征值为并设A有完全的特征向量系(它们线性无关),则对任意一个非零向量所构造的向量序列有,其中表示向量的第j个分量。 为避免逐次迭代向量不为零的分量变得很大( 时)或很小( 时),将每一步的按其模最大的元素进行归一化。具体过程如下: 选择初始向量,令,当充分大时。 QR法求全部特征值: 由于此题的矩阵是10阶的,上述算法计算时间过长,考虑采用改进算法——移位加速。迭代格式如下: 计算右下角的二阶矩阵的特征值,当为实数时,选为中最接近的。 程序 A=-5+round(10*rand(10)); [V,D]=eig(A) [lamda u]=lab6_2_power(A,[1;1;1;1;1;1;1;1;1;1],10^(-5),1000) d=lab6_3_qr2(A,10^(-5)) function [lamda u]=lab6_2_power(a,v,eps,N) lamda=0; err=1; k=1; while(k=N erreps) u=a*v; [m j]=max(abs(u)); dc=abs(lamda-m); u=u/m; dv=norm(u-v); err=max(dc,dv); v=u; lamda=m; k=k+1; end function D=lab6_3_qr2(A,eps) [n,n]=size(A); m=n; D=zeros(n,1); B=A; while(m1) while(abs(B(m,m-1))=eps*(abs(B(m-1,m-1))+abs(B(m,m)))) S=eig(B(m-1:m,m-1:m)); [j,k]=min([abs(B(m,m)-S(1)),abs(B(m,m)-S(2))]); [Q,U]=qr(B-S(k)*eye(m)); B=U*Q+S(k)*eye(m); end A(1:m,1:m)=B; m=m-1; B=A(1:m,1:m); end D=diag(A);界面 (1) (2) (3) 作业七 7-1 试验目的:熟悉代数插值 试验内容:已知在f(x)在7个点的函数值如下表所示,分别使用拉格朗日插值法和牛顿插值法求f(0.596)与f(0.906)的近似值。 0.40.50.60.70.80.91.011.751.962.192.442.713.00原理 拉格朗日插值多项式: 牛顿插值多项式: 其中。 程序 function y1=lab7_1_Lagrange(x,y,x1) y1=0; [m n]=size(x); n=n-1; for k=1:n+1 t=1; for i=1:n+1 if(i~=k) t=t*(x1-x(i))/(x(k)-x(i)); end end y1=y1+t*y(k); end function y1=lab7_2_Newton(x,y,x1) [m n]=size(x); n=n-1; for j=1:n for i=n+1:-1:j+1 y(i)=(y(i)-y(i-1))/(x(i)-x(i-j)); end end y1=y(n+1); for j=n:-1:1 y1=y(j)+(x1-x(j))*y1; end界面 作业八 8-1 试验目的:熟悉最小二乘法拟合多项式 试验内容:给定数据点(,), X0.400.550.650.800.901.05f(x)0.410750.578150.696750.888111.026521.25386用3次最小二乘多项式拟合数据,并求平方误差。 原理 要作三次最小二乘拟合,令,计算法方程,其中,,, 。 其平方误差为。 程序 x=[0.4 0.55 0.65 0.80 0.90 1.05]; f=[0.41075 0.57815 0.69675 0.88811 1.02652 1.25386]; G=zeros(4,4); for j=1:4 for k=1:4

文档评论(0)

1亿VIP精品文档

相关文档