【多项式插值的振荡现象】

一、实验内容及目的

设区间[-1,1]上函数 f(x)=1/(1+25x2)。
考虑区间[-1,1]的一个等距划分,分点为xi= -1 + 2i/n,i=0,1,2,…,n,
则拉格朗日插值多项式为
.
其中,li(x),i=0,1,2,…,n是n次Lagrange插值基函数。
在一个固定的区间上用插值逼近一个函数,显然Lagrange插值中使用的节点越多,插值多项式的次数就越高。我们自然关心插值多项式的次数增加时,Ln(x)是否也更加靠近被逼近的函数。Runge给出的一个例子是极著名并富有启发性的。

二、程序代码及实验结果

1.代码

function t_charpt2
% 输入:函数式选择,插值结点数
% 输出:拟合函数及原函数的图形
promps = {'请选择实验函数,若选f(x),请输入f,若选h(x),请输入h,若选g(x),请输入g:'};
titles = 'charpt_2';
result = inputdlg(promps,'charpt 2',1,{'f'});
Nb_f = char(result);
if(Nb_f ~= 'f' & Nb_f ~= 'h' & Nb_f ~= 'g')errordlg('实验函数选择错误!');return;end
result = inputdlg({'请输入插值结点数N:'},'charpt_2',1,{'10'});
Nd = str2num(char(result));
if(Nd <1)errordlg('结点输入错误!');return;end

switch Nb_f
    case 'f'
        f=inline('1./(1+25*x.^2)'); a = -1;b = 1;
    case 'h'
        f=inline('x./(1+x.^4)'); a = -5; b = 5;
    case 'g'
        f=inline('atan(x)'); a = -5; b= 5;
end

    x0 = linspace(a, b, Nd+1); y0 = feval(f, x0);
    x = a:0.1:b; y = Lagrange(x0, y0, x);
    fplot(f, [a b], 'co');
    hold on;
    plot(x, y, 'b--');
    xlabel('x'); ylabel('y = f(x) o and y = Ln(x)--');
%--------------------------------------------------------------------
%--以下函数需要创建函数文件
function y=Lagrange(x0, y0, x);  
% Lagrange插值
n= length(x0); m=length(x);
for i=1:m
    z=x(i);
    s=0.0;
    for k=1:n
        p=1.0;
        for j=1:n
            if(j ~= k)
                p = p*(z - x0(j))/(x0(k) - x0(j));
            end
        end
        s = s + p*y0(k);
    end
    y(i) = s;
end

2.实验结果
(1)f(x)=1/(1+〖25x〗^2 )
在这里插入图片描述
在这里插入图片描述
节点数对称时,插值函数也是对称的,节点数越多,附近的区域拟合越好;节点数越多,两端误差越大。
(2)h(x)=x/(1+x^4 )
在这里插入图片描述
在这里插入图片描述
当节点为均匀节点时:插值图像对称,不收敛,但是节点数越多,0附近的拟合效果越好,同时两端的误差较大。 当节点为切比雪夫点时:插值点数目为奇数、偶数,图像对称,但是可以收敛,节点数越多,拟合效果越好。

三、实验总结

1.插值结点的数目不一定是越多拟合的越好,通常情况下会出现发散现象。
因为从差值余项上看,n增大,其分母(n+ 1) !增大,而分子也在不断的增大,哪个的影响更大是和结点的选取直接相关的,不一定就谁大。
2.对称节点的选取,得到的插值函数的对称性与被插值函数相同;节点的位置不对称,则得到的插值函数也不对称,节点位置的选取会影响插值函数的收敛性和误差。

结语

此分享仅为各位同学借鉴之处,只供交流学习,不提倡有同学直接进行抄袭,特别是有可能会看见此篇文章的直系学弟学妹。仅供参考。因为听说直接抄袭被查出来会直接挂哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值