ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:57.26KB ,
资源ID:3962720      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3962720.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(拉格朗日插值实验报告.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

拉格朗日插值实验报告.docx

1、拉格朗日插值实验报告实验名称: 实验一拉格朗H插值1引言我们在生产生活中常常会遇到这样的问题:某个实际问题中,函数f(x)在区间 a,b上存在且连续,但却很难找到其表达式,只能通过实验和观测得到有限点上的 函数表。显然,根据这些点的函数值来求其它点的函数值是非常困难的。有些情况虽 然可以写出表达式,但结构复杂,使用不方便。所以我们总是希望根据已有的数据点 (或函数表)来构造某个简单函数Hx)作为f(x)的近似值。插值法是解决此类问题 的一种比较古老的、但却很常用的方法。它不仅直接广泛地应用于生产实际和科学研 究中,而且也是进一步学习数值计算方法的基础。2实验目的和要求运用Matlab编写三个.

2、m文件,定义三种插值函数,要求一次性输入整张函数表, 并利用计算机选择在插值计算中所需的节点。分别通过分段线性插值、分段二次插值 和全区间上拉格朗日插值计算f, 于的近似值。己知函数表如下:Xf(x)3算法原理与流程图(1)原理设函数y二在插值区间a, b上连续,且在n+1个不同的插值节点aWxo, x“,x.Wb 上分别取值,九,。目的是要在一个性质优良、便于计算的插值函数类中, 求一简单函数尸(x),满足插值条件P(Xi)=yi(i=O,l,-,n),而在其他点xHxi上,作 为巩Q近似值。求插值函数尸(x)的方法称为插值法。在本实验中,采用拉格朗日插 值法。分段低次插值当给定了 n+个点

