基于Mathematica的复变函数可视化
Tensofermi
编辑于 2021年05月11日 19:45
收录于文集
共6篇

  本学期的数理方法课程需要交一篇学习报告,要求选择一个专题进行讨论。由于我在复变函数多值性这块掌握的不是很好,很多概念很难想清楚,所以我决定迎难而上,将这方面作为我的学习报告主题。

  在此期间,我利用了mma绘制一些复变函数可视化的图像,方便理解,同时这也为我的报告提供了素材,嘿嘿。

  以下就是正文了,前半部分主要讲理论和自己的感悟,需要耐心点看;之后,都是mma可视化的步骤简介。(ps.本来是想练习LaTex写文章的,但是老师要求word写,也就懒得去学LaTex _(:3」∠)_)

  文章最后会有代码,可以直接cv搬运(滑稽)

  水平有限,难免存在错误,恳请读者指出,感激不尽。



(1)复平面变换:

代码块
HTML
自动换行
复制代码
z=x+y I;   (*定义复数*)

f[x_,y_]=z^2;p=0.5;r1=5;r2=5;   (*输入复变函数、精度、范围*)

Show[ListLinePlot[Table[{Re[f[x,y]],Im[f[x,y]]},{x,-r1,r1,p},{y,-r1,r1,p}]],ListLinePlot[Table[{Re[f[x,y]],Im[f[x,y]]},{y,-r1,r1,p},{x,-r1,r1,p}]],AspectRatio->{1,1},PlotRange->{{-r2,r2},{-r2,r2}} ]  (*可视化函数*)
复制成功

(2)点到点的平面映射:

代码块
HTML
自动换行
复制代码
z=x+y I;

f[x_,y_]=z^2;

Manipulate[{ListPlot[{{u,v}},PlotRange->{{-10,10},{-10,10}},PlotLabel->原象],ListPlot[{{Re[f[u,v]],Im[f[u,v]]}},PlotRange->{{-10,10},{-10,10}},PlotLabel->象]},{u,-10,10},{v,-10,10}]
复制成功

(3)根式形式黎曼面

代码块
HTML
自动换行
复制代码
z=x+y I;

n=3;a=1;

Show[Table[ContourPlot3D[w==Re[  Abs[(z-a)^(1/n)]],{x,-10,10},{y,-10,10},{w,-5,5},ColorFunction->Function[{z},Hue[1/(k+1)]]],{k,0,n-1}]]
复制成功

(4)对数形式黎曼面

代码块
HTML
自动换行
复制代码
z=x+y I;

n=10;

Show[Table[ContourPlot3D[w==Im[Abs[z]+I(2Pi k+Arg[z])],{x,-10,10},{y,-10,10},{w,0,50/2},ColorFunction->Function[{z},Hue[1/(k+1)]]],{k,0,n-1}]] 
复制成功