MATLAB之牛顿插值法
一、算法原理
1、问题引入
上一篇博客我们介绍了拉格朗日插值法,我们现在来回顾其定义:
对于插值区间【a,b】上一系列插值节点x0,x1,x2,......xn及其函数值y0、y1、y2......yn;构造一个简单的简单易算的近似函数g(x)≈f(x),满足条件g(xi)=f(xi) (i=0,1,2...,n)。
其拉格朗日插值多项式的形式为:
g(x)=L0(x0)*y0+L1(x1)*y1+......+Ln(xn)*yn,
其中Li(xi)=[(x-x0)*(x-x1)*......*(x-x(i-1))*(x-x(i+1))*.....*(x-xn)] / [(xi-x0)*(xi-x1)*......*(xi-x(i-1))*(xi-x(i+1))*.....*(xi-xn)]。
优点:具有严格的规律性,便于记忆。
缺点:计算量大、不具有承袭性。
2、牛顿插值法
Lagrange 插值虽然易算,但若要增加一个节点时, 全部基函数Li(x) 都需要重新计算。能否改写其形式,使其每增加一个点,只附加一项(重新计算一项)。
设Nn(x)=A0+A1*(X-X0)+A2*(X-X0)(X-X1)+......+An(X-X0)*(X-X1)......(X-X(n-1))
利用Nn(xi)=f(xi),写成矩阵形式:
1 0 ...... 0 [A0 [f(x0) 1 x1-x0 ...... 0 A1 f(x1) 1 x2-x0 (x2-x0) (x2-x1) ...... 0 * ...... = ...... ... ... ...... ...... ... ... ... ...... ...... 1 xn-x0 (xn-x0) (xn-x1) ...... (xn-x0)*...(xn-x(n-1)) An] f(xn)] 根据该线形方程组可以求得:A0=f(x0),A1=[f(x1)-f(x0)]/[x1-x0], A2={[f(x2)-f(x0)]/[x2-x0]-f(x1)-f(x0)]/[x1-x0]} / (x2-x1) |
3差商的定义
设已知函数f (x)在一系列互不相等的节点x0,x1,x2,......xn,(即在i≠j时,xi≠xj)上的函数值 f(xi) ,
f (x)在点xi , xj处的一阶差商为:
f (x)在点xi,xj,xk处的二阶差商为:
f(x)在点x0,x1,x2,......xk的k阶差商为:
规律总结:高阶差商是两个低一阶差商的差商。
利用差商的定义,可得Nn(x)的系数Aj :
从而可得牛顿插值多项式:
这样就实现了,每增加一个节点,多项式只增加一项,克服了拉格朗日插值多项式的缺点。
差商可以通过差商表计算。
4、牛顿插值多项式
了解了差商,我们就可以利用差商来表示牛顿插值多项式:
二、matlab程序
%% 牛顿插值 (创建函数脚本方可运行)
close
clc
clear
x=[2 3 5 6 9];
y=[4 8 12 15 23];
m=length(X);
c=cha(X,Y);
syms x
for i=1:m-1D1=x-X(1:i);D(i)=prod(D1);
endN=sym2poly(expand(sum(D.*c)+Y(1)))
x=X(1):0.1:X(end);
y=polyval(N,x);
plot(x,y)
hold on
plot(X,Y,'o')
function C=cha(X,Y)
% C存储差商结果
% X是横坐标m=length(X);
d=diff(Y)./diff(X); %一阶差商
C(1)=d(1); %取出第一个一阶差商做系数for i=2:m-1 %i阶差商 依次算出C(2)、C(3)...C(m-1)阶茶商 ,储存在数组C中X1=X(i+1:end); n=length(X1);X2=X(1:n);d=diff(d)./(X1-X2);C(i)=d(1);
end
end
MATLAB之牛顿插值法相关推荐
- 2021-01-07 matlab数值分析 插值法 拉格朗日插值法 牛顿插值法
matlab数值分析 插值法 1 拉格朗日插值法 function yh=lagrange(x,y,xh) n=length(x); m=length(xh); yh=zeros(1,m); for ...
- 牛顿法的matlab实现例题,【MATLAB|MATLAB牛顿插值法例题与程序Word版】
『易坊知识库摘要_MATLAB|MATLAB牛顿插值法例题与程序Word版』x12345678y22.523.324.421.7025.228.524.825.4二.数学原理假设有n+1个不同的节点及 ...
- 【数学建模笔记】【第三讲】拉格朗日插值法,牛顿插值法,分段三次埃尔米特插值法及其MATLAB实践
温馨提示:本文共有3748字,阅读并理解全文大概需要15-20分钟 插值算法 一.插值法的定义 1.插值函数一共有三种: 2.多项式插值法原理 3.分段插值法原理: 4.具体如何求插值函数呢? (1) ...
- 牛顿插值法 matlab m文件,牛顿插值法matlab程序
<牛顿插值法matlab程序>由会员分享,可在线阅读,更多相关<牛顿插值法matlab程序(3页珍藏版)>请在人人文库网上搜索. 1.计算方法数值实验报告班级090712学号0 ...
- matlab 牛顿向后差分,利用差分的牛顿插值法(Newton)
差分牛顿插值法要求是等距的. 先来看三个概念 差分与均差的关系如下: 牛顿(Newton)插值的基本公式为: 由于差分插值是等距的,所以可以设x=x0+nh 对于上式
- java 多项式拟合最多的项数_牛顿插值法、曲线拟合、多项式拟合
2020年10月4日研究了一下牛顿插值法,其用途是使用x.y两组数值,根据新的x值返回对应的y值,与TREND.FORECAST函数不同,这种方法可应对非线性数据.其作用类似于图表中的曲线拟合或LIN ...
- 艾特肯法方程解matlab程序,牛顿迭代法matlab代码
牛顿法 迭代公式: x(k1) xk [2 f (x(k) )]1f (x(k) ) Matlab 代码: function [x1,k] =newton(x1,eps) hs=inline('(x ...
- matlab用牛顿差值计算三次差值多项式,计算方法用Newton插值多项式求函数的近似值.docx...
计算方法用Newton插值多项式求函数的近似值 计算方法课程设计题 目: 用Newton插值多项式 处理磁化曲线学 院: 理学院班 级: 学 生 姓 名: 学 生 学 号: 指 导 教 师: 2017 ...
- 非线性方程组牛顿迭代法matlab,matlab实现牛顿迭代法求解非线性方程组
<matlab实现牛顿迭代法求解非线性方程组>由会员分享,可在线阅读,更多相关<matlab实现牛顿迭代法求解非线性方程组(5页珍藏版)>请在人人文库网上搜索. 1.matla ...
- 拉格朗日插值的优缺点_拉格朗日与牛顿插值法的比较
第 1 页 共 7 页 拉格朗日插值法与牛顿插值法的比较 一. 背景 在工程和科学研究中出现的函数是多种多样的.常常会遇到这样的情况:在某个实际 问题中,虽然可以断定所考虑的函数 ) ( x f 在区 ...
最新文章
- R语言rev函数对数据对象(向量、dataframe通过行或者列)反序实战
- python创建树结构、求深度_数据结构-树以及深度、广度优先遍历(递归和非递归,python实现)...
- 全网最深刻的理解音频转码swr_convert(2019/10/29已补充修正)
- Android6.0 源码修改之 仿IOS添加全屏可拖拽浮窗返回按钮...
- mac os x10.8下如何使用git与github
- 同字母异序词 python_49. 字母异位次分组(Python)
- Oracle 12c与GoldenGate 12c的一些问答
- vue自学入门-2(vue创建项目)
- 如何在Win7 x64上的配置32位的PostgreSQL ODBC数据源
- Ubuntu用Apache2快速搭建一个HTTP文件服务器
- 软件测试功底技术——编程语言
- 软件项目管理作业汇总
- 3. react脚手架
- HDU 5336 XYZ and Drops (模拟+搜索,详解)
- python乒乓球比赛规则介绍_乒乓球比赛的简要规则
- 【Fuzzy】不确定规划:模糊变量
- AE 动画的分层与组合
- 短信验证码总是发送失败是什么原因?
- 理解sparse coding
- 计算机如何显示e盘文档,我把电脑E盘里文件隐藏了,怎么弄可以显示出来!
热门文章
- win7 管理iphone日历_软媒时间3.08正式版:让Win7用上最美桌面日历
- 3.7V转5V电路图芯片,3.7V升压5V的升压芯片
- python三对角矩阵_用NumPy实现三对角矩阵算法(TDMA)
- 基于分形理论和空间技术的耕地景观变化和用地质量研究
- android wps页面设置背景图片,如何给手机版WPS的文档设置图片背景
- mysql处理微信表情
- 计算机仿真课程的心得体会,数学建模心得体会
- adams2020安装教程(附详细图文安装教程)
- ADAMS2016启动证书错误解决
- 移动 app 测试工具 bugtags