3、xoxi* yn后,若要计算xHx处函数 值f(x)的近似值,可先选取两个节点Xt与X使xXiXi,然后在小区间Xi-x, Xi上作线性插值,即得fW - (A )=畑上工 + Z- Vi这种分段低次插值叫分段线性插值,乂称折线插值。类似地,我们可以选取距离X最近的三个节点E, X与畑,然后进行二次插值, 即得f(x)P2(x) =(+1E& 一:X-Xj/+1 (儿口jwk这种分段低次插值叫分段二次插值,乂称分段抛物线插值。全区间上拉格朗插值对节点Xi(i=O, 1, n)中任一点Xk(OWkWn),作一 n次多项式lk(x),使它在该 点上的取值为1,在其余点x,(i=O,l,k-l,k+

4、l,n)上取值为零。对应于每一节点 禺(k二0,1,n),都能写出一个满足此条件的多项式,这样写出了 n+1个多项式 lo(x), 11(X), , ln(x),其中(x) = &(x _ X。)(JT 一 耳)(X - Xk_1)(X -耳+1)(X _ 心); 由条件厶(孔)=1可得(卩-)(卩-心(玉-艰)(丑-X)于是我们可以得出如下的拉格朗日n次插值多项式(对于全区间上的插值,n取 函数表的长度)乙3 =儿厶()+ yjQ) +y丄3)(2)流程图分段线性插值分段二次插值p-p*(x-Xo(i)y(Xn(k-Wi)S=S+y(k全区间拉格朗口插值4程序代码及注释1、分段线性插值%分段

5、线性插值function y=piece_linear(xO,yO,x)% xO, yO为已知点,x为待求点n二length(xO);p=length(yO);m=length(x);% n, p, m分别为xO, yO, x长度if n、二pfprintf( Error! Please input again!n );% xO和yO长度不等时,报错elsefor 1=1:mz=x(i);sum 二;1=0;%给1赋初值,根据X的值确定1if zx0(n)fprintf ( Error! x (%d) is out of range ! n,, i); break;end%当插值点超出范围时,

6、报错for j二2:nif zx0(j)1=J;end辻广二0break;endend%旦1有非零值,则终止循环,选出合适的1for k=l-l:la二;for s二1-1:1辻ska二a*(z-xO(s)/(xO(k)-xO (s);endsum二sum+yO(k)*a;endy (i)二 sum;fprintf C y(%d) =%fnxl=%. 3f yl=%. 5f, x2=%. 3f y2=%. 5fnn,, i, y (i), xO(11), yO(11), xO(1), yO(1);%输出插值结果和所需节点endendend2、分段二次插值%分段二次插值function y二pi

7、ece_square(xO, yO,x)% xO, yO为已知点,x为待求点n=length(xO);p=length(yO);m=length(x);% n, p, m分别为xO, yO, x长度if n、二pfprintf( Error! Please input again!n );% xO和yO长度不等时,报错elsefor i二l:mz=x(i);sum 二;1=0;%给1赋初值,根据X的值确定1if zx0(n)fprintf C Error!x(%d) is out of range!Xn , i); break;end%当插值点超出范围时,报错for j二l:n-2p=* (x

8、0(j)+x0(j+l);if zp1=J;end辻广二0break;end%旦1有非零值,则终止循环,选出合适的1endif 1=0l=n-l;end%输入正确时,若1还等于零,1二n-lfor k=l-l:l+la二;for s二IT : 1+1辻 s=ka二a*(z-xO (s)/(xO (k) x0(s);endendsum二sum+yO(k)*a;endy (i)二 sum;fprintf (? y(%d)=%fnxl=%. 3f yl=%. 5fnx2=%. 3f y2=%. 5fnx3=%. 3f y3=%. 5fnn,, i, y (i), xO(11), yO(11), xO

9、(1), yO(1), xO(1+1), yO(1+1); %输出插值结果与所需节点 end end end3、拉格朗ri全区间插值%拉格朗ri全区间插值function y=lagrange (xO,yO,x)% xO, yO为已知点,x为待求点n=length(xO):p=length(yO);m=length(x);%n, p, m分别为xO, yO, x长度if n、二pfprintf( Error! Please input again!n );%x0和yO长度不等时,报错elsefor i二l:mz=x(i);S二;if zxO(n)fprintf ( Error!x(%d) is

10、 out of range!n , i); break;end%当插值点超出范围时,报错for k=l:nP二;for j=l:np二p*(z-xO(j)/(xO(k)-xO (j);ifends二p*yO(k)+s;endy(i)=s;fprintf ( y (%d) =%. 5fn,i, y (i);%输出插值结果endendend5算例分析1、测试示例 x=l 2 3 4; y二2 3 4; y2z:lagrange (x, y, xO)Error! Please input again! x=l 2 3 4; y=2 3 4 5; x0=; y2=lagrange (x,y,xO)Er

11、ror!x(l) is out of range! X 二1 2 3 4; y二2 3 4 5; xO=; y2z:lagrange (x, y, xO)y(l) =Error!x(2) is out of range!y2 二2、首先输入函数变及待求点x= ;y= ;x0=;注:保证在matlab工作目录中有三个.m文件3、分段线性插值yO二piece_linear (x,y,xO) y(l) =xl二 yl二,x2二 y2二y(2) =xl二 yl二,x2二 y2二y(3) =xl二 yl二,x2二y2=yO 二4、分段二次插值 yl=piece_square(x, y, xO) y(l)

12、 =xl二 yl二x2= y2=x3二 y3二y(2) =xl二 yl二x2= y2=x3二 y3二y(3) =xl二 yl二x2= y2=x3二 y3二yl 二5、全区间拉格朗口插值 y2=lagrange (x,y,xO) y(l) =y(2) =y(3) =y2 =6讨论与结论1、使用tic, toe函数计算下列四种方法计算上述问题所运行的时间Functionlagrange(xO, yO,X)piece_linear (x0, yO, x)piece_square(x0, yO, x)运行时间(s)从三次实验结果可知,三个程序的运行时间都很短。2、程序优化由分段线性插值和分段二次插值的

13、原理,x取值在函数表范围内时,插值结果有 意义,而当x取值在函数表范围以外,利用分段线性插值公式仍可以进行运算并得到 一个值,但其结果不准确;分段二次插值则无法找到三个合适的点以求插值,不予以 输出结果;若输入的函数表x与y的长度不相等,则无法插值。所以加入以下判断以提 高插值的准确性nlength(xO);p=length(yO);m二length(x);if n二pfprintf ( Error! Please input again!n ):if zxO(n)fprintf ( Error!x(%d) is out of range!n , i);break;end3、作图比较上图为三种方法的插值曲线,其中X取0到,步长为,由图可得,三种曲线非常接近, 这说明我们用拉格朗日插值计算所给点函数值的近似值时,引起的误差还是比较小 的。参考文献1易大义,沈云宝,李有法.计算方法(第2版),浙江大学出版社.2张琨高思超毕靖编着MATLAB2010从入门到精通电子工业出版社

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1