张成岗(CZ)的博客世界分享 http://blog.sciencenet.cn/u/zcgweb 脑损伤与脑保护;神经认知;生物信息;蛋白质组;辐射损伤与防护

博文

[转载]来自周铁戈科学网博客:复数复变函数的Matlab计算与绘图(2021.4.5)

已有 263 次阅读 2022-6-20 11:42 |系统分类:科研笔记|文章来源:转载

复数复变函数的Matlab计算与绘图

已有 3312 次阅读 2021-4-5 09:47 |系统分类:科研笔记

复数复变函数的Matlab计算与绘图

周铁戈

复数的表示

存在两种表示方法,一种是代数式,一种是指数式,在Matlab中的方式如下:

>> z=1+2i            # 代数式,1为实部,2为虚部

z = 1.0000 + 2.0000i    # 这是显示的结果

或者

>> z=2*exp(i*pi/6)     # 指数式,模为2,辐角为π/6

z = 1.7321 + 1.0000i    # i是虚数单位

    >> Matlab的输入提示符,它的后面输入命令,回车后就可以运行。

复数的乘除法

>> (3+4i)*(2-5i)/2i

ans = -3.5000 -13.0000i

复数开方

>> sqrt(-1)

ans = 0.0000 + 1.0000i    #  sqrt函数只给出一个结果

幂运算

>> i^3

ans = 0.0000 - 1.0000i

指数函数

>> exp(i)

ans =  0.5403 + 0.8415i

自然对数

>> log(-1)

ans = 0.0000 + 3.1416i

复数的常用函数

取实部

>> real(1+2i)

ans = 1

取虚部

>> imag(1+2i)

ans = 2

取共轭

>> conj(1+2i)

ans = 1.0000 - 2.0000i

求模

>> abs(1+2i)

ans = 2.2361

求辐角

>> 180/pi*angle(1+1i)

ans = 45

复数方程求根  

>> syms x;  # 定义符号变量

>> roots=solve(x^3+8)    #可以求出(-8)^(1/3)3个结果

>> roots = [        -2]

         [ 1-i*3^(1/2)]

         [ 1+i*3^(1/2)]

极限的计算

>> syms z;

>> f=sin(z)/z;      #  sinz/z0的极限

>> limit(f,z,0)

ans = 1

求导

>> syms z;

>> f=sin(z);

>> diff(f,z)

ans = cos(z)

计算留数 

函数为f(z) = z/(z^4-1) ,结果中R是留数,P是极点

>> B=[1,0];         # 分子多项式的系数

>> A=[1,0,0,0,-1];    # 分母多项式的系数

>> [R P K]=residue(B,A)  # 计算留数的命令

R =

   0.2500 + 0.0000i

   0.2500 + 0.0000i

  -0.2500 - 0.0000i

  -0.2500 + 0.0000i

P =

  -1.0000 + 0.0000i

   1.0000 + 0.0000i

   0.0000 + 1.0000i

   0.0000 - 1.0000i

K =

     []

计算复变函数的积分

计算f(z)=z的积分,积分路径是从(0, 0)到(3, 4)的线段。

>> syms z t;

>> z=(3+4i)*t;      # 积分路径的参数方程

>> int(z*diff(z),t,0,1)

计算是采用参数方程描述积分路径,给出的结果如下:

ans = - 7/2 + 12i

还可以用下面的命令直接计算

>> syms z;

>> int(z,z,0,3+4i)

ans = - 7/2 + 12i

计算f(z)=zcosz0i的积分

>> syms z;

>> f=z*cos(z);

>> int(f,z,0,i)

ans = exp(-1) – 1

 

计算f(z)=z^n沿闭合曲线的积分

>> syms z r t;

>> z=r*exp(i*t);    #参数方程,半径为r中心在原点的圆

>> int(z^(-1)*diff(z,t),t,0,2*pi)   #  z^(-1)的积分

ans =pi*2i

>> int(z^(-2)*diff(z,t),t,0,2*pi)   #  z^(-2)的积分

ans = 0

>> int(z^(3)*diff(z,t),t,0,2*pi)    #  z^(3)的积分

ans = 0

 

taylor级数展开

>> clear

>> syms z

>> f=1/(1+z)^2;   # 被展开的函数

>> F=taylor(f,z,0,'Order',10)

F =- 10*z^9 + 9*z^8 - 8*z^7 + 7*z^6 - 6*z^5 + 5*z^4 - 4*z^3 + 3*z^2 - 2*z + 1

或者

>> taylor(f)

ans = - 6*z^5 + 5*z^4 - 4*z^3 + 3*z^2 - 2*z + 1

 

Fourier变换与逆变换

>> syms t;

>> fourier(exp(-t^2))     # 傅里叶变换

ans =pi^(1/2)*exp(-w^2/4)

>> ifourier(ans)         # 傅里叶逆变换

ans =exp(-x^2)

 

Laplace变换与逆变换

>> syms w t;

>> f=sin(w*t);

>> laplace(f)             # 普拉斯变换

ans = w/(s^2 + w^2)

>> ilaplace(ans)          # 普拉斯逆变换

ans = sin(t*w)

 

绘图

f(z) = z 的图像,单值函数,见图1

>> z=cplxgrid(30);

>> cplxmap(z,z)

>> colorbar('vert')

>> title('z’)

 fig1.png

1 f(z)=z的图像,竖直方向的坐标代表z的实部,颜色代表z的虚部

 

f(z) = z^3的图像,单值函数,见图2

>> z=cplxgrid(30);

>> cplxmap(z,z.^3)

>> colorbar('vert')

>> title(‘z^3’)

 

fig2.png 

2 f(z)=z^3的图像,竖直方向的坐标代表z的实部,颜色代表z的虚部

 

f(z)=z^(1/2)的图像,多值函数,见图3

>> z=cplxgrid(30);

>> cplxroot(2);

>> colorbar('vert')

 

fig3.png 

3 f(z)=z^(1/2)的图像

 

f(z)=Lnz的图像,多值函数,见图4。下面是一段Matlab程序。

z=cplxgrid(30);

w=log(z);

for k=0:3

    w=w+2*pi*i;

    surf(real(z),imag(z),imag(w),real(w));

    hold on

   end

view(-75,30)

 

 fig4.png

4 f(z)=Lnz的图像,竖直方向的坐标表示虚部,颜色表示实部



转载本文请联系原作者获取授权,同时请注明本文来自周铁戈科学网博客。
链接地址:https://blog.sciencenet.cn/blog-861848-1280343.html 




https://m.sciencenet.cn/blog-40692-1343748.html

上一篇:[转载]来自戴伍圣科学网博客:复变函数提纲(2009.9.22)
下一篇:[转载]来自康建科学网博客:复变函数w=z^2的图(2019.12.9)

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2022-8-18 09:08

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部