MATLAB之多项式插值

一、算法原理

1、插值问题定义

当精确函数 y = f(x) 非常复杂或未知时,在区间【a,b】上一系列节点x0,x1,x2,......xn处测得函数值f(x0)、f(x1)、f(x2)......f(xn);

由此构造一个简单的简单易算的近似函数g(x)≈f(x),满足条件g(xi)=f(xi) (i=0,1,2...,n)。这个问题就被称为插值问题。

其中,g(x)被称为插值函数;

x0,x1,x2,......xn位插值节点;

g(x)≈f(x)为插值条件;

区间【a,b】为插值区间;

2、插值函数分类

插值函数有多项式插值、拉格朗日插值、牛顿插值、埃米特插值,最小二乘法插值等,这里我们来介绍多项式插值。其他的插值方法请关注博主的其他文章。

3、多项式插值原理

函数解析式未知,但已知一些列点的函数值。如下表所示,对于n+1个点,我们可以找到一个次数不超过n的插值多项式。

,称f为x的n次插值多项式。

x0 x1 x2 x3 ...... xn
f(x0) f(x1) f(x2) f(x3) ...... f(xn)

将表中的n+1个点带入,即可得到n+1个插值多项式,

an*X0^n+a(n-1)*X0^(n-1)+....+a1*X0+a0=f(x1);   
an*X1^n+a(n-1)*X1^(n-1)+....+a1*X1+a0=f(x1);   
......

an*Xn^n+a(n-1)*Xn^(n-1)+....+a1*Xn+a0=f(x1);

在该插值多项式中x,f(x)已知,未知系数为a0 a1 a2...an;

将其写成矩阵形式:

x组成的行列式为范德蒙德行列式 =可写成vander(x0 x1 ... x(n-1)  xn) ,系数an...a1 a0 为列矩阵  ,f(x) 为列矩阵

注:因为x0....xn互不相同,多以该方程组的系数行列式不为零,方程有唯一解。

二、matlab代码

clc
clear
close
x=[1 2 3 4 5 6];   %一系列插值点
y=[2 5 6 9 14 26];
plot(x,y,'o');  %绘制出散点图
hold on
A=vander(x); %利用范德蒙矩阵生成插值多项式系数矩阵
%[x1^n x1^(n-1)......x1 1     [an
%  x2^n x2^(n-1)......x2 1     a(n-1)
%   ......                  *  ......    =y
%   ......                     ......
%  xk^n xk^(n-1)......xk 1]    a0]
y=y';
B=[A,y]; %生成增广矩阵
C=rref(B);%  化最简型,解方程组
D=C(:,end);
fprintf('\n  这是一个%d阶的多项式,从高阶到低阶排列!\n',length(y)-1);
x=x(1):0.01:x(end); %绘制拟合曲线
y=polyval(D,x)% 写出拟合曲线方程
plot(x,y) %绘图

三、matlab自带插值函数

多项式插值函数 polyfit

P=polyfit(x,y,n) %n为拟合阶数,P为多项式的系数,x和y为原始数据点。

[p,S,mu] = polyfit(x,y,n)

S是规模为1×1的结构数组,包括系数矩阵的QR分解的上三角阵,自由度,拟合误差平方和的算术平方根。

mu为居中和缩放参数,mu (1)是平均值,mu (2)是标准差。  这种定心和缩放变换改善了多项式和拟合算法的数值特性。

matlab代码

%% 多项式插值 polyfit   polyval
close
clc
clear
x=linspace(0,2*pi,10); %取y=sinx上的十个数据点
y=sin(x);
P=polyfit(x,y,7) %7为拟合阶数,p为多项式的系数
poly2str(P,'x'); %组装成插值多项式
x1=linspace(0,2.5*pi,100);
y1=polyval(P,x1);%用x1代替插值多项式中的x
plot(x,y,'o',x1,y1)x=linspace(1000,2000,10);  %初始10个数据点
y=1e5*[0.02 0.04 0.05 0.055 0.5 0.6 0.9 1.52 2.3 3.6];
plot(x,y,'o')%数据点绘图
hold on
x1=linspace(1000,2000,100);
[P,~,mu]=polyfit(x,y,6); %mu为居中和缩放参数 具体查看函数定义
y1=polyval(P,x1,[],mu);
plot(x1,y1)

