hermite插值法 matlab,分段三次Hermite插值Matlab实现
function [m_matrix]=hermite(x,y,y0,yn,x_value)
%% 输入值分配,x_input,y_input均为数组,y_0,y_n为x_0,x_n分别对应的一阶导数值
x_input = x;
y_input = y;
y_0 = y0;
y_n = yn;
%%
[~,number] = size(x_input); %获取输入x_input的大小1×number
delta_h = zeros(1,number-1); %给delta_h分配数组大小1×(number-1),并全部初始化为0
delta_f = zeros(1,number-1); %给delta_f分配数组大小1×(number-1),并全部初始化为0
lambda_ = zeros(1,number-2); %给lambda_分配数组大小1×(number-2),并全部初始化为0
miu = zeros(1,number-2); %给miu_分配数组大小1×(number-2),并全部初始化为0
e = zeros(1,number-2); %给e分配数组大小1×(number-2),并全部初始化为0
% 计算delta_h、delta_f的值
for i = 1:(number-1)
delta_h(i) = x_input(i+1) - x_input(i);
delta_f(i) = (y_input(i+1) - y_input(i))/ delta_h(i);
end
%%计算lambda,miu,e
for i=1:number-2
lambda_(1,i) = delta_h(1,i+1) / (delta_h(1,i+1) + delta_h(1,i));
miu(1,i) = 1 - lambda_(1,i);
e(1,i) = 3*(lambda_(1,i)*delta_f(1,i) + miu(1,i)*delta_f(1,i+1));
end
A = zeros(number-2,number-2); %初始化系数矩阵A,(n-2)*(n-2)
B = zeros(number-2,1); %初始化系数矩阵B,(n-2)*1
%当i=1时
A(1,1) = 2;
A(1,2) = miu(1,1);
B(1,1) = e(1,1) - lambda_(1,1) * y_0;
%当i=2:n-2时
for i = 2:number-3
B(i,1) = e(1,i);
A(i,i-1) = lambda_(1,i);
A(i,i) = 2;
A(i,i+1) = miu(1,i);
end
%当i=n-1时
A(number-2,number-3) = lambda_(1,number-2);
A(number-2,number-2) = 2;
B(number-2,1) = e(1,number-2) - miu(1,number-2)*y_n;
%% 计算A的逆,A*B
m_matrix = A\B;
m = zeros(1,number);
m(1,1) = y_0;
m(1,number) = y_n;
for i = 2:number-1
m(1,i) = m_matrix(i-1,1);
end
for i =1:number-1
% 获取相邻两点间的插值函数
x_ = linspace(x_input(1,i),x_input(1,i+1));
s1 = y_input(1,i).*((x_-x_input(1,i+1)).^2).*(delta_h(1,i) + 2.*(x_ - x_input(1,i)))./(delta_h(1,i).^3);
s2 = y_input(1,i+1).*((x_-x_input(1,i)).^2).*(delta_h(1,i) + 2.*(x_input(1,i+1) - x_))./(delta_h(1,i).^3);
s3 = m(1,i).*((x_ - x_input(1,i+1)).^2).*(x_ - x_input(1,i))./(delta_h(1,i).^2);
s4 = m(1,i+1).*((x_ - x_input(1,i)).^2).*(x_ - x_input(1,i+1))./(delta_h(1,i).^2);
s = s1 + s2 + s3 +s4;
% 判断输入的x属于哪个插值区间,满足则计算对应的f(x)的值
if x_value>x_input(1,i)&&x_value
验证数据:
已知数据
x
0
1
2
3
4
5
6
7
8
9
10
y
2.51
3.30
4.04
4.70
5.22
5.54
5.78
5.40
5.57
5.70
5.80
边界条件为y'0 = 0.8,y'n = 0.2.
测试结果:
hermite插值法 matlab,分段三次Hermite插值Matlab实现相关推荐
- 机器人路径规划之分段三次Hermite插值(PCHIP) [包括Python和Matlab代码实现]
前言 在机器人的路径规划中针对离散采样点做插值计算生成平滑的曲线轨迹也是挺重要的一部分,本文主要介绍一下目前使用较多也是个人觉得挺好用的一个插值方法--分段三次 Hermite 插值(PCHIP),并 ...
- 数学建模准备 插值(拉格朗日多项式插值,牛顿多项式插值,分段线性插值,分段三次样条插值,分段三次Hermite插值)
文章目录 摘要(必看) 0 基础概念 什么是插值 插值用途 什么是拟合 插值和拟合的相同点 插值和拟合的不同点 1 常用的基本插值方法 1.1 多项式插值法 1.1.1 拉格朗日多项式插值法 多项式插 ...
- 【数学与算法】【分段三次Hermite插值】和【分段三次样条插值】
光滑曲线在数学上的定义是什么?? 原文链接:光滑曲线在数学上的定义是什么? 回答1: 定义:切线随切点的移动而连续转动. 若函数f(x)f(x)f(x)在区间(a,b)(a,b)(a,b)内具有一阶连 ...
- 2021-07-21 分段三次Hermite插值及其与三次样条的比较
Numpy数组自身加和与乘积运算 http://www.weixueyuan.net/a/794.html python-scipy -hermite插值,分段三次Hermite插值 import n ...
- 【数学建模笔记】【第三讲】拉格朗日插值法,牛顿插值法,分段三次埃尔米特插值法及其MATLAB实践
温馨提示:本文共有3748字,阅读并理解全文大概需要15-20分钟 插值算法 一.插值法的定义 1.插值函数一共有三种: 2.多项式插值法原理 3.分段插值法原理: 4.具体如何求插值函数呢? (1) ...
- 分段三次埃尔米特插值
引入: Hermite插值定义:对于一个n+1个节点的插值问题,要求在给定的节点处,插值多项式的函数值与节点的函数值相等.同时插值多项式的一阶甚至到指定高阶的导数值,也与该节点相应阶导数值相同.这样做 ...
- 【matlab】三次埃尔米特插值与三次样条插值的实际应用代码
要求:完成下列这些数据的插值,并将结果保存到一个EXCEL表格中.要求至少选取两种插值方法,并对1号池中的这些指标做出插值后图像(显示在同一个图像中) Z.mat load Z.mat x=Z(1,: ...
- matlab样条插值如何用,三次样条插值matlab实现
%三次样条差值-matlab通用程序 - zhangxiaolu2015的专栏 - CSDN博客 https://blog.csdn.net/zha %[图文]三次样条插值算法详解_百度文库 http ...
- 数学建模——插值算法(分段三次埃尔米特插值、三次样条插值)思想及Matlab实现
数模比赛中,常常需要根据已知的函数点进行数据.模型的处理和 分析,而有时候现有的数据是极少的,不足以支撑分析的进行,这时就需要使用一些数学的方法,"模拟产生"一些新的但又比较靠谱的 ...
- MATLAB分段函数没有横线,关于matlab分段函数如何绘图问题
例1 1.不分段的我会,如z=x^2+y^2 t=-5:0.5:5;[x,y]=meshgrid(t);z=x.^2+y.^2;mesh(x,y,z) 2.分段的 比如:-5 0 如下: %下面是MA ...
最新文章
- H3C无线 AC网关式部署无线开局(WEB版)
- mysql od函数_Mysql数学函数不求人
- java同步异步调用_详解java 三种调用机制(同步、回调、异步)
- Android Binder ProcessState IPCThreadState相关介绍
- 升级ASP.Net Core项目
- 理想汽车市值逼近蔚来,王兴曾多次在饭否为其站台
- Fortinet 防火墙受高危漏洞影响,可遭远程攻击
- 视频教程-CCNA趣味实战语音视频课程--企业VoIP组网实验-思科认证
- 设计模式之抽象工厂模式以及与工厂模式区别
- 在shell中向应用程序的socket发送信息
- html给图片添加边框
- 英语笔记1.2.2022
- android 微博 4.1sdk,android使用新浪微博最新SDK4.1进行第三方授权登录
- 锻造宝剑!如何用一款手机打造一个移动渗透工具箱??
- 基于java的教学管理系统设计(含源文件)
- OCX控件的问题以及解决方法
- Apache Druid LoadData 任意文件读取漏洞
- c语言程序设计杨毅版,C语言程序设计
- PyCharm配置解释器
- 编程的未来 - 还有未来么?
热门文章
- 中兴JAVA编程题_最新中兴Java语言笔试真题及答案
- node.js安装和卸载问题could not access network location *\Program...
- 标段模板、审批流程模板
- newifid1网页服务器,newifi d1刷老毛子固件测试
- 新路由3鸡血版固件_NEWIFI3老毛子鸡血驱动版固件
- 用计算机算出手机机主的名字,号码归属地查询及姓名?电话号码查询机主姓名?输入手机号知道机主?手机号码归属地查询姓名...
- STM32笔记 (十)定时器(基本定时器)利用基本定时器实现毫秒延时
- C++制作鼠标连点器
- CBCGPToolBarImages和CImageList创建与使用
- 免费JS富文本编辑器 总有一款会适合你