资源描述:
《数值计算方法71154new》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数值计算(一)主讲:张森2011-7-9一、矩阵的数值计算相关MATLAB函数提示:zeros(m,n)生成m行,n列的零矩阵ones(m,n)生成m行,n列的元素全为1的矩阵eye(n)生成n阶单位矩阵rand(m,n)生成m行,n列(0,1)上均匀分布的随机矩阵diag(x)返回由向量x的元素构成的对角矩阵tril(A)提取矩阵A的下三角部分生成下三角矩阵triu(A)提取矩阵A的上三角部分生成上三角矩阵rank(A)返回矩阵A的秩det(A)返回方阵A的行列式inv(A)返回可逆方阵A的逆矩阵[V,D]=eig(A)返回方阵A的特征
2、值和特征向量norm(A,p)矩阵或向量的p范数cond(A,p)矩阵的条件数[L,U,P]=lu(A)选列主元LU分解R=chol(X)平方根分解Hi=hilb(n)生成n阶Hilbert矩阵二、插值法1、插值有关的MATLAB函数:plot(x,y)作出以数据(x(i),y(i))为节点的折线图,其中x,y为同长度的向量subplot(m,n,k)将图形窗口分为m*n个子图,并指向第k幅图yi=interp1(x,y,xi)根据数据(x,y)给出在xi的分段线性插值结果yipp=spline(x,y)返回样条插值的分段多项式(pp)形
3、式结构pp=csape(x,y,‘边界类型’,‘边界值’)生成各种边界条件的三次样条插值yi=ppval(pp,xi)pp样条在xi的函数值ZI=interp2(x,y,z,xi,yi)x,xi为行向量,y,yi为列向量,z为矩阵的双线性二维插值ZI=interp2(…,'spline')使用二元三次样条插值ZI=griddata(x,y,z,xi,yi)x,y,z均为向量(不必单调)表示数据,xi,yi为网格向量的三角形线性插值(不规则数据的二维插值)132、拉格朗日和牛顿插值法(1)拉格朗日多项式和基函数的MATLAB程序求拉格朗日插
4、值多项式和基函数的MATLAB主程序function[C,L,L1,l]=lagran1(X,Y)m=length(X);L=ones(m,m);fork=1:mV=1;fori=1:mifk~=iV=conv(V,poly(X(i)))/(X(k)-X(i));endendL1(k,:)=V;l(k,:)=poly2sym(V)endC=Y*L1;L=Y*l例1给出节点数据,,,,,,作五次拉格朗日插值多项式和基函数,并写出估计其误差的公式.解在MATLAB工作窗口输入程序>>X=[-2.15-1.000.011.022.033.25]
5、;Y=[17.037.241.052.0317.0623.05];[C,L,L1,l]=lagran1(X,Y)运行后输出五次拉格朗日插值多项式L及其系数向量C,基函数l及其系数矩阵L1如下C=-0.21690.06482.10763.3960-4.57451.0954L=1.0954-4.5745*x+3.3960*x^2+2.1076*x^3+0.0648*x^4-0.2169*x^5L1=-0.00560.0299-0.0323-0.02920.0382-0.00040.0331-0.1377-0.05030.6305-0.4852
6、0.0048-0.06930.21840.3961-1.2116-0.31661.00330.0687-0.1469-0.53980.65280.9673-0.0097-0.03170.03580.2530-0.0426-0.22570.00230.00490.0004-0.02660.00010.0220-0.0002l=[-0.0056*x^5+0.0299*x^4-0.0323*x^3-0.0292*x^2+0.0382*x-0.0004][0.0331*x^5-0.1377*x^4-0.0503*x^3+0.6305*x^2-0.
7、4852*x+0.0048][-0.0693*x^5+0.2184*x^4+0.3961*x^3-1.2116*x^2-0.3166*x+1.0033][0.0687*x^5-0.1469*x^4-0.5398*x^3+0.6528*x^2+0.9673*x-0.0097][-0.0317*x^5+0.0358*x^4+0.2530*x^3-0.0426*x^2-0.2257*x+0.0023][0.0049*x^5+0.0004*x^4-0.0266*x^3+0.0001*x^2+0.0220*x-0.0002]估计其误差的公式为,.1
8、3拉格朗日插值及其误差估计的MATLAB程序拉格朗日插值及其误差估计的MATLAB主程序function[y,R]=lagranzi(X,Y,x,M)n=length(X);m=length(