MATLAB之多项式插值相关推荐

  1. 吉布斯现象与插值优化(上)Matlab实现多项式插值

    前言 傅里叶变换是贯穿一系列课程的应用,从起初的不知其所以然到学习电路理论时的轮廓逐渐清晰. 在电路理论的结课复习阶段,我在图书馆找到国外教材翻阅,关注到行文中提到的吉布斯现象(Gibbs Pheno ...

  2. MATLAB运用——多项式插值

    文章目录 实验1-误差传播与算法稳定性 问题提出 实验内容 实验要求 程序 运行程序 理论 实验2-多项式插值的震荡和样条插值的收敛 问题提出 实验内容 实验要求 程序 运行程序 总结 实验1-误差传 ...

  3. matlab 平滑曲线连接_平滑轨迹插值方法之多项式插值(附代码)

    前言 今天我们来聊聊轨迹插值,在机器人的运动规划和控制领域,参考轨迹的生成是一个历史悠久的问题,已经发展出了一系列的方法.今天我们就来聊一聊轨迹插值领域中最常见的轨迹插值方法:多项式插值. 说明:本文 ...

  4. matlab全域基函数,多项式函数插值:全域多项式插值(一)单项式基插值、拉格朗日插值、牛顿插值 [MATLAB]...

    全域多项式插值指的是在整个插值区域内形成一个多项式函数作为插值函数.关于多项式插值的基本知识,见"计算基本理论". 在单项式基插值和牛顿插值形成的表达式中,求该表达式在某一点处的值 ...

  5. 解决龙格现象matlab,matlab实现Lagrange多项式插值观察龙格现象

    Matlab进行Lagrange多项式插值 拉格朗日插值法对函数y=1./(1+25*x.^2)在区间[-1,1]进行5次.10次.15次插值观察龙格现象 主程序 1.拉格朗日 function [c ...

  6. 基于神经网络多项式插值的图像超分辨重构研究-附Matlab代码

    ⭕⭕ 目 录 ⭕⭕ ✳️ 一.引言 ✳️ 二.基于单帧图像的超分辨率重构技术 ✳️ 2.1 最近邻域插值法 ✳️ 2.2 双线性插值法 ✳️ 2.3 双三次插值法(Keys'插值) ✳️ 三.神经网络 ...

  7. matlab对多项式求导,matlab中多项式求导

    1 0.5 0 -0.5 -1 -1.5 -2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 4.对比用多项式函数的 polyder 函数及符号函数中的 diff 函数,求导 x2+2x ...

  8. MATLAB数据分析(插值运算和曲线拟合)

    MATLAB数据分析(插值运算和曲线拟合) MATLAB数据分析 在数学研究和工程应用中,我们常常需要对某些环节进行反复的测验或测试,以获取更多的数据支持最优决策,但是由于环境条件的限制,我们往往只能 ...

  9. matlab二元多项式求值,matlab多项式代入求值

    Matlab 多项式运算与方程求根 ? Matlab多项式运算无论是在线性代数中,还是信号处理.自动控制等理论 中,多项式运算都有着十分重要的地位,因此,MATLAB 为多项式的操作提供了相应的函数库 ...

最新文章

  1. RH5.4下samba共享配置实例(3)
  2. 公有链和联盟链的本质不同
  3. 郁闷的时候看看这头驴,改变你的心态!
  4. koa mysql模块_koa 项目中引入 mysql
  5. 前端学习(2189):Promise的介绍和基本使用二
  6. galaxy s8 android pc,手机秒变PC!三星Galaxy S8桌面模式曝光
  7. vs2012里用easyUI,显示不正常
  8. 窗体的布局 1124
  9. [ Typescript 手册] JavaScript `Date` 在 Typescript 中的接口
  10. VISUAL STUDIO 与 MATLAB实现混合编程
  11. 极域电子教室忘记密码或无法卸载怎么办
  12. 如何解决苹果账号续费时支付失败的问题
  13. Phoenix升级:Error: Cluster is being concurrently upgraded from 4.7.x to 4.8.x.
  14. (转载)程序员应该访问的最佳网站中文版
  15. 【Python实战项目】做一个 刮刮乐 案例,一不小心....着实惊艳到我了。
  16. Fractional step and sor multigrid conjugate gradient method
  17. [深入研究4G/5G/6G专题-40]: URLLC-11-《3GPP URLLC相关协议、规范、技术原理深度解读》-5-5G Qos原理与架构: 切片、PDU会话、QosFlow、5QI、DRB
  18. Python 黑马程序员 笔记
  19. c语言 乘法运算符,C 乘法运算符
  20. 微信关键字自动回复功能实现

热门文章

  1. EXCEL图表:使用excel画坐标轴图
  2. win10计算机打开一直读进度条,win10开机读条后黑屏怎么办_win10开机读条之后黑屏修复方法-win7之家...
  3. ambari_HDP之mapreduce参数调优
  4. RIP动态路由配置 命令| 配置题
  5. Vue网易云播放器开发
  6. java里SQL insert操作的语法_Java含个人总结语法:JDBC,学生表,实体类,集合,增删改查,注入,预处理【诗书画唱】...
  7. APL开发日志--2012-12-03
  8. 深度清理win10系统C盘文件(二)
  9. go解析yaml文件示例
  10. webRTC服务器搭建(基于Janus)与Demo运行