数值实验3:插值法

原创 2015年11月18日 19:36:29

插值法

1 实验目的

  1. 熟悉拉格朗日插值多项式和牛顿插值多项式,注意其不同特点。
  2. 观察高次插值的荣格现象。

2 实验内容

1) 已知函数表

实验1
x(i) 0.56160 0.56280 0.56401 0.56521
y(i) 0.82741 0.82659 0.82577 0.82495

用三次拉格朗日插值多项式求 x=0.5635 时的函数近似值。

2) 已知函数表

实验2
x(i) 0.4 0.55 0.65 0.8 0.9
y(i) 0.41075 0.5715 0.69675 0.88811 1.02652

用牛顿插值多项式求 x=0.596x=0.895 时的函数近似值。

3)在区间 [1,1] 上,分别构造函数 f(x) 的2次、5次和10次拉格朗日多项式,画出原函数和插值函数的图形,并将在节点数的函数值和插值多项式的函数值结果列表,观察并分析实验结果。其中函数 f(x)

f(x)=11+25x2

3 实验程序

实验程序主要包含拉格朗日插值和牛顿插值2个方法。

  • 拉格朗日差值法
function [C, L] = Rlagranpoly(X, Y)
%拉格朗日插值 2015.11.18
% 调用格式:[C, L] = Rlagranpoly(X, Y)
% 输入:X = x 行向量
%       Y = y 行向量
% 输出:C = 多项式系数
%       L = 线性插值多项式
w = length(X);
n = w - 1;
L = zeros(w);
for k = 1 : n+1
    V = 1;
    for j = 1 : n+1
        if k ~= j
            V = conv(V, poly(X(j)))/(X(k)-X(j));
        end
    end
    L(k,:) = V;
end
C = Y*L;
  • 牛顿插值法
function [C, D] = Rnewtonpoly(X, Y)
%牛顿插值 2015.11.18
% 调用格式:[C, D] = Rnewtonpoly(X, Y)
% 输入:X = x 行向量
%       Y = y 行向量
% 输出:C = 多项式系数
%       D = 差商表
n = length(X);
D = zeros(n);
D(:, 1) = Y';
for j = 2 : n
    for k = j : n
        D(k, j) = (D(k, j-1) - D(k-1, j-1))/(X(k) - X(k-j+1));
    end
end
C = D(n, n);
for k = n-1 : -1 : 1
    C = conv(C, poly(X(k)));
    m = length(C);
    C(m) = C(m) + D(k, k);
end

4 实验结果分析

4.1 实验一

图1 问题1的拉格朗日插值

问题1的解
x=0.5635 y=0.8261

4.2 实验二

图2 问题2的牛顿插值

问题2的解
x=0.596 y=0.6286
0.895 y=1.0191

4.3 实验三

图3 问题3的拉格朗日插值

  • 2次拉格朗日插值多项式结果对比
xi f(xi) 插值多项式函数值
1 3.8462E2 3.8462E2
0 1 1
1 3.8462E2 3.8462E2
  • 5次拉格朗日插值多项式结果对比
xi f(xi) 插值多项式函数值
1 3.8462E2 3.8462E2
-0.6 0.1 0.1
-0.2 0.5 0.5
0.2 0.5 0.5
0.6 0.1 0.1
1 3.8462E2 3.8462E2
  • 10次拉格朗日插值多项式结果对比
xi f(xi) 插值多项式函数值
1 3.8462E2 3.8462E2
0.8 5.8824E2 5.8824E2
0.6 0.1 0.1000
0.4 0.2 0.2000
0.2 0.5 0.5000
0 1 1.000
0.2 0.5 0.5000
0.4 0.2 0.2000
0.6 0.1 0.1000
0.8 5.8824E2 5.8824E2
1 3.8462E2 3.8462E2

5 实验结论

本次实验研究了拉格朗日插值多项式和牛顿插值多项式的特性,并观察到了高次拉格朗日插值多项式在高阶插值的荣格现象。

版权声明:本文为博主原创文章,未经博主允许不得转载,博客主页 http://blog.csdn.net/i_love_home

相关文章推荐

拉格朗日插值法(数值计算实验)

  • 2013年06月04日 23:02
  • 476B
  • 下载

数值作业:Hermite多项式插值法之C语言代码

这个问题个人也看的不太懂,参考百科上的计算说明,把它转化成相应成代码即可.埃尔米特插值是另一类插值问题,这类插值在给定的节点处,不但要求插值多项式的函数值与被插函数的函数值相同。同时还要求在节点处,插...

数值分析插值法

  • 2012年11月13日 18:36
  • 656B
  • 下载

s数值分析——牛顿插值法

  • 2013年11月19日 11:27
  • 51KB
  • 下载

Matlab 数值计算小示例。主要为牛顿迭代法、LU分解法、拉格朗日插值、牛顿插值法

前言:此文为去年我替人做的一个课题,觉得比较简洁,图形也比较美观,因此放在博文里数据源我放到了百度云盘高脚杯数据源 有兴趣的可以下载数据,跑程序试一下。也可以单独看看代码,看下实现过程。主函数 %...

数值分析_(7-4)_第4章__插值法.ppt

  • 2014年01月22日 15:17
  • 337KB
  • 下载

数值分析 牛顿插值法c++代码

  • 2010年10月10日 22:30
  • 746B
  • 下载

数值作业:Hermite插值法之C语言实现代码

这个问题个人也看的不太懂,参考百科上的计算说明,把它转化成相应成代码即可.埃尔米特插值是另一类插值问题,这类插值在给定的节点处,不但要求插值多项式的函数值与被插函数的函数值相同。同时还要求在节点处,插...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数值实验3:插值法
举报原因:
原因补充:

(最多只允许输入30个字)