基于Matlab的插值问题(Lagrange插值法、三次插值多项式)

这篇具有很好参考价值的文章主要介绍了基于Matlab的插值问题(Lagrange插值法、三次插值多项式)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、插值要求和目的

要求
1、 利用Lagrange插值公式 L n ( x ) = ∑ k = 0 n ( ∏ i = 0 , i ≠ k n x − x i x k − x i ) y k {L_n}(x) = \sum\limits_{k = 0}^n {\left( {\prod\limits_{i = 0,i \ne k}^n {\frac{{x - {x_i}}}{{{x_k} - {x_i}}}} } \right)} {y_k} Ln(x)=k=0n(i=0,i=knxkxixxi)yk 编写出插值多项式程序;
2、 给出插值多项式或分段三次插值多项式的表达式;
3、 根据节点选取原则,对问题(2)用三点插值或二点插值,其结果如何;

目的和意义
1、 学会常用的插值方法,求函数的近似表达式,以解决其它实际问题;
2、 明确插值多项式和分段插值多项式各自的优缺点;
3、 熟悉插值方法的程序编制;
4、 如果绘出插值函数的曲线,观察其光滑性。

二、题目

对于给定的一元函数 y = f ( x ) y = f(x) y=f(x)的n+1个节点值 y j = f ( x j ) , j = 0 , 1 , ⋯   , n {y_j} = f({x_j}),j = 0,1, \cdots ,n yj=f(xj),j=0,1,,n。试用Lagrange公式求其插值多项式或分段二次Lagrange插值多项式。
数据如下:
题目(1)

x j {x_j} xj 0.4 0.55 0.65 0.80 0.95 1.05
y j {y_j} yj 0.41075 0.57815 0.69675 0.90 1.00 1.25382

求五次Lagrange多项式 L 5 ( x ) {{\rm{L}}_5}(x) L5(x),和分段三次插值多项式,计算 f ( 0.596 ) f(0.596) f(0.596), f ( 0.99 ) f(0.99) f(0.99)的值。
(提示:结果为 f ( 0.596 ) ≈ 0.625732 f(0.596) \approx 0.625732 f(0.596)0.625732, f ( 0.99 ) ≈ 1.05423 f(0.99) \approx 1.05423 f(0.99)1.05423

题目(2)

x j {x_j} xj 1 2 3 4 5 6 7
y j {y_j} yj 0.368 0.135 0.050 0.018 0.007 0.002 0.001

试构造Lagrange多项式 L 6 ( x ) {{\rm{L}}_6}(x) L6(x),计算的 f ( 1.8 ) f(1.8) f(1.8), f ( 6.15 ) f(6.15) f(6.15)值。(提示:结果为 f ( 1.8 ) ≈ 0.164762 f(1.8) \approx 0.164762 f(1.8)0.164762, f ( 6.15 ) ≈ 0.001266 f(6.15) \approx 0.001266 f(6.15)0.001266

三、求解与代码实现

题目(1)
五次拉格朗日: L 5 ( x ) = ∑ k = 0 5 ( ∏ i = 0 , i ≠ k 5 x − x i x k − x i ) y k {L_5}(x) = \sum\limits_{k = 0}^5 {\left( {\prod\limits_{i = 0,i \ne k}^5 {\frac{{x - {x_i}}}{{{x_k} - {x_i}}}} } \right)} {y_k} L5(x)=k=05(i=0,i=k5xkxixxi)yk
三次插值多项式: S ( x ) = y k − 1 + [ y k − y k − 1 h k − 1 − h k − 1 6 ( 2 m k − 1 + m k ) ] ( x − x k − 1 ) + m k − 1 2 ( x − x k − 1 ) 2 + m k − m k − 1 6 h k − 1 ( x − x k = 1 ) 2 S(x) = {y_{k - 1}} + [\frac{{{y_k} - {y_{k - 1}}}}{{{h_{k - 1}}}} - \frac{{{h_{k - 1}}}}{6}(2{m_{k - 1}} + {m_k})](x - {x_{k - 1}}) + \frac{{{m_{k - 1}}}}{2}{(x - {x_{k - 1}})^2} + \frac{{{m_k} - {m_{k - 1}}}}{{6{h_{k - 1}}}}{(x - {x_{k = 1}})^2} S(x)=yk1+[hk1ykyk16hk1(2mk1+mk)](xxk1)+2mk1(xxk1)2+6hk1mkmk1(xxk=1)2
其中: h k = x k + 1 − x k , m k = S ′ ′ ( x k ) {h_k} = {x_{k + 1}} - {x_k},{m_k} = S''({x_k}) hk=xk+1xk,mk=S′′(xk)

lagrange.m

function yh=lagrange(x,y,xh)

n = length(x);
m = length(xh);

x = x(:);
y = y(:);
xh = xh(:);

yh = zeros(m,1); 
c1 = ones(1,n-1);
c2 = ones(m,1);

for i=1:n
  xp = x([1:i-1 i+1:n]);
  yh = yh + y(i) * prod((xh*c1-c2*xp')./(c2*(x(i)*c1-xp')),2);
end

work1.m

x = [0.4, 0.55, 0.65, 0.8, 0.95, 1.05];
y = [0.41075, 0.57815, 0.69675, 0.90, 1.00, 1.25382];
xh = [0.596, 0.99];

lagrange(x, y, xh)

%
    MATLAB中的插值函数为interp1,其调用格式为:  yi= interp1(x,y,xi,'method')           
    其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量, 
    'method'表示采用的插值方法,MATLAB提供的插值方法有几种: 
    'nearest'是最邻近插值, 'linear'线性插值; 'spline'三次样条插值; 'pchip'立方插值.缺省时表示线性插值
    注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。
%}

