平面曲线曲率的计算-MATLAB
·
定义
- 曲率:曲线上某个点的切线方向角对弧长的变化率,表明曲线在该点的弯曲程度。
- 设有光滑曲线 CCC(即曲线 CCC 二阶可导),在曲线 CCC 上选定一点 MMM 作为度量的基点,点 MMM 对应于弧长 sss 且切线方向角为 α\alphaα,曲线 CCC 上另一点 M′M'M′ 对应于弧 s+Δss+\Delta ss+Δs 且切线方向角为 α+Δα\alpha+\Delta \alphaα+Δα。那么,弧 MM′⌢\overset{\frown}{MM'}MM′⌢ 的长度为 ∣Δs∣|\Delta s|∣Δs∣,从点 MMM 到 M′M'M′ 切线转过的角度为 ∣Δα∣|\Delta\alpha|∣Δα∣。
- 平均曲率:采用单位弧长上切线转过的角度来表达弧 MM′⌢\overset{\frown}{MM'}MM′⌢ 的平均弯曲程度,称为弧 MM′⌢\overset{\frown}{MM'}MM′⌢ 的平均曲率,即:K‾=∣Δα∣∣Δs∣\overline{K} = \frac{|\Delta\alpha|}{|\Delta s|}K=∣Δs∣∣Δα∣
- 曲率:当 Δs→0\Delta s\to 0Δs→0 时,即 M′→MM'\to MM′→M 时,平均曲率存在极限,称为曲线 CCC 在点 MMM 处的曲率,即: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=Δs→0lim∣Δs∣∣Δα∣=∣Δs→0limΔsΔα∣
定义公式
设光滑曲线 CCC 表示为 y=f(x)y = f(x)y=f(x),则根据上述定义,有曲率计算公式:K=y¨(1+y˙2)32K = \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]32K = \frac{|\dot{x}\ddot{y}-\ddot{x}\dot{y}|}{[\dot{x}^2+\dot{y}^2]^\frac{3}{2}}K=[x˙2+y˙2]23∣x˙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);
运行结果如下:



DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)