平面曲线曲率的计算-MATLAB

定义

  • 曲率:曲线上某个点的切线方向角对弧长的变化率,表明曲线在该点的弯曲程度。
  • 设有光滑曲线 C C C(即曲线 C C C 二阶可导),在曲线 C C C 上选定一点 M M M 作为度量的基点,点 M M M 对应于弧长 s s s 且切线方向角为 α \alpha α,曲线 C C C 上另一点 M ′ M' M 对应于弧 s + Δ s s+\Delta s s+Δs 且切线方向角为 α + Δ α \alpha+\Delta \alpha α+Δα。那么,弧 M M ′ ⌢ \overset{\frown}{MM'} MM 的长度为 ∣ Δ s ∣ |\Delta s| ∣Δs,从点 M M M M ′ M' M 切线转过的角度为 ∣ Δ α ∣ |\Delta\alpha| ∣Δα
  • 平均曲率:采用单位弧长上切线转过的角度来表达弧 M M ′ ⌢ \overset{\frown}{MM'} MM 的平均弯曲程度,称为弧 M M ′ ⌢ \overset{\frown}{MM'} MM 的平均曲率,即: K ‾ = ∣ Δ α ∣ ∣ Δ s ∣ \overline{K} = \frac{|\Delta\alpha|}{|\Delta s|} K=∣Δs∣Δα
  • 曲率:当 Δ s → 0 \Delta s\to 0 Δs0 时,即 M ′ → M M'\to M MM 时,平均曲率存在极限,称为曲线 C C C 在点 M M M 处的曲率,即: K = lim ⁡ Δ s → 0 ∣ Δ α ∣ ∣ Δ s ∣ = ∣ lim ⁡ Δ s → 0 Δ α Δ s ∣ K = \lim_{\Delta s\to 0}\frac{|\Delta\alpha|}{|\Delta s|} = |\lim_{\Delta s\to 0}\frac{\Delta\alpha}{\Delta s}| K=Δs0lim∣Δs∣Δα=Δs0limΔsΔα

定义公式

设光滑曲线 C C C 表示为 y = f ( x ) y = f(x) y=f(x),则根据上述定义,有曲率计算公式: K = y ¨ ( 1 + y ˙ 2 ) 3 2 K = \frac{\ddot{y}}{(1+\dot{y}^2)^\frac{3}{2}} K=(1+y˙2)23y¨ 推导过程请参考相关教材或文献。

差分公式

然而,对于参数函数 y = y ( t ) , x = x ( t ) y=y(t),x=x(t) y=y(t),x=x(t) 或者离散数据,无法直接采用上述定义公式,上述定义公式经推导得到差分计算公式: K = ∣ x ˙ y ¨ − x ¨ y ˙ ∣ [ x ˙ 2 + y ˙ 2 ] 3 2 K = \frac{|\dot{x}\ddot{y}-\ddot{x}\dot{y}|}{[\dot{x}^2+\dot{y}^2]^\frac{3}{2}} K=[x˙2+y˙2]23x˙y¨x¨y˙

MATLAB程序

%% 正弦函数
x = 0:0.01:2*pi;
y = sin(x);
figure(1);
plot(x,y);

%% 定义公式
j = abs(sin(x)) ./ ((1+cos(x).^2).^(3/2));
figure(2);
plot(x,j);

%% 差分公式
x1 = diff(x);	% 一阶导
x2 = diff(x1);	% 二阶导
y1 = diff(y);
y2 = diff(y1);
x2(length(x1)) = x2(end);	% 使数组维度一致
y2(length(y1)) = y2(end);
k = abs(x1.*y2-x2.*y1) ./ (x1.^2+y1.^2).^(3/2);
k(length(x)) = k(end);
figure(3);
plot(x,k);

运行结果如下:
正弦曲线

图1 正弦曲线

定义公式计算得曲率

图2 定义公式计算得曲率

差分公式计算得曲率

图3 差分公式计算得曲率
  • 9
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

研溪南

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值