插值应用案例1

简介: 插值应用案例1

案例1 一阶线性插值

待加工零件外形根据工艺要求在一组数据(x,y)给定(如下表),用程控铣床加工时每一刀只能沿着x方向或y方向走非常小的一步,需要从已知数据得到加工步长很小的(x,y)的坐标。

下表中所给x,y数据位于机翼断面的下轮廓线上,假设需要得到x坐标改变值为0.1的y坐标,试完成加工所需数据,画出曲线,并求出x=0处曲线斜率和13≤x≤15范围内的y的最小值。

要求: (1)用分段线性插值法;        (2)三次样条插值法.

                                                                        插入点数据表

x

0

3

5

7

9

11

12

13

14

15

y

0

1.2

1.7

2.0

2.1

2.0

1.8

1.2

1.0

1.6

【符号设置】

  • x0,y0 插入节点,即表1中已知数据;
  • 待插数据,x=0:0.1:15;
  • y     待插数据对应的纵坐标值;
  • k0    表示x=0处的曲线斜率(即导数);
  • Ymin   表示13≤x≤15范围内的y的最小值。

【数学模型1】线性插值公式

在x=0出的斜率的计算公式为

【模型1求解】

x0=[0 3 5 7 9 11 12 13 14 15];
y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6];
x=0:0.1:15;
y=interp1(x0,y0,x);
plot(x0,y0,'*',x,y,'+-')
dy=diff(y);
dx=diff(x);
dy_dx=dy./dx;
k0=dy_dx(1);
x1=x(x<=15&x>=13);
y1=y(x<=15&x>=13);
Ymin=min(y1);
yindex=find(y1==Ymin);
Xmin=x1(yindex);
[Xmin,Ymin,k0]

注:`dy = diff(y)` 是一个求解差分的函数,用于计算给定向量 y 的差分。

差分是指计算向量中相邻元素之间的差异。通过对 y 中的元素进行逐个相减,可以得到一个新的向量 dy,其长度比 y 少 1。换句话说,dy 中的每个元素都是 y 中相邻元素的差值。

差分常用于处理时间序列数据或离散数据,可以提供关于数据趋势、变化率和离散程度等方面的信息。通过计算差分,我们可以获得连续数据点之间的变化量,从而进行进一步的数据分析和处理。

根据计算,x=0处的斜率为k0=0.4;

当13<x<15时,y的最小值是Ymin=1,此时对应的横坐标为Xmin=14.

【数学模型2及其求解】三次样条插值

x0=[0 3 5 7 9 11 12 13 14 15];
y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6];
x=0:0.1:15;
y1=interp1(x0,y0,x,'spline');
pp1=csape(x0,y0);
y2=fnval(pp1,x);
pp2=csape(x0,y0,'second');
y3=fnval(pp2,x);
subplot(2,1,1);
plot(x,y1,'*-');
title('spline');
subplot(2,1,2);
plot(x,y3,'+-');
title('second');
dy=diff(y1);
dx=diff(x);
dy_dx=dy./dx;
k0=dy_dx(1);
yf=y1(131:end);
xf=x(131:end);
Ymin=min(yf);
Xmin=xf(yf==Ymin);
[Xmin,Ymin,k0]

注:`y1 = interp1(x0, y0, x, 'spline')` 和 `pp1 = csape(x0, y0)` 都是用于进行数据插值的函数,但是它们使用不同的插值方法和返回不同的结果。

`interp1` 函数使用的是插值方法中的样条插值,通过在已知数据点之间构建光滑的曲线来进行插值。在代码中,`'spline'` 是插值方法的参数,表示使用三次样条曲线进行插值。`interp1` 函数根据已知数据点 `(x0, y0)` 和待插值的自变量 `x`,计算对应的插值结果 `y1`。

`csape` 函数则使用的是样条插值的另一种形式,称为分段样条插值。它通过构建一组分段的三次多项式曲线来进行插值。在代码中,`csape` 函数的返回值 `pp1` 是一个样条插值对象,它包含了构建的分段样条曲线的相关信息。

相比较而言,`interp1` 函数使用起来更加简单,直接给出了插值结果。而 `csape` 函数则返回一个对象,需要进一步使用其他函数或方法来进行插值计算或求导等操作。使用 `csape` 函数可以更加灵活地控制插值过程,例如可以进行边界条件的设定或者选择不同的插值方法等。

根据计算,x=0处的斜率为k0=0.4986;

当13<=x<=15时,y的最小值为Ymin=0.9828,对应的横坐标Xmin=13.8.

案例2 利用插值法求积分

已知速度曲线v(t)上的四个点数据,如下表,用三次样条插值求位移S(t)。

t

0.15

0.16

0.17

0.18

V(t)

3.5

1.5

2.5

2.8

【符号设置】

  • T   时间;
  • V   速度;
  • S   位移(路程);

【数学模型】

其中,v(t)函数并不知道,只能靠四个节点插值生成。

【模型求解】

(1)利用三次样条插值,得到速度函数v(t)的表达式。

(2)求位移

=0.068625

 


相关文章
|
2月前
|
编解码
超分辨率方法的比较——插值、重构、学习
超分辨率方法的比较——插值、重构、学习
25 0
超分辨率方法的比较——插值、重构、学习
|
3月前
|
算法
MATLAB | 插值算法 | 二维interp2插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 二维interp2插值法 | 附数据和出图代码 | 直接上手
92 0
|
3月前
|
算法
MATLAB | 插值算法 | 二维griddata插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 二维griddata插值法 | 附数据和出图代码 | 直接上手
44 0
|
3月前
|
算法
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 一维interpl插值法 | 附数据和出图代码 | 直接上手
45 0
|
3月前
|
算法
MATLAB | 插值算法 | 一维interpn插值法 | 附数据和出图代码 | 直接上手
MATLAB | 插值算法 | 一维interpn插值法 | 附数据和出图代码 | 直接上手
34 0
|
5月前
插值应用案例2
插值应用案例2
|
5月前
|
算法
插值与拟合的区别以及如何选取
插值与拟合的区别以及如何选取
122 0
【MATLAB第24期】源码分享| 基于MATLAB的五种插值方法合集(线性、三次、三次样条、最邻近、分段三次Hermite),解决多变量样本空值插值,以及零值插值
【MATLAB第24期】源码分享| 基于MATLAB的五种插值方法合集(线性、三次、三次样条、最邻近、分段三次Hermite),解决多变量样本空值插值,以及零值插值
|
11月前
几种简单的插值方法与实例
插值方法及MATLAB实例解析
|
机器学习/深度学习 算法 计算机视觉
基于python实现最近邻插值双线性插值径向基函数插值(代码实现详细教程)
基于python实现最近邻插值双线性插值径向基函数插值(代码实现详细教程)
337 0
基于python实现最近邻插值双线性插值径向基函数插值(代码实现详细教程)