||
|
复数复变函数的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/z在0的极限
>> 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)=zcosz从0到i的积分
>> 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’)
图1 f(z)=z的图像,竖直方向的坐标代表z的实部,颜色代表z的虚部
f(z) = z^3的图像,单值函数,见图2。
>> z=cplxgrid(30);
>> cplxmap(z,z.^3)
>> colorbar('vert')
>> title(‘z^3’)
图2 f(z)=z^3的图像,竖直方向的坐标代表z的实部,颜色代表z的虚部
f(z)=z^(1/2)的图像,多值函数,见图3。
>> z=cplxgrid(30);
>> cplxroot(2);
>> colorbar('vert')
图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)
图4 f(z)=Lnz的图像,竖直方向的坐标表示虚部,颜色表示实部
转载本文请联系原作者获取授权,同时请注明本文来自周铁戈科学网博客。
链接地址:https://blog.sciencenet.cn/blog-861848-1280343.html
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-17 02:21
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社