一些mathematica笔记

绘图

Plot 普通绘图
PolarPlot 极坐标绘图
ParametricPlot 参数绘图
CoutourPlot 隐函数绘图
Plot3D
DensityPlot
RegionPlot 用不等式表示
BarChart处理list 画出直方图bar
PieChart处理list, 画出饼图
VectorPlot提供x,y方向的导数
ArrayPlot画出矩形图
ParametricPlot3d两种用法, 一种直接参数, 另一种是以矩阵形式给出多个曲面参数, 然后得出相交线.
ContourPlot3d
要将多个图形画在一起, 可以分别赋值后, 用Show一起画出
plot中可以带入Table, 前面用Evaluate框起来就可以, 内部如果是函数的情况下, 需要加上Evaluate
SphericalPlot3D是球面坐标绘图, 双参数
RevolutionPlot3D旋转绘图, 默认是0XZ轴, 直接给出平面函数即可, 也可以参数绘图, 双参默认是x,z,三参默认是x,y,z
RegionPlot3D不等式绘图, 之前双参, 这次三参
VectorPlot3D同样需要提供三个方向的导数
Scale投影函数, 对Scale投影的一个固定调用格式如下

 Show[%, PlotRange -> All] /. 
 Graphics3D[gtr_, opts_] :> 
  Graphics3D[{gtr, 
    Scale[gtr, #, {-1, -1, -1}] & /@ (1 + 10^-3 - IdentityMatrix[3])},
    opts]

双Graphics3D函数

双曲面交面

如, 要求$z1=3-2x^{2}-y{2}$, $z_2=x^{2}+2y^{2}$相交面, 可以先转换成柱面坐标, 把x,y分解为r,$\theta$, 然后相交

z1 = 3 - 2 x^2 - y^2;
z2 = x^2 + 2 y^2;
x = r*Cos[\[Theta]];
y = r*Sin[\[Theta]];
ParametricPlot3D[{{x, y, z1}, {x, y, z2}}, {\[Theta], 0, 2*Pi}, {r, 0,
   1}]

Scale投影

对上面的图形进行投影, 就有如下

 Show[%, PlotRange -> All] /. 
 Graphics3D[gtr_, opts_] :> 
  Graphics3D[{gtr, 
    Scale[gtr, #, {-1, -1, -1}] & /@ (1 + 10^-3 - IdentityMatrix[3])},
    opts]

莫比乌斯曲线

r[t_, v_] := 2 + 0.5*v*Cos[t/2];
x[t_, v_] := r[t, v]*Cos[t];
y[t_, v_] := r[t, v]*Sin[t];
z[t_, v_] := 0.5*v*Sin[t/2];
ParametricPlot3D[{x[t, v], y[t, v], z[t, v]}, {t, 0, 2*Pi}, {v, -1, 
  1}]

螺管线

ParametricPlot3D[{(6 + 2*Cos[u])*Cos[v], (6 + 2*Cos[u])*Sin[v], 
  2*(Sin[u] + v)}, {u, 0, 2*Pi}, {v, 0, 3*Pi}]

图形元素绘图

Graphics与Graphics3D相配合, 来画出
Point 点
Line 线
Circle 非填充圆
Rectangle 矩形
Disk 填充圆
Polygon 多边形
Text 字

切线束

一个比较有趣的graphics应用就是切线束

f[x_] := x^2;
p = Table[{{a - 2, f'[a]*((a - 2) - a) + f[a]}, {a + 2, 
     f'[a]*((a + 2) - a) + f[a]}}, {a, -10, 10, 0.1}];
Graphics[Line[p], PlotRange -> {{-1, 1}, {-1, 1}}]

Line内可以是切线束, 这里利用某点处的切线在前后2距离的交点来确定直线, 就可以完成切线束

图形颜色

Hue 色度, 饱和度, 亮度
RGBColor 红绿蓝
GrayLevel
PointSize
Dashing

参数

PlotRange
AspectRatio
PlotStyle
PlotPoints
Axes
AxesLabel
Ticks
Thickness[t]
GrayLevel[t]
Boxed
PlotLabel
BoxRatio
Mesh

小函数

Floor
Sign
Which 相当于switch, 用来作分段函数
f[x_] := x^2Sin[1/x]
N[]
Mod

Take前n个元素
First
Last
Drop
Prepend
Append
Insert
Length
MemberQ
Count

矩阵

IdentityMatrix[n]单位矩阵
DiagonalMatrix[表] 对角矩阵
ColumnForm[矢量]矢量变为列
MatrixForm[矩阵]矩阵输出
Inverse[矩阵]
Det[]
Eigenvalues[]
Eigenvectors[]

方程

Solve[eqns,vars]
NSolve[eqns,vars]
NDSolve[eqns,vars]
NDSolve[eqns,y,{x,xmin,xmax}]
FindRoot[eqns,{x,x0},{y,y0}..]
Eliminate[eqns,elims]