matlab复变函数画图形

更新时间:2024-01-15 06:11:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第四篇 计算机仿真

第二十一章 计算机仿真在复变函数中的应用

基于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+3i i 5-i 9*exp(i*6) 23*exp(33i)]

%运行后答案为A =3.0000+5.0000i -2.0000+3.0000i 0+1.0000i 5.0000-1.0000i 8.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.4565i 0.4860+0.4447i

0.2311+0.0185i 0.8913+0.6154i

0.6068+0.8214i 0.7621+0.7919i

21.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求下列复数的实部与虚部、共轭复数、模与辐角.

112i(1)3?2i; (2)i1?i; (3); (4)i?4i?i.

【解】 a=[1/(3+2i) 1/i-3i/(1-i) (3+4i)*(2-5i)/2i i^8-4*i^21+i]

%a =0.2308 - 0.1538i 1.5000 - 2.5000i -3.5000 -13.0000i 1.0000 - 3.0000i real(a)

%ans = 0.2308 1.5000 -3.5000 1.0000

(注明:凡ans 及其后面的内容均不需输入,它是前面语句的答案.本句ans 是real(a)的答案) imag(a)

%ans = -0.1538 -2.5000 -13.0000 -3.0000 conj(a)

%ans =0.2308 + 0.1538i 1.5000 + 2.5000i -3.5000 +13.0000i 1.0000 + 3.0000i abs(a)

%ans = 0.2774 2.9155 13.4629 3.1623 angle(a)

%ans =-0.5880 -1.0304 -1.8338 -1.2490 4 复数的乘除法

复数的乘除法运算由“*”和“/”实现. 5 复数的平方根

复数的平方根运算由函数 sqrt 实现.调用形式如下:

sqrt(z) 返回复数 z 的平方根值

?3i(3?4i)(2?5i)8216 复数的幂运算

复数的幂运算的形式是 z^n,结果返回复数 z 的 n 次幂. 7 复数的指数和对数运算

复数的指数和对数运算分别由函数 exp 和log实现.调用形式如下: exp(z) 返回复数 z 的以 e 为底的指数值; log(z) 返回复数 z 的以 e 为底的对数值. 例21.1.2 求下列式的值.

(1)ln(?10); (2)e2. 【解】log(-10)

%ans= 2.3026 + 3.1416i exp(pi/2* i)

%ans =0.0000+ 1.0000i

πi21.1.3 复变函数的图形 1.整幂函数的图形

例 21.1.6 绘出幂函数 z的图形. 【解】 z=cplxgrid(30);

cplxmap(z,z.^2); colorbar('vert'); title('z^2') %(如图21.1所示)

2. 根式函数的图形

例 21.1.7 绘出幂函数 z的图形 【解】 z=cplxgrid(30);

cplxroot(2);

colorbar('vert');

title('z^{1/2}' ) %(如图21.2).

3. 复变函数中对数函数的图形

例 21.1.3 绘出对数函数Lnz的图形. 【解】

z=cplxgrid(20); w=log(z); for k=0:3 w=w+i*2*pi;

surf(real(z),imag(z),imag(w),real(w)); hold on title('Lnz')

end

view(-75,30) %(如图21.3)

122图21.1 复变函数z的图形

2

图21.2 复变函数z的图形

12例 21.1.4 计算机仿真编程实践:

图21.3 对数函数Lnz

n若zk (k?1,2,???,n)对应为z?1?0的根,其中n?2且取整数.试用计算机仿真编程验证下列数学恒等式

n?k?11n?0,?m?1(m?k)(zk?zm)成立.

【解】仿真程序

n=round(1000*random('beta',1,1))+1 % n=input('please enter n=') su=1; sum=0; for s=1:n

N(s)=exp(i*2*s*pi/n); end

for k=1:n for s=1:n if s~=k

su=1/(N(k)-N(s))*su; end end

sum=sum+su; su=1; end sum

%仿真验证结果为:n =735 sum =2.2335e-016 -5.1707e-016i

其中n的值为随机产生的整数,可见其和的实部和虚部均接近于零。

另一篇:

matlab表现复变函数(四维)的方法是用三维空间坐标再加上颜色,类似于地球仪用颜色表示海洋与高山。

单值函数:单叶 多值函数:多叶

matlab使用下列函数进行复变函数的做图: cplxgrid:构建一个极坐标的复数数据网格

z=cplxgrid(m); %产生(m+1)*(2*m+1)的极坐标下的复数数据网格。最大半径为1的圆面 cplxmap:对复变函数做图

cplxmap(z,f(z),[optional bound]) %画复变函数的图形,可选项用以选择函数的做图范围 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)); hold on

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; for k=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; for k=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) hold on

cplxmap(z2,-w2) caxis(temp1)

axis([min(min(real(z))),max(max(real(z))),min(min(imag(z))),max(max(imag(z))),min(min(real(1./(1-z)))),max(max(real(1./(1-z))))]) colorbar

图(2,2,1)为泰勒展开,图(2,2,2)为罗朗展开

图(2,2,3)为matlab计算结果,图(2,2,4)为泰勒展开和罗朗展开的综合结果

本文来源:https://www.bwwdw.com/article/t7jo.html

Top