一、实验目的
了解Matlab中有关复数的功能,能利用Matlab软件计算复变函数中的相关问题。
二、相关知识
我们知道,复数
由实部和虚部组成,表示为:
,
和
为实数,
为虚单位。在Matlab中也采用这样的方法来表示虚数,只是有时也用
来表示虚单位。我们可以在命令窗口直接输入一个复数z=2+3*i,也可以用complex()命令来生成复数。用该命令还可生成复向量、复矩阵。例如:a=(1:4);b=(5:8); z2=complex(a,b),则得到如下的结果:
1.0000 + 5.0000i 2.0000 + 6.0000i 3.0000 + 7.0000i 4.0000 + 8.0000i
现在我们来看一下有关复数的几个函数:
|
函数 |
real(X) |
imag(X) |
angle(X) |
abs(X) |
conj(X) |
|
功能 |
返回实部 |
返回虚部 |
返回辐角 |
返回模 |
返回共轭 |
这些函数中的X均可以是复数、复向量、复矩阵。
我们前面讨论的四则运算、解代数方程、求极限、求导数、求积分、级数展开等运算,都可以运用到复数上来。这些是比较简单的问题。
接着,我们来讨论关于留数的计算。留数是复变函数中的一个重要概念,按照复变函数教材上的定义,函数
在
点的留数为:
![]()
其中
在区域
内解析,
是
的孤立奇点,
为圆周
,
。按照
在
的罗朗展开式,可以得到
,即
在
的留数等于
在
的罗朗级数展开式中
的系数。
按照定义,我们固然可以通过求函数的罗朗级数的方法来求处函数在给定点的留数,但是如果遇到较为复杂的函数,要求留数并非一件易事,而Matlab为我们提供了一些计算工具。首先,对于分子分母均为多项式的函数,Matlab有一个专门用于计算留数的函数residue(),其格式如下:
[R,P,K]=residue(B,A)
其中:参数B是由复变函数的分子的系数组成的向量,参数A是由复变函数的分母的系数组成的向量,例如,对于函数
,则
,
,参数
是返回的留数,是由不同奇点的留数组成的向量。参数
是返回的极点,也是一个向量,参数
是个向量,由B/A的商的多项式系数组成,如果length(B)<length(A),则K为空向量,否则,length(K)=length(B)-length(A)+1。
另外,函数residue()还可以根据已知的奇点P,奇点的留数R和K来计算分式复变函数的系数B和A,其格式如下:
[B,A]=residue(R,P,K)
其中参数的意义同前。
例1:计算复变函数
的留数,然后根据计算的结果反求复变函数的分式表达式的系数A和B。
程序如下:
clear
B=[1,0];
A=[1,0,0,0,-1];
[R,P,K]=residue(B,A)
[B1,A1]=residue(R,P,K)
结果为:
R =0.2500
0.2500
-0.2500 + 0.0000i
-0.2500 - 0.0000i
P =-1.0000
1.0000
0.0000 + 1.0000i
0.0000 - 1.0000i
K =[]
B1 = 0 0.0000 1.0000 0.0000
A1 = 1.0000 -0.0000 -0.0000 0.0000 -1.0000
例2:计算复变函数
的留数,然后根据计算的结果反求复变函数的分式表达式的系数A和B。
程序只要修改例1中的B,A为B=[1,3,0,2],A=[1,6,-1]即可,结果如下:
R =18.6706
0.3294
P = -6.1623
0.1623
K = 1 -3
B1 = 1.0000 3.0000 -0.0000 2.0000
A1 = 1.0000 6.0000 -1.0000
当复变函数的分子分母不是多项式时,函数residue()就失效了,此时,我们主要根据4个留数计算规则和一个定理来进行留数的计算。
规则(1):如果
为
的一级极点,则:
;
规则(2):如果
为
的
级极点,则:
;
规则(3):设
,且
和
在
点都解析,如果
,
,
,那么
为
的一级极点,则
在
的留数为:
;
规则(4):在无穷远点的留数:
![]()
定理:如果
在扩充复平面内只有有限个孤立奇点,那么
在所有奇点的留数的总和必定为零。
例3:计算函数
在
点的留数。
很明显,
和
都是
的一级极点,所以使用第一个运算法则较为合适。用以下程序可以算得结果:
clear
syms z
f=z*exp(z)/(z^2-1);
z1=1;z2=-1;
R1=limit((z-1)*f,z,1)
R2=limit((z+1)*f,z,-1)
结果为:
R1 =1/2*exp(1)
R2 =1/2*exp(-1)
例4:计算函数
在
处的留数。
我们可以看出
在扩充的复平面上有三个极点:
,
,
,根据计算留数的定理,
在
处的留数应该等于其在
和
处留数的和,
和
又是
的一级奇点,所以有:
,因此用以下的程序可以求解:
clear
syms z
f=exp(z)/(z^2-1);
R1=limit(f*(z-1),z,1)
R2=limit(f*(z+1),z,-1)
R=R1+R2
结果如下:
R1 =1/2*exp(1)
R2 =-1/2*exp(-1)
R =1/2*exp(1)-1/2*exp(-1)
三、实验内容
1.解方程组:
;
2.计算函数
在点
处的一阶导数;
3.计算下列表达式在其奇点的留数:
(1)
;(2)
;(3)
;(4)
;
4.把
作为符号,用函数Taylor将表达式
进行泰勒展开;
5.完成实验报告。