MATLAB hermite 曲线

Posted Cmy_CTO

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB hermite 曲线相关的知识,希望对你有一定的参考价值。

Q:

matlab已知四点三次hermit多项式插值,给出任意的四个已知条件:P0、P1、DP0、DP1根据hermite多项式绘制一条3次hermite曲线。

hermite多项式:P(u)=P0(2u3-3u2+1)+P1(-2u3+3u2)+Dp0(u3-2u2+u)+Dp1(u3-u2)

A:

步骤 Step:

  1. 根据已知条件计算hermite多项式中的各项系数。
    Specially, 令P0、P1、DP0、DP1分别表示已知的四个条件,那么就可以按照以下公式计算出hermite多项式中的系数:
a = 2*(P0-P1) + DP0 + DP1, b = 3*(P1-P0) - 2*DP0 - DP1, c = DP0, d = P0
  1. 给定一个u值,对hermite多项式进行计算,得到对应的插值点的y值。

公式:

P(u)=au^3 + bu^2 + c*u + d
  1. 将得到的所有插值点按照顺序连接起来,形成一条3次hermite曲线。

MATLAB代码实现:

% 给定四个已知条件 
P0 = 0; P1 = 2; DP0 = 1; DP1 = 0.5;

% 计算hermite多项式中的系数 
a = 2*(P0-P1) + DP0 + DP1; b = 3*(P1-P0) - 2*DP0 - DP1; c = DP0; d = P0;

% 生成一系列u值 
u = linspace(0,1,100);

% 计算每个u值对应的插值点的y值 
y = au.^3 + bu.^2 + c*u + d;

% 绘制3次hermite曲线 
plot(u,y); xlabel('u'); ylabel('P(u)');

matlab中如何计算已知曲线的长度?

用matab的积分做。
由于这是曲线积分,根据大学中教材高等数学第二版第十一章的定义
>>
y
=
diff(0.2*cos(pi*x));
y
=
-(pi*sin(pi*x))/5
>>
quad(@(x)(-pi/5)*sin(pi*x),0,2)
ans
=
0
参考技术A 举个例子,就是分别计算没个线段的长度,然后再加起来:
x
=
[
0
1
2
];
y
=
[
0
0
1
];
len
=
sum(
sqrt(
diff(
x
).^2
+
diff(
y
).^2
)
)
计算结果:
len
=
2.4142

以上是关于MATLAB hermite 曲线的主要内容,如果未能解决你的问题,请参考以下文章

如何利用matlab实现多种插值

12月学习进度5/31——计算机图形学期末准备02规范化两点三次Hermite插值及MATLAB实现

matlab求曲线长度如何编程

matlab 二维数据点 光滑曲线

matlab 如何计算曲线长度

急急急!在matlab上,用24个点画了一条曲线图,不知道曲线方程,怎么能用matlab求出曲线长度?