interp1(x, y, xh, 'spline')

结果截图:

已知下列数据点的插值 x0.450.550.650.800.901.05 y0.410750.578150.696,matlab,算法,开发语言
所以可得:
l a g r a n g e { f ( 0.596 ) = 0.6257 f ( 0.99 ) = 1.0542 {\bf{lagrange}}\left\{ \begin{array}{l} f(0.596) = 0.6257\\ f(0.99) = 1.0542 \end{array} \right. lagrange{f(0.596)=0.6257f(0.99)=1.0542
s p l i n e { f ( 0.596 ) = 0.6285 f ( 0.99 ) = 1.0677 {\bf{spline}}\left\{ \begin{array}{l} f(0.596) = 0.6285\\ f(0.99) = 1.0677 \end{array} \right. spline{f(0.596)=0.6285f(0.99)=1.0677

题目(2)

Work2.m

x = [1, 2, 3 ,4 ,5,6,7 ];
y = [0.368,0.135,0.050,0.018,0.007,0.002,	0.001 ];
xh = [1.8, 6.15];

lagrange(x, y, xh)

结果截图:
已知下列数据点的插值 x0.450.550.650.800.901.05 y0.410750.578150.696,matlab,算法,开发语言
所以可得:

l a g r a n g e { f ( 1.8 ) = 0.1648 f ( 6.15 ) = 0.0013 {\bf{lagrange}}\left\{ \begin{array}{l} f(1.8) = 0.1648\\ f(6.15) = 0.0013 \end{array} \right. lagrange{f(1.8)=0.1648f(6.15)=0.0013文章来源地址https://www.toymoban.com/news/detail-727230.html

到了这里,关于基于Matlab的插值问题(Lagrange插值法、三次插值多项式)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Matlab图像处理-灰度插值法

    最近邻法 最近邻法是一种最简单的插值算法,输出像素的值为输入图像中与其最邻近的采样点的像素值。是将 ( u 0 , v 0 ) (u_0,v_0) 点最近的整数坐标 u , v (u,v) 点的灰度值取为 ( u 0 , v 0 ) (u_0,v_0) 点的灰度值。 在 ( u 0 , v 0 ) (u_0,v_0) 点各相邻像素间灰度变化较小时,这种方法是一

    2024年02月10日
    浏览(32)
  • 【数值分析实验】(一)插值法(含matlab代码)

            实际问题中许多变量的关系可以用数学函数概念进行刻画,但是在大多数情况下,这些函数的表达式是未知的,或者已知但十分复杂,需要我们将这个函数的未知解析式近似地构造出来,或者用一个简单的函数表达式来代替复杂的函数表达式。基于上述过程,我们

    2024年02月12日
    浏览(33)
  • 二次插值法详细步骤及其matlab代码举例

    基本思想:在搜索区间中不断使用二次多项式去近似目标函数,并逐步用插值多项式的极小点去逼近搜索问题(什么鬼?)其实就是模拟目标函数,求出模拟出来的函数的极小值近似等于目标函数极小值 mini f(x)    区间[a,b] 精度e=0.3(自己设置) 确定目标函数区间[a,b],精度e

    2024年02月10日
    浏览(36)
  • 数值分析(四) Hermite(埃尔米特)插值法及matlab代码

      本篇为 插值法专栏 第四篇内容讲述,此章主要讲述 Hermite(埃尔米特)插值法 及matlab代码,其中也给出详细的例子让大家更好的理解Hermite插值法 提示 之前已经介绍 牛顿插值法 和 三次样条插值 ,如果没看过前两篇的可以点击以下链接阅读 数值分析(一)牛顿插值法

    2024年02月10日
    浏览(36)
  • 25.2 matlab里面的10中优化方法介绍——插值法(matlab程序)

    1. 简述        插值法又称“内插法”,是 利用函数f (x)在某区间中已知的若干点的函数值,作出适当的特定函数,在区间的其他点上用这特定函数的值作为函数f (x)的近似值, 这种方法称为插值法。如果这特定函数是多项式,就称它为插值多项式。常见 分段线性插值法 和

    2024年02月15日
    浏览(26)
  • 【数值分析】拉格朗日插值法与牛顿插值法的C++实现

    设函数 y = f ( x ) displaystylecolor{red}y=f(x) y = f ( x ) 在区间 [ a , b ] displaystylecolor{red}[a,b] [ a , b ] 上有定义,且 a ≤ x 0 x 1 ⋯ x n ≤ b displaystylecolor{red}a ≤x_0x_1dotsx_n ≤b a ≤ x 0 ​ x 1 ​ ⋯ x n ​ ≤ b ,已知在 x 0 … x n displaystylecolor{red}x_0dots x_n x 0 ​ … x n ​ 点处的值分别为

    2024年02月06日
    浏览(32)
  • 算法--插值法

    插值法是一种数学方法,主要用于通过已知的离散数据来估算未知值。常见的插值法有线性插值、最近邻插值、双线性插值和双三次插值。以下是其基本原理和应用: 线性插值:假设在两个已知数据点之间,数据的变化是线性的,因此可以通过已知的两点的坐标来计算经过这

    2024年01月18日
    浏览(25)
  • 数学建模之插值法

    数模比赛中,常常需要根据已知的函数点进行数据、模型的处理和分析,而有时候现有的数据是极少的,不足以支撑分析的进行,这时就需要使用一些数学的方法,“ 模拟产生 ”一些新的但又比较靠谱的值来满足需求,这就是插值的作用。 那什么是插值法? 插值法又可以分

    2024年02月03日
    浏览(39)
  • 浅谈拉格朗日插值法

    好像FFT要用到,所以就学习一手 版题 其意义在于: 理解一下: 就是把一个足球踢出去,假设球始终在一个平面上飞行,它的轨迹就可以抽象为 (f(x)) (假设这个函数至于时间有关) 现在你有一些照片,所以你可以得到某几个时间点球的位置,想要还原出这个函数 (f(x)) 的

    2023年04月25日
    浏览(23)
  • 上采样(最近邻插值、双线性插值法、反池化、转置卷积)

    一般图像分割的时候,需要对图像进行像素级别的分类,因此在卷积提取到抽象特征后需要通过上采样将feature map还原到原图大小,在FCN和U-net等网络中都提到了上采样的操作,这里会一些上采样的方法进行总结。 最简单的图像缩放算法就是最近邻插值,也称作零阶插值,就

    2024年02月05日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包