![9bbe29bba093bf1088a803dd58f135e3.png](https://i-blog.csdnimg.cn/blog_migrate/30b9c72de80b30d0a32d05a27956d365.jpeg)
参考书目:Modern Differential Geometry of Curves and Surfaces with Mathematica
第二节主要是利用mma研究在第一节中的东西
写在前面:
1.首先要使用Notation来允许下标能标志一个变量。
2.我将使用latex来写大部分简单的代码,因为复制过来的文本形式实在是失去了其数学美观
3.巧妙利用各种假设和化简函数化简,我除了第一节的都不写在简单的语句里了
欧几里得空间
一个向量可以这样表示:
两种乘法的区别:
所以一个是元素两两相乘,一个是点乘
定义模L函数:
实际上mma内部就自带模函数Norm,但我们不用他
定义旋转操作函数J:
使用I来表示单位虚数
使用Conjugate来给出共轭复数
使用全局假设告诉mma,我的xy是实数,并用Refine来施加这个假设:
也可以使用简便的输入:Esc+co+Esc
使用ReIm将复数从加法形式转化为坐标形式
定义cplx函数将复数从坐标形式转化为加法形式
计算一下
验证了这个公式
定义向量夹角函数vectorAngle,对应内置的VectorAngle
测试一下正确性
空间中的曲线
定义一条三维曲线:
可以对其求速率场
求速度场
求加速度场
定义曲线的单位长度的速度:
使用 ParametricPlot 和 ParametricPlot3D 来可视化参数曲线
[Alpha][t_] := {Cos[5 t], Cos[7 t]};
ParametricPlot[[Alpha][t], {t, 1, [Pi]}]
![155fe55cabfcfa9e6281c835de875927.png](https://i-blog.csdnimg.cn/blog_migrate/dd4e90b882d21193f2920741eb6ae785.png)
曲线的长度
定义一个圆,圆和椭圆的内置函数都为Circle:
定义一个抛物线:
定义一个椭圆:
定义不定积分的弧长函数,要和内置的弧长函数ArcLength区别开来:
但是这样当t为一个代数式的时候,这个式子就会没法计算,所以改用这样:
计算一下圆的没有初始值的弧长函数:
计算一下椭圆的没有初始值的弧长函数:
可以看到出现了椭圆积分
定义弧长函数,这里注意区别内置的弧长函数ArcLength和数组长度Length
定义数值弧长函数:
定义一条半三次抛物线:
检查它的t从a到b的弧长
检查它的t从1到2的数值的弧长:
平面曲线的曲率
定义平面曲率,注意曲率已经有内置函数ArcCurvature:
拿来看看圆的曲率:
拿来看看椭圆的曲率:
角度函数
定义角度函数:
定义旋转角:
观察圆的旋转角:
取
Plot[Arg[I Cos[t] - Sin[t]], {t, 0, 2 [Pi]}, AspectRatio -> 1]
![a9ecd7488803db237ae3d573500147b2.png](https://i-blog.csdnimg.cn/blog_migrate/725f49a878088297d2909d63e915ec38.png)
观察椭圆的旋转角:
取
Plot[Arg[I Cos[t] - 2 Sin[t]], {t, 0, 2 [Pi]}, AspectRatio -> 1]
![f8fa95d62625f71f55ae4b3d7def3355.png](https://i-blog.csdnimg.cn/blog_migrate/a4fc04524295e1aec5180f88489121aa.png)
可以看到有些波动
平面曲线的初步例子
定义对数螺线:
观察b对曲线形状的影响
ParametricPlot[
Evaluate@Table[
logspiral[1, b][t], {b, -1/2, 1/2, 1/2}], {t, -2 [Pi], 2 [Pi]},
PlotRange -> 2, PlotLegends -> "Expressions"]
![dd765f8d960477773a433c9accd8a21a.png](https://i-blog.csdnimg.cn/blog_migrate/50fe6f243c67ceb3ac1ed923bcb87ac4.png)
观察两条黑线之间的夹角
Manipulate[
Show[ParametricPlot[#[t], {t, -2 [Pi], 2.42}],
Graphics[{Arrow[{#[t], #[t] + unitvelocity[#][t]}],
Line[{{0, 0}, #[t]}]}], PlotRange -> 3] & @@ {logspiral[1, 1/
2]}, {t, -2 [Pi], 2.42, 0.1}]
![b5a5415ce10e0a7c99caafe82e87c713.gif](https://i-blog.csdnimg.cn/blog_migrate/b2a35e9d6ce5e4254214f60ade975727.gif)
观察半三次抛物线
ParametricPlot[sc[t], {t, -1, 1}, AspectRatio -> Automatic]
![53dbf20471a026078549317a295b3b41.png](https://i-blog.csdnimg.cn/blog_migrate/f74f27c246ddc359762f143fc9900518.png)
计算半三次抛物线的曲率:
观察它的曲率
![78b709e3f56cd07d937967f731db165d.png](https://i-blog.csdnimg.cn/blog_migrate/8436658af4c57a98559ec711083121c7.png)
计算半三次抛物线的旋转角
观察它的旋转角
![b3ac81ee79116f1140c1de18b06b360c.png](https://i-blog.csdnimg.cn/blog_migrate/7da3417b3d0ee24ff5f1fed3dee57e2a.png)