数值分析实验报告插值与拟合.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数值分析实验报告插值与拟合

插值与拟合 1. 观察直接利用拉格朗日插值多项式的病态性 实验目的:如果直接利用拉格朗日插值多项式的的定义,即 确定系数,就必须解方程 该方程的系数矩阵为范德蒙(Vandermonde)矩阵,它是严重病态的,因此这种方法不能使用。本实验的目的是观察这种病态性。 实验内容:取不同的n ,并在[0,1]区间上取n个等分点,计算上述系数矩阵A的条件数,画出㏑(cond(A))~n之间的曲线。(可利用MatLab的库函数cond完成) 实验算法:(源程序) function y=tiaojianshu(x) for i=1:x n=i; B=[]; A=ones(n+1,1); for j=1:n+1 a(j)=(j-1)/n; end for i=1:n+1 B=[B,a(i)]; end B=B; for k=1:n A=[A,B.*A(:,k)]; end A y=log(cond(A)); plot(n,y,.r); xlabel(n); ylabel(1n(cond(A))); hold on end 实验结果: ㏑(cond(A))~n之间的曲线如下: 实验说明:随着n的值增大,㏑(cond(A))也线性增大,即cond(A)呈现指数上升趋势。 当n取一个较大的值时,cond(A)会相当大,方程组呈现变态。 2. 牛顿插值法 实验目的:学会牛顿插值法,并应用算法于实际问题。 实验内容:给定函数 ,已知: 实验要求:用牛顿插值法求4次Newton插值多项式在2.15处的值,以此作为函数的近似值。 实验算法: 根据下面方程求出系数 然后列出求的表达式: 源程序如下: format long x=2.15;y=0; X=[2.0; 2.1; 2.2; 2.3 ;2.4]; Y=[1.414214;1.449138;1.483240;1.516575;1.549193]; A=ones(5,1); B=[];C=[]; for i=1:5 B(i,1)=X(i,1)-X(1,1); end for i=1:5 B(i,2)=(X(i,1)-X(1,1))*(X(i,1)-X(2,1)); end for i=1:5 B(i,3)=(X(i,1)-X(1,1))*(X(i,1)-X(2,1))*(X(i,1)-X(3,1)); end for i=1:5 B(i,4)=(X(i,1)-X(1,1))*(X(i,1)-X(2,1))*(X(i,1)-X(3,1))*(X(i,1)-X(4,1)); end A=[A,B]; C=linsolve(A,Y); C=C; y=y+C(1)+C(2)*(x-X(1,1))+C(3)*(x-X(1,1))*(x-X(2,1)); y=y+C(4)*(x-X(1,1))*(x-X(2,1))*(x-X(3,1)); y=y+C(5)*(x-X(1,1))*(x-X(2,1))*(x-X(3,1))*(x-X(4,1)) 实验结果: y = 1.46628819531250 3. 拟合方式实验 实验目的:学会用最小二乘法求拟合数据的多项式,并应用算法于实际问题。 实验内容:给定数据点: 0 0.5 0.6 0.7 0.8 0.9 1.0 1 1.75 1.96 2.19 2.44 2.71 3.00 实验要求: ⑴ 用最小二乘法求拟合数据的多项式,并求平方误差,作出离散函数和拟合函数的图形。 ⑵ 用MatLab的函数polyfit求解上面最小二乘法曲线拟合,并用MatLab的有关函数作出其图形。 实验算法:(源程序) (1) format long X=[0,0.5,0.6,0.7,0.8,0.9,1.0]; Y=[1,1.75,1.96,2.19,2.44,2.71,3.00]; plot(X,Y,r*); legend(数据点(xi,yi)); xlabel(x); ylabel(y); title(数据点(xi,yi)的散点图); hold on syms x y wucha=0; X=[0,0.5,0.6,0.7,0.8,0.9,1.0]; Y=[1,1.75,1.96,2.19,2.44,2.71,3.00]; n=length(X);B=[]; A=ones(n,1); 接上 B=X; A=[A,B]; B=B.*B; A=[A,B]; C=linsolve(A,Y) y=C(3)*x^2+C(2)*x+C(1) x=-1.00:0.01:1.00 y=C(1)+C(2)*x+C(3)*x.^2; plot(x,y); xlabel

文档评论(0)

weizhent2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档