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

民主与科学

独立之人格,自由之思想

 
 
 

日志

 
 

拉格朗日Lagrange插值多项式  

2011-11-16 15:59:51|  分类: 数学相关 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
本文转载自:http://hwiechern.blog.163.com/blog/static/106796622007913104859712/

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

它的几何意义是,用过n+1个不同点拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学的n次代数曲线Ln(x)近似地代替曲线 y=f(x)

                 拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学

现在来构造一般插值多项式Ln(x),设在给定n+1个不同节点拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学上的n次插值基函数分别为拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学,则所求不超过n次的插值多项式表示为:拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学

下面求插值基函数拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学由条件:拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学

可得插值基函数拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学在各节点上函数值表为:

                    拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学

作为任一拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学点的n次插值基函数分别为拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学,由于在除拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学外所有节点取值皆为0,因此,拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学

含有因子拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学,又因为拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学为n次多项式,故拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学

可表示为:拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学

再由条件拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学

拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学

拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学

拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学

其中

拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学

将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        %函数(文件)名不区分大小写

            拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学

Ruger现象:

      拉格朗日Lagrange插值多项式 - hubingforever - 民主与科学

  评论这张
 
阅读(2133)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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