很多理工科研究中需要用到矢量微积分进行模型的推导,有时遇到我们不熟悉的坐标系时,推导会变得比较不直观,并且增大了犯错的几率,利用Mathematica进行矢量分析则可以节省人力工作量,并且更加准确和迅速。
参考下面这个pdf来进行学习
田纳西州立大学的Professor Ding的mathematica_vector_analysis.pdf
Overview
Mathematica中最简单的矢量运算就是点积和差积:
Dot[{1,2,3},{-1,6,4}]
Out = 23
Cross[{1,2,3},{-1,6,4}]
Out = {-10, -7, 8}
记住Mathematica的格式,内置函数用大写字母开头,用方括号将参变量扩进去。
A simple mathematica program
- 求矢量v1,v2,v3的混合积:
clear[v1, v2, v3]
v1 = {1, 2, 3}
v2 = {-1, 6, 4}
v3 = {2, -3, 5}
Dot[v1, Cross[v2, v3]]
第一行的目的是清空之前可能给v1、v2、v3赋过的值,这是一个好习惯,每次使用新变量的时候都进行清零
- %的用处
在Mathematica中%可以用来指代上次计算的结果
Cross[v1, v2]
{-10, -7, 8}
Dot[v3, %]
41
Loading packages in Mathematica
有一些不是那么常用的函数,需要装载package来导入mathematica,需要使用Needs命令。
比如要装载我们使用的“VectorAnalysis"的package,输入:
Needs["VectorAnalysis`"]
注意所有的package的名字都要用引号括起来,并且要加上符号`
Grad, Div, Curl in Mathematica
Grad是对标量进行计算,得到他的梯度,一个矢量。
Div和Curl分别是对一个矢量求散度和旋度,得到的分别是标量和矢量;
- Grad的使用
比如对函数求梯度
Grad[x^2 y^3 z^4, {x,y,z},"Cartesian"]
Out = {2 x y^3 z^4, 3 x^2 y^2 z^4, 4 x^2 y^3 z^3}
- Div的使用
比如对矢量求散度
Div[{2 x y^3 z^4, 3 x^2 y^2 z^4, 4 x^2 y^3 z^3}, {x, y, z}, "Cartesian"]
Out = 12 x^2 y^3 z^2 + 6 x^2 y z^4 + 2 y^3 z^4
- Curl的使用
对矢量求旋度
f = {x^n y^n z^n, x^n y^n z^n, x^n y^n z^n}
Curl[f,{x,y,z},"Cartesian"]
Out = {-n x^n y^n z^(-1 + n) + n x^n y^(-1 + n) z^n,
n x^n y^n z^(-1 + n) - n x^(-1 + n) y^n z^n, -n x^n y^(-1 + n) z^n +
n x^(-1 + n) y^n z^n}
Grad, Div, Curl in other coordinate systems
未完待续