您的位置首页生活百科

【Mathematica】绘制曲线曲率圆圆心的轨迹

【Mathematica】绘制曲线曲率圆圆心的轨迹

的有关信息介绍如下:

【Mathematica】绘制曲线曲率圆圆心的轨迹

本文,用Mathematica来挥之给定了参数方程的平面曲线,曲率圆圆心的轨迹。

并以此来重温微分几何的一些知识。

尤其是,前段时间,有网友提问,怎么求曲线的法向量。本文一起解答。

假设曲线的参数方程是r[t],先求出曲线的【单位切向量】:

qie[t_] := Evaluate[D[r[t], t]/Sqrt[D[r[t], t].D[r[t], t]] // FullSimplify]

对参数方程求导,得到切向量,再归一化处理,才是单位切向量。

再求曲线的单位法向量:

对【单位切向量】求导,得到法向量;

对法向量进行归一化处理,得到单位法向量。

dr[t_] := Evaluate[D[qie[t], t]]

fa[t_] := Evaluate[dr[t]/Sqrt[dr[t].dr[t]] // FullSimplify]

注意,一定是对【单位切向量】求导才能得到法向量,而如果直接对r[t]的导数求导,得到的一般不是法向量。

曲率半径是曲率的倒数:

qulvr[t_] := 1/ArcCurvature[r[t], t]

曲率中心,就是在法向量的方向上:

qulvzx[t_] := Evaluate[r[t] + qulvr[t]*fa[t]]

再把曲率圆画出来:

Circle[qulvzx[tt], qulvr[t] /. t -> tt]

这里要遵守一个求导原则:先求导,在赋值。

否则机器会报错。

然后把曲率圆圆心轨迹画出来。

这个轨迹曲线的参数方程,恰恰就是qulvzx[t]。

ParametricPlot[qulvzx[t], {t, 0, 2 Pi}, PlotStyle -> RGBColor[1, 0, 1]]

而原曲线的参数方程是r[t_] := (Sin[2 t]) {Cos[t], Sin[t]}。

更换原曲线的参数方程:

r[t_] := (Sin[3 t]) {Cos[t], Sin[t]}

这是一条三叶玫瑰线。

三叶玫瑰线的极坐标方程,加上一个正数,会“膨胀”起来:

r[t_] := (1/3 *(2 + Sin[3 t])) {Cos[t], Sin[t]}

当曲率中心完全位于闭曲线内部,且曲线是简单曲线,那么这条曲线一定是凸曲线:

r[t_] := (1/21 (20 + Sin[3 t])) {Cos[t], Sin[t]}

再试试它:

(1/51 (50 + Sin[5 t])) {Cos[t], Sin[t]}

如果一条平面闭曲线,本身不是简单曲线,就一定不是凸曲线。

(1/2 (1 + Sin[2 t])) {Cos[t], Sin[t]}