登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Hwie的博客

努力撑起属于自己的一片天空

 
 
 

日志

 
 

拉格朗日Lagrange插值多项式  

2007-10-13 22:48:59|  分类: 工作交流 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

设函数f(x)在区间[a,b]上连续,在给定n+1个不同节点上的值分别为,要求构造一个不超过n次的多项式: , 去近似函数y=f(x),使之满足插值条件:

它的几何意义是,用过n+1个不同点的n次代数曲线Ln(x)近似地代替曲线 y=f(x)

                

现在来构造一般插值多项式Ln(x),设在给定n+1个不同节点上的n次插值基函数分别为,则所求不超过n次的插值多项式表示为:

下面求插值基函数由条件:

可得插值基函数在各节点上函数值表为:

                    

作为任一点的n次插值基函数分别为,由于在除外所有节点取值皆为0,因此,

含有因子,又因为为n次多项式,故

可表示为:

再由条件

其中

将Ln称为函数f(x)的拉格朗日值多项式。下面是算法的Matlab实现:

function [p]=Lag_Polyfit(X,Y)
%Matlab函数文件Lag_Polyfit.m
%拉格朗日插值法多项式拟合
%[p]=Lag_polyfit(X,Y)
% X 拟合自变量
% Y 拟合函数值
% p 所得的拟合多项式系数
if size(X)~=size(Y)
   error('变量不匹配');
end                    %如果要拟合的函数值与自变量维数不一样,则退出报错
tic                        %开始记时
format long g              %设置最合适的数字格式                
r=size(Y); n=r(2);         %n为要拟合的数据长度
p=zeros(1,n);              %保存所得多项式系数
p0=p;  b=0;                %工作变量
W=poly(X);                 %W为以X为根的多项式
dW=polyder(W);             %dW为对多项式W求导后的多项式系数
z=polyval(dW,X);           %z为以dW为系数的多项式对X的值
A=[1 1]; r=A;              %A,r为长度为2的(1,2)向量
for i=1:n                  %计算循环开始
     A=[1,-X(i)];            %A为一次多项式x-x(i)系数
    [p0,r]=deconv(W,A);     %进行多项式除法W/A,p0为商
     b=Y(i)/z(i);
     p0=b.*p0;               %p0为累加项
     p=p+p0;
end                         %循环结束                                                                                
disp(toc)                   %

例如
%Matlab命令文件LagSin.m
%用拉格朗日插值法拟合[0,2*pi]上的sin函数
x0=linspace(0,2*pi,10);
y0=sin(x0);               %拟合数据采样
p=Lag_Polyfit(x0,y0);     %调用Lag_polyfit计算拟合多项式
x=0:0.02:2*pi;            
y1=sin(x);                %sin函数值
y2=polyval(p,x);          %拟合多项式值
plot(x0,y0,'+',x,y2,'r')       %sin函数(蓝色)与多项式(红色)效果图
命令窗口中输入lagsin观察图形输出窗口
>>logsin        %函数(文件)名不区分大小写

           

Ruger现象:

     

  评论这张
 
阅读(6713)| 评论(4)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018