- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算方法与实习报告
Lagrange插值的修正
题目:Lagrange插值多项式的表达式为:
p
但上述公式不适合实际计算:
对x求值,每次需要的工作量是o(n2).增加(或删减)和修改节点,都需要重新计算表达式。
公式推导:
设有n+1个不同的插值节点 xi,i=0,1,…,n, 和相对应的一组实数 yi。若一个插值多项式P(x)满足 P(xi)= yi,i=0,1,…,n,则其是唯一的。若一个n次多项式满足lk(x0)=0,
lkx
=
可得Ak=1i=0,i≠kn(
n次插值多项式Pnx=k=0n
L
修正后的Lagrange差值多项式
若我们可以令wj=1i≠j(xj-xi),φn
P(x) =φn x
工作量分析
观察到每一次计算Lagrange插值多项式需要计算的量很大,从未改进Lagrange差值多项式公式可以看出,对x进行求值,需要计算的工作量为:对每一个j,需要进行n-1次乘法,一共有n个j,再加上加法,故需要的工作量为0(n2
对于改进Lagrange差值多项式公式可以看出,对X进行求值,需要计算一次除法和n次加法,故总共需要的工作量为:n。故需要的工作量为:0(n)。
从工作量时间复杂度上可以看出,改进后的算法可以大大减少工作时间和工作量。
算法验证
用matlab对算法进行验证。
1.采用插值点为5个的波形图对比如下:其中,红色为插值波形,绿色为原波形。
2. 采用插值点为10个波形图对比如下:
其中,红色为插值波形,绿色为原波形。
3. 采用插值点为50个波形图对比如下:
其中,红色为插值波形,绿色为原波形。
结论:如图可以看出,插值点数越多,越接近于原来波形。
4. 特殊情况
并非取点越多,越精确,其原因是舍入误差导致的。这就导致了龙格现象的产生。
例如:f(x)=1/(1+x^2)
其中红色的是原函数。由图可见,插值点数越多,其越偏离原来函数。并不是插值点数越多,其越准确。
算法时间的对比
对比两种算法的时间,采用tic,toc函数进行测量,测量多次取平均值。
所用时间如下:
运行5000次:
改进后插值函数运算时间:4.4609e-005
原插值函数运算时间:0 有数据可以看出,改进以后的算法时间跟以前相比,差了一个数量级,其运算效率 大大提高。
算法稳定性比较
被插值函数为:y=cos(x)。
通过对原始数据进行加微小的扰动进行测量:
采用的方法是:加入rand(n,m)函数进行。
其中:红色线条为扰动后波形,绿色线条为未扰动波形。
由图可知,算法的稳定性较好。
算法代码
Lagrange原函数代码:
function f=lagrange1(x,y,xi)
%[h1,l1]=size(x);
%[h2,l2]=size(y);
h1=length(x);
h2=h1;
w=ones(h1);
wt=1;
l=ones(h1);
fi=1;
for m=1:h1
fi=fi*(xi-x(m));
end
for j=1:h1
wt=1;
for i=1:h2
if i~=j
wt=wt*(x(j)-x(i));
end
end
w(j)=1/wt;
l(j)=fi*w(j)/(xi-x(j));
end
px=0;
for p=1:h1
px=px+w(p)*y(p)/(xi-x(p));
end
px=px*fi;
f=px;
Lagrange修改后算法
function f=lagrint(x,y,xi)
dxi=xi-x;
n=length(x);
L=zeros(size(y));
L(1)=prod(dxi(2:n))/prod(x(1)-x(2:n));
L(n)=prod(dxi(1:n-1))/prod(x(n)-x(1:n-1));
for j=2:n-1
num=prod(dxi(1:j-1))*prod(dxi(j+1:n));
den=prod(x(j)-x(1:j-1))*prod(x(j)-x(j+1:n));
L(j)=num/den;
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
end
yi=sum(y.*L) ;
%fprintf(x=%f,y=%f,xi,yi);
f=[xi,yi];
主函数:
clc;
clear;
x=linspace(0,10,20);
y=cos(2*x);
x0=linspace(0,10,200);
y0=cos(2*x0);
xi
您可能关注的文档
- 2019年高考复习讲义课件文科(历史)11近现代中国经济结构的变动与资本主义的曲折发展.pptx
- 2019年高考复习讲义课件文科(历史)12中国特色社会主义建设的道路.pptx
- 2019年高考复习讲义课件文科(历史)13中国近现代社会生活的变迁.pptx
- 2019年高考复习讲义课件文科(历史)14世界资本主义经济政策的调整.pptx
- 2019年高考复习讲义课件文科(历史)15苏联的社会主义建设.pptx
- 2019年高考复习讲义课件文科(历史)16世界经济的全球化趋势.pptx
- 2019年高考复习讲义课件文科(历史)17中国传统文化主流思想的演变.pptx
- 2019年高考复习讲义课件文科(历史)18西方人文精神的起源与发展.pptx
- 2019年高考复习讲义课件文科(历史)19单元古代中国的科学技术与文学艺术.pptx
- 2019年高考复习讲义课件文科(历史)20单元近代以来世界的科学技术.pptx
文档评论(0)