matlab复变函数画图形.docx
《matlab复变函数画图形.docx》由会员分享,可在线阅读,更多相关《matlab复变函数画图形.docx(10页珍藏版)》请在冰点文库上搜索。
![matlab复变函数画图形.docx](https://file1.bingdoc.com/fileroot1/2023-7/16/12aa7c5d-ab1b-4047-89ea-0525509a5521/12aa7c5d-ab1b-4047-89ea-0525509a55211.gif)
matlab复变函数画图形
matlab复变函数画图形
第四篇计算机仿真
第二十一章计算机仿真在复变函数中的应用
基于MATLAB语言的广泛应用,我们介绍的计算机仿真方法主要立足于对MATLAB语言的仿真介绍,而其它的数学工具软件,MATHEMATIC,MATHCAD,MAPLE,的仿真方法是类似的,
本章将重点介绍使用MATLAB进行复数、复变函数的各类基本运算以及定理的验证,并介绍仿真计算留数、积分的方法,以及复变函数中Taylor级数展开,Laplace变换和Fourier变换,
21.1复数运算和复变函数的图形
21.1.1复数的基本运算
1复数的生成
复数可由语句z=a+b*i生成,也可简写成z=a+bi;另一种生成复数的语句是z=r*exp(i*theta),其中theta是复数辐角的弧度值,r是复数的模(
2复矩阵的生成
创建复矩阵有两种方法(
(1)一般方法
例21.1.1创建复矩阵的一般方法(
【解】仿真程序为
A=[3+5*I-2+3ii5-i9*exp(i*6)23*exp(33i)]
%运行后答案为A=3.0000+5.0000i-2.0000+3.0000i0+1.0000i
5.0000-1.0000i8.6415-2.5147i-0.3054+22.9980i
说明:
%后为注释语句,不需输入)
(2)可将实、虚矩阵分开创建,再写成和的形式
例21.1.2将实、虚部合并构成复矩阵
【解】仿真程序为
re=rand(3,2);
im=rand(3,2);
com=re+i*im
%运行后答案为com=0.9501+0.4565i0.4860+0.4447i
0.2311+0.0185i0.8913+0.6154i
0.6068+0.8214i0.7621+0.7919i21.1.2复数的运算
1复数的实部和虚部
复数的实部和虚部的提取可由函数real和imag实现(调用形式如下:
real(z)返回复数z的实部;
imag(z)返回复数z的虚部.
2共轭复数
复数的共轭可由函数conj实现(调用形式为:
conj(z)返回复数z的共轭复数.
3复数的模与辐角
复数的模与辐角的求取由函数abs和angle实现(调用形式为:
abs(z)返回复数z的模;
angle(z)返回复数z的辐角.
例21.1.1求下列复数的实部与虚部、共轭复数、模与辐角(
113i(34i)(25i),,,82132i,i4ii,,i1i,2i
(1);
(2);(3);(4)(
【解】a=[1/(3+2i)1/i-3i/(1-i)(3+4i)*(2-5i)/2ii^8-4*i^21+i]
%a=0.2308-0.1538i1.5000-2.5000i-3.5000-13.0000i1.0000-3.0000i
real(a)
%ans=0.23081.5000-3.50001.0000
(注明:
凡ans及其后面的内容均不需输入,它是前面语句的答案,本句ans是real(a)的答案)
imag(a)
%ans=-0.1538-2.5000-13.0000-3.0000
conj(a)
%ans=0.2308+0.1538i1.5000+2.5000i-3.5000+13.0000i1.0000+3.0000i
abs(a)
%ans=0.27742.915513.46293.1623
angle(a)
ans=-0.5880-1.0304-1.8338-1.2490%
4复数的乘除法
复数的乘除法运算由“*”和“/”实现(
5复数的平方根
复数的平方根运算由函数sqrt实现(调用形式如下:
sqrt(z)返回复数z的平方根值
6复数的幂运算
复数的幂运算的形式是z^n,结果返回复数z的n次幂(7复数的指数和对数运算
复数的指数和对数运算分别由函数exp和log实现(调用形式如下:
exp(z)返回复数z的以e为底的指数值;
log(z)返回复数z的以e为底的对数值.例21.1.2求下列式的值(
πi2ln(,10)e
(1);
(2)(
【解】log(-10)
%ans=2.3026+3.1416i
exp(pi/2*i)
%ans=0.0000+1.0000i21.1.3复变函数的图形
1.整幂函数的图形2z例21.1.6绘出幂函数的图形.
【解】z=cplxgrid(30);
cplxmap(z,z.^2);
colorbar('vert');
title('z^2')
%(如图21.1所示)
2z图21.1复变函数的图形
2.根式函数的图形
12z例21.1.7绘出幂函数的图形
【解】z=cplxgrid(30);
cplxroot
(2);
colorbar('vert');
title('z^{1/2}')%(如图21.2).
12z图21.2复变函数的图形
3.复变函数中对数函数的图形
Lnz例21.1.3绘出对数函数的图形.
【解】
z=cplxgrid(20);
w=log(z);
fork=0:
3
w=w+i*2*pi;
surf(real(z),imag(z),imag(w),real(w));
holdon
title('Lnz')
end
Lnz图21.3对数函数view(-75,30)%(如图21.3)
例21.1.4计算机仿真编程实践:
nzkn(1,2,,),,,,n,2kz,,10若对应为的根,其中且取整数.试用计算机仿真编程验证下列数学恒等式
n1,0,,nk,1()zz,km,m,1mk(),成立.
【解】仿真程序
n=round(1000*random('beta',1,1))+1
%n=input('pleaseentern=')
su=1;
sum=0;
fors=1:
n
N(s)=exp(i*2*s*pi/n);
end
fork=1:
n
fors=1:
n
ifs~=k
su=1/(N(k)-N(s))*su;
end
end
sum=sum+su;
su=1;
end
sum
%仿真验证结果为:
n=735sum=2.2335e-016-5.1707e-016i
其中n的值为随机产生的整数,可见其和的实部和虚部均接近于零。
另一篇:
matlab表现复变函数(四维)的方法是用三维空间坐标再加上颜色,类似于地球仪用颜色表示海洋与高山。
单值函数:
单叶
多值函数:
多叶
matlab使用下列函数进行复变函数的做图:
cplxgrid:
构建一个极坐标的复数数据网格
z=cplxgrid(m);%产生(m+1)*(2*m+1)的极坐标下的复数数据网格。
最大半径为1的圆面cplxmap:
对复变函数做图
cplxmap(z,f(z),[optionalbound])%画复变函数的图形,可选项用以选择函数的做图范围cplxmap做图时,以xy平面表示自变量所在的复平面,以z轴表示复变函数的实部,颜色表示复变函数的虚部
cplxroot:
画复数的n次函数曲面
cplxroot(n)%画复数n次根的函数曲面,复数为最大半径为1的圆面
cplxroot(n,m)%画复数n次根的函数曲面,复数为最大半径为1的圆面,为(m+1)*(2m+1)的方阵
例1:
画复数z^3的图形
z=3*cplxgrid(30);
cplxmap(z,z.^3);
colorbar
其结果如图
可见,自变量z的取值在水平面的半径小于3的园内。
cplxmap做图时,以xy平面表示自变量所在的复平面,以z轴表示复变函数的实部,颜色表示复变函
数的虚部
由于函数为单页的,所以函数是单值的
例2:
画复数(z-0.5)^0.5的图形
仿照cplxroot函数的程序,编程如下
m=20;
n=2;
r=(0:
m)'/m;
theta=pi*(-m:
m)/m;z=r*exp(i*theta)-0.5;
w1=z.^(1/n);
subplot(2,2,1),surf(real(z),imag(z),real(w1),imag(w1));colorbar
w2=w1.*exp(i*2*pi/n);
subplot(2,2,2),surf(real(z),imag(z),real(w2),imag(w2));colorbar
subplot(2,1,2)
surf(real(z),imag(z),real(w1),imag(w1));holdon
surf(real(z),imag(z),real(w2),imag(w2));colorbar
如果仅使用w1=z.^(1/n);,则所得结果为图(2,2,1)
可见,对于多值函数,MATLAB仅仅是对其主值进行计算。
例3:
复变函数1/(1-z)的级数展开
复变函数1/(1-z)是级数展开中常用的一个函数。
当abs(z)<1时,它的泰勒展开式为
1/(1-z)=求和(k=0,+无穷)z^k
当abs(z)>1时,它的罗朗展开式为
1/(1-z)=求和(k=-无穷,-1)z^k
泰勒展开与罗朗展开的区别
在复变函数里面,一些函数无法被展开为泰勒级数,因为那里存在一些奇点。
但是如果变量x是负指
数幂的话,我们仍然可以将其展开为一个级数,这就是洛朗级数.
从形式上看,泰勒级数是只含正幂项和常数项.洛朗级数不仅包含了正数次数的项,也包含了负数次数的
项。
有时无法把函数表示为泰勒级数,但可以表示为洛朗级数。
可以认为泰勒级数是洛朗级数的一种特殊形式
m=30;
r=2*(0:
m)'/m;
theta=pi*(-m:
m)/m;z=r*exp(i*theta)-0.5;z(find(z==1))=nan;z1=z;
z1(abs(z1)>=1)=nan;w1=1;u1=1;
fork=1:
100
u1=u1.*z1;
w1=u1+w1;
end
subplot(2,2,1)
cplxmap(z1,w1)
colorbar
z2=z;
z2(abs(z2)<=1)=nan;w2=1./z2;u2=1./z2;fork=1:
100
u2=u2./z2;
w2=u2+w2;
end
subplot(2,2,2)
cplxmap(z2,-w2)
colorbar
subplot(2,2,3)
cplxmap(z,1./(1-z))
colorbar
temp1=caxis;
subplot(2,2,4)
cplxmap(z1,w1)
holdon
cplxmap(z2,-w2)
caxis(temp1)
axis([min(min(real(z))),max(max(real(z))),min(min(imag(z))),max(max(imag(z))),min(min(re
al(1./(1-z)))),max(max(real(1./(1-z))))])colorbar
图(2,2,1)为泰勒展开,图(2,2,2)为罗朗展开
图(2,2,3)为matlab计算结果,图(2,2,4)为泰勒展开和罗朗展开的综合结果