matlab里ezlim,用MATLAB复变实践函数展开及留数

《用MATLAB复变实践函数展开及留数》由会员分享,可在线阅读,更多相关《用MATLAB复变实践函数展开及留数(13页珍藏版)》请在人人文库网上搜索。

1、一一、函数的泰勒级数展开函数的泰勒级数展开 Taylor 级数开展在复变函数中有很重要的地位, 如分析复变函数的解析性等。 函数)(xf在0 xx 点的 Taylor 级数开展为 !3/)0)(0(!2/)0)(0()0)(0(0)( 32 xxxfxxxfxxxfxxf 在 MATLAB 中可由函数 taylor 来实现。 taylor 泰勒级数展开 )(ftaylor 返回f函数的五次幂多项式近似。 ),(nftaylor 返回1n次幂多项式。 ),(aftaylor 返回a点附近的幂多项式近似。 这里的taylor展开式运算实质上是符号运算,因此在 MATLAB 中执行此命 令前应先定义。

2、符号变量zxsyms ,,否则 MATLAB 将给出出错信息! 例 1、求下列函数在指定点的 Taylor 级数展开式。 (1)1/z2,z0 = -1; (2)tan (z),z0 = pi/4; (3)sinz/z,z0 = 0 解:解:在 Matlab 中实现为: syms z taylor(1/z2,-1) ans = 3+2*z+3*(z+1)2+4*(z+1)3+5*(z+1)4+6*(z+1)5 taylor(tan(z),pi/4) ans = 1+2*z-1/2*pi+2*(z-1/4*pi)2+8/3*(z-1/4*pi)3+10/3*(z-1/4*pi)4+64/15*(。

3、z-1/4*pi)5 taylor(sin(z)/z,10) ans = 1-1/6*z2+1/120*z4-1/5040*z6+1/362880*z8 从(3)的展开式可知彼知已 z = 0 是 sinz/z 的可去奇点。 例 2、求 z ezf)(在0z处的泰勒级数 syms z; f=exp(z); taylor(f,z,8)%z 这里的 8 是展开的项数 ans = 1+z+1/2*z2+1/6*z3+1/24*z4+1/120*z5+1/720*z6+1/5040*z7 taylor(f,z)%展开的默认值是 6 项 ans = 1+z+1/2*z2+1/6*z3+1/24*z4+1。

4、/120*z5 下面的程序画出了指数函数 z e及其泰勒展式的图形: subplot(1,2,1); z=5*cplxgrid(30); cplxmap(z,exp(z) title(复变函数 ez 的图形) subplot(1,2,2); w=1;u=1; for k=1:15 u=u.*z./k; w=w+u; end cplxmap(z,w) title(ez 泰勒展式的图形) 图 5 复变函数 z e及其泰勒展式的图形 注意,在实轴的正方向上的曲面就是我们熟悉的实数的指数函数曲线的图像。 z e的泰 勒展式是 k k z z k e 0 ! 1 图 5 中 z e泰勒展式的图形是等式右。

5、边 15 项求和的结果。 例 2 指数函数 z e的泰勒级数展开式 (多项对比) 解:通过泰勒级数定理的计算可以容易求出 z n z e n n z 0 ! ,通过图形演示可以验证 其展开式的正确性 Matlab 语句: figure z=5*cplxgrid(30); subplot(2,2,1);cplxmap(z,exp(z);title(原函数); f1=1;u1=1; for k=1:5 u1=u1.*z; j=factorial(k); v1=u1./j; f1=f1+v1; end subplot(2,2,2);cplxmap(z,f1);title(5 项展开式) f2=1;u。

6、2=1; for k=1:9 u2=u2.*z; j=factorial(k); v2=u2./j; f2=f2+v2; end subplot(2,2,3);cplxmap(z,f2);title(9 项展开式) f3=1;u3=1; for k=1:16 u3=u3.*z; j=factorial(k); v3=u3./j; f3=f3+v3; end subplot(2,2,4);cplxmap(z,f3);title(16 项展开式) 图形结果: 图 6 例 2 指数函数多项对比图形 从图形中可以看出当n越大,即泰勒级数展开项数越多,对原函数的拟合效果越好,同 时,用泰勒级数来近似计算。

7、函数值越准确。但是,如果展开过高的项数,将导致程序运算过 于复杂。该函数泰勒展开 16 项求和的效果就很好。 3.洛朗级数展开 例 3 求函数 z1 1 的级数展开式。 解:复变函数 z1 1 是级数展开中常用的一个函数,这也是一个倒数函数,且在1z处 不解析。根据泰勒级数定理和洛朗定理可知: 当1z时,它的泰勒展开式是1 1 1 0 zz z n n 当1z时,它的洛朗展开式是1 1 1 1 zz z n n M 文件如下: m=30; r=(0:2*m)/m; theta=pi*(-m:m)/m; z=r*exp(i*theta); z(find(z=1)=NaN; figure(1) c。

8、plxmap(z,1./(1-z); title(1/(1-z); colorbar(vert); z1=z; z1(abs(z1)=1)=NaN; f1=1;u1=1; for k=1:100 u1=u1.*z1; f1=f1+u1; end figure(2) subplot(1,2,1); cplxmap(z1,f1); title(1/(1-z)的泰勒展开); z2=z; z2(abs(z2) num=1 11 39 52 26; den=1 10 35 50 24; r,p,k=residue(num,den) 结果: r = 1.0000 2.5000 -3.0000 0.5000。

9、 p = -4.0000 -3.0000 -2.0000 -1.0000 k = 1 则得: 1 1 5 . 0 2 3 3 5 . 2 4 1 24503510 26523911 234 234 zzzzzzzz zzzz zF 从结果中可以看出该函数的极点分别为:-4,-3,-2,-1;其对应的留数分别为: 14Refs,5 . 23Refs,32Refs,5 . 01Refs 如果 sF中含重极点,则部分分式展开将包括下列诸项 qjps qjr jps jr jps jr 11 2 式中 jp为一个q重极点。 例 2 求下列函数的部分分式展开式 3 2 1 64 z zz zF 解: 首。

10、先要将 zF分母展开为多项式, matlab 的信号处理工具箱中求卷积的函数 conv 可以用来进行多项式乘积,以免幂次数过高,手工展开不便。 zF分母展开的 M 文件程序 function duoxiangshi(a,n) %a 为分母多项式的系数,n 为(n+2)次幂 b=conv(a,a); for i=1:n b=conv(b,a); end b 数据输入 a=1,1; n=1; duoxiangshi(a,n) 结果: b = 1 3 3 1 之后进行部分分式展开,MATLAB 程序为 num=1 4 6; den=1 3 3 1; r,p,k=residue(num,den) 结果。

11、; r = 1.0000 2.0000 3.0000 p = -1.0000 -1.0000 -1.0000 k = 所以可得 3 23 2 1 3 1 2 1 1 1 64 zzzz zz zF,本例的余项k为零。 由结果可知,1z是该函数的3级极点,留数为11Refs。 当函数有重极点时,对同一个极点 0 z存在多个展开系数r,这几个r中只有与相同极点 中第一个对应的r是 1 0 zz的系数,即与极点 0 z对应的留数,其余的不是留数。 当分母出现 n nn pm asascsbs 1 1 的情况时,只需先对mbs 和 pcs 分别展开,之后利用 conv 进行多项式乘积,再与 n nn 。

12、asas 1 1 的系数求和 即可。 当 zf是有理分式的情形时,可以使用 Matlab 中的函数 residue,巧妙的运用该函数,可 以求出有理分式的留数。当 zf的形式不是有理分式时,求函数在极点 0 z处的留数方法只 能是先判断极点的重数,然后利用 Matlab 的符号运算功能进行计算。 2. 利用留数计算公式求留数 例3:求出函数 )2)(1( zz e zf z 在孤立奇点处的留数 解:首先判断该函数的极点,1 1 z和2 2 z分别是 zf的1重极点,再根据 1lim !1 1 Re 0 1 1 0 0 nzfzz dz d n zfs n n n zz 进行留数求解。 在指令窗。

13、输入以下指令: syms z; f=exp(z)/(z-1)*(z-2); r1=limit(f*(z-1),z,1) r1 = -exp(1) r2=limit(f*(z-2),z,2) r2 = exp(2) 例 5:求 5 cos1 )( z z zf 在孤立奇点处的留数 在指令窗输入以下指令: syms z; f=(1-cos(z)/z5; r=limit(diff(f*z5,z,4)/prod(1:4),z,0) r = -1/24 3.留数计算在实积分中的应用 根据柯西留数定理, 我们可以更巧妙的求解一类积分闭圈积分。 对于一些三角有理 函数的积分以及与有理函数相关的两类广义积分,。

14、 我们同样可以借助于留数来进行巧妙的求 解。 例 6.求积分 dzzz z zf C 1 25 这里C是圆周沿逆时针方向的2z。 解: 从该函数的表达式可以看出被积函数有两个孤立奇点0 1 z和1 2 z, 且它们都在 C的内部, 可以求得该函数的两个留数 1 B和 2 B, 再通过求和运算, 可以求出该函数的积分。 求解闭圈积分的 M 文件程序: function liushu1(f,z0,n,Z) %f 为所求函数,z0 为极点,n 为阶数,Z 为闭圈范围 syms z; P=diff(z-z0)n*f,n-1); Q=limit(P,z,z0); N=factorial(n-1); B=。

15、Q/N; if z0 syms z; f=(5*z-2)/(z*(z-1); z1=0;z2=1; n=1;Z=2; liushu1(f,z1,n,Z);liushu1(f,z2,n,Z) 结果:f0 =4*i*pi;f0 =6*i*pi; 因此, iiidz zz z zf C 1064 1 25 。 例 7:求积分 dx x1 1 4 解:设 1 1 4 z zf,该函数的孤立奇点为01 4 z,也就是-1 的 4 个根。除此之 外,在其余点都是解析的,我们可以知道-1 的 4 个根分别为 3 , 2 , 1 , 0 4 2 4 exp k k ick 显然 4 0 i ec , 4 3 1 i ec 位于坐标轴的上半平面, 由定理52得: 4 3 4 4 44 , 1 1 Re2, 1 1 Re2 1 1 ii e z sie z si x 根据 MATLAB 语句进行留数求解: syms z; f=1/(z4+1); z0=exp(i*pi/4);z1=exp(i*3*pi/4); n=1; liushu(f,z0,n);liushu(f,z1,n) 结果:B = -1/8*2(1/2)-1/8*i*2(1/2),B =1/8*2(1/2)-1/8*i*2(1/2) 由此得到原函数结果为: 2 2 8 2 8 2 8 2 8 2 2 1 1 4 iiidx x。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值