多语言展示
当前在线:646今日阅读:183今日分享:45

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

本文,用Mathematica来挥之给定了参数方程的平面曲线,曲率圆圆心的轨迹。并以此来重温微分几何的一些知识。尤其是,前段时间,有网友提问,怎么求曲线的法向量。本文一起解答。
工具/原料
1

电脑

2

Mathematica

方法/步骤
1

假设曲线的参数方程是r[t],先求出曲线的【单位切向量】:qie[t_] := Evaluate[D[r[t], t]/Sqrt[D[r[t], t].D[r[t], t]] // FullSimplify]对参数方程求导,得到切向量,再归一化处理,才是单位切向量。

2

再求曲线的单位法向量:对【单位切向量】求导,得到法向量;对法向量进行归一化处理,得到单位法向量。dr[t_] := Evaluate[D[qie[t], t]]fa[t_] := Evaluate[dr[t]/Sqrt[dr[t].dr[t]] // FullSimplify]注意,一定是对【单位切向量】求导才能得到法向量,而如果直接对r[t]的导数求导,得到的一般不是法向量。

3

曲率半径是曲率的倒数:qulvr[t_] := 1/ArcCurvature[r[t], t]曲率中心,就是在法向量的方向上:qulvzx[t_] := Evaluate[r[t] + qulvr[t]*fa[t]]

4

再把曲率圆画出来:Circle[qulvzx[tt], qulvr[t] /. t -> tt]这里要遵守一个求导原则:先求导,在赋值。否则机器会报错。

5

然后把曲率圆圆心轨迹画出来。这个轨迹曲线的参数方程,恰恰就是qulvzx[t]。ParametricPlot[qulvzx[t], {t, 0, 2 Pi}, PlotStyle -> RGBColor[1, 0, 1]]而原曲线的参数方程是r[t_] := (Sin[2 t]) {Cos[t], Sin[t]}。

6

更换原曲线的参数方程:r[t_] := (Sin[3 t]) {Cos[t], Sin[t]}这是一条三叶玫瑰线。

7

三叶玫瑰线的极坐标方程,加上一个正数,会“膨胀”起来:r[t_] := (1/3 *(2 + Sin[3 t])) {Cos[t], Sin[t]}

8

当曲率中心完全位于闭曲线内部,且曲线是简单曲线,那么这条曲线一定是凸曲线:r[t_] := (1/21 (20 + Sin[3 t])) {Cos[t], Sin[t]}

9

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

10

如果一条平面闭曲线,本身不是简单曲线,就一定不是凸曲线。(1/2 (1 + Sin[2 t])) {Cos[t], Sin[t]}

注意事项

文首的动态图,里面蓝色曲线的参数方程是{Cos[3 t], Sin[t]}。

推荐信息