牛顿插值与正交多项式曲线拟合的Matlab实现
一、相关知识提要
1.Newton插值法
2. 正交多项式的方法作曲线拟合
二、代码实现
1.Newton插值法
function [] = Newton_Chazhi(x,X,Fx)
%牛顿插值求解近似值
% x:待求值自变量 X:所有节点构成构成的向量 Fx:节点对应函数值构成的向量n=length(X); %获取输入节点个数A=zeros(n,n-1);
M=[Fx,A]; %构建差商表,其中第一列为自变量对应函数值
N=zeros(n,2); %初始化近似值表,第二列为相应精度
for i=1:n-1 %求差商表for j=1:n-iM(j+i,i+1)=(M(j+i,i)-M(j+i-1,i))/(X(j+i,1)-X(j,1));end
end
M
N(1,1)=M(1,1);
for k=1:n-1paiX=1;for l=1:kpaiX=(x-X(l))*paiX;%计算连乘enddeltaN=M(k+1,k+1)*paiX;N(k+1,2)=abs(deltaN);N(k+1,1)=N(k,1)+deltaN;
end
fprintf('近似值:%.8f 精度:\\ \n',N(1,1))
for i=2:nfprintf('近似值:%.8f 精度:%.8f\n',N(i,1),N(i,2))
end
2. 正交多项式的方法作曲线拟合
在这里我们采用的是方法二作为的算法
function [] = ZJNH(X,F,n)
% 用正交多项式做曲线拟合
% X:自变量数组 F:函数值数组 n:拟合次数
syms x %声明x为自变量
m=length(X); % 获取输入数据组数
P=cell(n+1,1);P{1,1}=0;P{2,1}=1; %初始化Pk(x)
a=zeros(1,n+1); %初始化系数a*
for i=1:n+1a_u=0;a_l=0;b_l=0;A_u=0;for j=1:mx=X(j,1);a_u=a_u+X(j,1)*subs(P{i+1,1})*subs(P{i+1,1}); %计算Alpha的分子a_l=a_l+subs(P{i+1,1})*subs(P{i+1,1}); %计算Alpha的分母A_u=A_u+F(j,1)*subs(P{i+1,1}); %计算系数a*的分子b_l=b_l+subs(P{i,1})*subs(P{i,1}); %计算Beta的分母endAlpha=a_u/a_l;a(1,i)=vpa(A_u/a_l);if i==1Beta=0;elseBeta=a_l/b_l;endx='x';P{i+2,1}=(x-Alpha)*P{i+1,1}-Beta*P{i,1}; %计算P的表达式并储存在cell里
end
y=a(1,1)*P{2,1};
for i=1:ny=y+a(1,i+1)*P{i+2,1}; % 计算拟合式的每一次digits(6) % 控制6位精度y=vpa(expand(y)); % 展开表达式并以小数显示fprintf("%d次拟合:%s\n",i,y)
end
三、运行结果
传入题设数据,结果如图所示
牛顿插值与正交多项式曲线拟合的Matlab实现相关推荐
- MATLAB数据分析(插值运算和曲线拟合)
MATLAB数据分析(插值运算和曲线拟合) MATLAB数据分析 在数学研究和工程应用中,我们常常需要对某些环节进行反复的测验或测试,以获取更多的数据支持最优决策,但是由于环境条件的限制,我们往往只能 ...
- matlab如何做正交多项式曲线拟合,matlab正交多项式拟合
在实验模态分析中用 Matlab 实现离散化正交多项式算法 [C], 马永列; 陈章 位; 胡海清 4.在实验模态分析中用 Matlab 实现离散化正交多项式算法 [C], 马永列...... 变换后 ...
- matlab全域基函数,多项式函数插值:全域多项式插值(一)单项式基插值、拉格朗日插值、牛顿插值 [MATLAB]...
全域多项式插值指的是在整个插值区域内形成一个多项式函数作为插值函数.关于多项式插值的基本知识,见"计算基本理论". 在单项式基插值和牛顿插值形成的表达式中,求该表达式在某一点处的值 ...
- matlab差商chaS,牛顿插值MATLAB算法.doc
MATLAB程序设计期中作业 --编程实现牛顿插值 成员:刘 川(P091712797) 签名_____ 汤 意(P091712817) 签名_____ 王功贺(P091712799) 签名_____ ...
- Matlab实现线性插值、抛物插值、牛顿插值、拉格朗日插值、分段抛物插值、分段线性插值
目录 线性插值 原理 流程图 代码 抛物插值 原理 流程图 代码 拉格朗日插值 代码 牛顿插值 原理 代码 分段线性插值 代码 线性插值 原理 流程图 单个点的线性插值代码 X=[0.2 0.4]; ...
- 正交多项式曲线拟合(MATLAB代码)
文章目录 一. 正交多项式曲线拟合 1.曲线不经过起点与终点 2.曲线经过起点与终点 二.参考文献 一. 正交多项式曲线拟合 1.曲线不经过起点与终点 %{Function: calculate_or ...
- Hermite插值是牛顿插值的极限情形
Hermite插值可以看作牛顿插值的极限状况.为什么可以这么说呢?我们来看一个实例: 构造一个三次多项式 $p_3$ 使得 $p_3(0)=0$,$p_3(1)=1,p_3'(0)=1,p_3'(1) ...
- 插值问题(拉格朗日插值、牛顿插值)
agui_lagrange.m: function f=agui_lagrange(x0,y0,x) % x0为节点向量,y0为节点上的函数值,x为插值点,f为返回插值 n=length(x0);m= ...
- 拉格朗日插值和牛顿插值的龙格现象
文章目录 一.实验目的 二.实验设备信息 三.实验内容 (一)拉格朗日插值多项式 (二)牛顿插值多项式 四.实验步骤 (一)拉格朗日插值函数实现 (二)牛顿插值函数实现 (三)观察拉格朗日插值和牛顿插 ...
最新文章
- Thymeleaf语法变量
- CG CTF WEB md5 collision
- HTML5 — 让拖放变的流行起来
- 学习《apache源代码全景分析》之摘录
- linux运维、架构之路-jumpserver
- c语言备忘录算法矩阵链乘,矩阵链乘法(备忘录法)
- Qt工作笔记-QMap查找时要注意的问题(使用contains)
- 阿里云服务器18个数据中心测试IP地址以及测试方法
- 外虚内实是什么意思_取名|为什么00后那么多梓涵?
- SpringCloudSpringBootmybatis分布式微服务云架构-hystrix参数详解
- 采用Visual Stuidio 2010 创建网站栏
- 利用ComplexHeatmap绘制热图(一)
- 机器人收集 + Keypose 算法:准确估计透明物体的 3D 姿态
- linux脚本自动 输入命令,Linux脚本自动输入密码
- 热释电红外传感器电路
- python怎么搭建网站_如何用Python搭建一个网站?
- 悉尼大学INFO1112Assignment1课业解析
- C# 第1次实验报告:熟悉Visual Studio环境
- win7下批处理bat文件:切换网络设置
- php 无限子站cms,PHP整理CMS无限层级目录(毗邻目录模式)