我是靠谱客的博主 危机芹菜,最近开发中收集的这篇文章主要介绍matlab 求留数,用matlab求留数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

《用matlab求留数》由会员分享,可在线阅读,更多相关《用matlab求留数(3页珍藏版)》请在金锄头文库上搜索。

1、收稿日期: 2006) 05- 29作者简介: 贾新民(1956) ), 男, 四川邻水县人, 副教授, 研究方向: 计算机应用1用 MATLAB求 留 数贾新民( 昌吉学院计算机工程系 新疆 昌吉 831100)摘 要: 文章给出了用 MATLAB求复变函数的留数的方法。关键词:MATLAB; 复变函数; 高阶极点; 留数中图分类号: O174文献标识码: A文章编号: 1671- 6469(2006)03- 0101- 03Matlab 是集数值计算、 符号运算及图形处理 等功能为一体的功能强大的科学计算平台。Mat -lab 在高等数学、 力学、 机械、 电工、 信号处理、 自动控制等领。

2、域都有广泛的应用。本文介绍利用 Matalb 求复函数留数的方法。1. 留数及其求法:留数又称为残数。复变函数 f( z) 在 p 点的留数定义为 f( z) 在 p 点罗朗展开中( z- p)- 1的系数c- 1。f( z) 在 p点的留数记为 res f ( p) 留数的求法: 设 z0是函数 f( z) 的 m( m 1) 阶极点, 则Res f( p) =1 ( m- 1) !limzypdm- 1 dzm- 1 ( z- p)mf( z) 。( 1)下面通过例子说明几种特殊情形下用Matlab求留数的方法。 2. f( z) 是有理分式的情形Matalab 的信号处理工具箱中的函数 。

3、residue的作用是求有理分式展开为部分分式时的展开系数, 巧妙地应用该函数, 可以求出有理分式的留数 ( 数值解) 。使用语法为 r, p = residue( 分子多项式, 分母多项式)其中 r 是部分分式的系数数组( 留数数组) , p 是极点数组。使用时需要注意, 当函数有重极点时, 对同一个极点 p, 存在几个展开系数 r, 这几个r 中只有与相同极点中第一个对应的 r 是( z-p)- 1的系数即与极点 p 对应的留数, 其余的不是留数。例1 求函数 f( z) =z+ 3 z2+ 3z+ 2的极点和留数。 解: matlab 程序及结果为a= 1, 3 ; b= 1, 3, 2。

4、 ; % a、 b 分别 是 f( z) 分子多项式和分母多项式的系数矩阵 r, p = residue( a, b) %r 和 p分别是 f( z)的留数数组和极点数组r =- 12p =- 2- 1从结果看出: res f( - 2) = - 1, res f( - 1) = - 2。例2 求函数 f( z) =z15 ( z2+ 1)2( z4+ 2)3在各极点的留数。解: 所给函数一共有 7 个极点: 以及 p= ? i, p=42e(P+ 2KP) i/4, ( k= 0, 1, 2, 3) 以及 p= 。用residue 函数时, 首先要将 f( z) 分母展开为多项式, 用手工展。

5、开是比较费事的。matlab 的信号处理工具箱中求卷积的函数 conv 可以用来进 行多项式乘积。用Matlab 求解该问题的程序和结101昌吉学院学报 2006 年第 3 期果如下:a= 1, 0, 1 ;a1= conv( a, a) ; a2= 1, 0, 0, 0, 2 ;a3= conv( a2, a2) ;a4= conv( a3, a2) ;a5= conv( a1, a4) % a5 是分母多项式 系数矩阵a5 =Columns 1 through 13 1 0 2 0 7 0 12 0 18 0 24 0 20Columns 14 through 170 16 0 8b= 1。

6、, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ; %分子多项式系数矩阵r, p = residue( b, a5) % 调用 residue 函数求极点和留数r = 0. 2037 +0. 1637i- 0. 0207 +0. 0976i- 0. 0139 +0. 0049i 0. 2037 - 0. 1637i- 0. 0207 - 0. 0976i- 0. 0139 - 0. 0049i0. 2037 - 0. 1637i 0. 0207 + 0. 0976i- 0. 0139 - 0. 0049i0. 2037 + 0. 1637i 0. 0。

7、207 - 0. 0976i- 0. 0139 + 0. 0049i0. 0926 + 0. 0000i- 0. 0000 + 0. 0093i 0. 0926 - 0. 0000i- 0. 0000 - 0. 0093ip =0. 8409 + 0. 8409i0. 8409 + 0. 8409i0. 8409 + 0. 8409i0. 8409 - 0. 8409i0. 8409 - 0. 8409i0. 8409 - 0. 8409i- 0. 8409 + 0. 8409i- 0. 8409 + 0. 8409i- 0. 8409 + 0. 8409i- 0. 8409 - 0. 840。

8、9i- 0. 8409 - 0. 8409i- 0. 8409 - 0. 8409i - 0. 0000 + 1. 0000i- 0. 0000 + 1. 0000i- 0. 0000 - 1. 0000i- 0. 0000 - 1. 0000i为了方便, 将最后结果重新排列为p = r=0. 8409 + 0. 8409i 0. 2037 + 0. 1637i0. 8409 + 0. 8409i - 0. 0207 + 0. 0976i0. 8409 + 0. 8409i - 0. 0139 + 0. 0049i0. 8409 - 0. 8409i 0. 2037 - 0. 1637i0. 。

9、8409 - 0. 8409i - 0. 0207 - 0. 0976i0. 8409 - 0. 8409i - 0. 0139 - 0. 0049i- 0. 8409 + 0. 8409i 0. 2037 - 0. 1637i- 0. 8409 + 0. 8409i 0. 0207 + 0. 0976i- 0. 8409 + 0. 8409i - 0. 0139 - 0. 0049i- 0. 8409 - 0. 8409i 0. 2037 + 0. 1637i- 0. 8409 - 0. 8409i 0. 0207 - 0. 0976i- 0. 8409 - 0. 8409i - 0. 01。

10、39 + 0. 0049i- 0. 0000 + 1. 0000i 0. 0926 + 0. 0000i- 0. 0000 + 1. 0000i - 0. 0000 + 0. 0093i- 0. 0000 - 1. 0000i 0. 0926 - 0. 0000i- 0. 0000 - 1. 0000i - 0. 0000 - 0. 0093i以上结果中左边一列是函数的极点数组( n重极点算 n 个极点) , 右边一列是部分分式的展开系数。由前所述, 只有与重极点 p 的第一行对应的 r 值( 即标有下划线的值) 才是留数。即res f(42eiP/4) = 0. 2037+ 0. 1637i。

11、,res f(42e- iP/4) = 0. 2037- 0. 1637i,res f(42ei3P/4) = 0. 2037- 0. 1637i,res f(42e- i3P/4) = 0. 2037+ 0. 1637i,res f( i) = 0. 0926 res f( - i) = 0. 0926。f( ) 可以根据 f( z) 在所有极点的留数和等于 0的定理求出为res f( ) = - 26i= 1res f( pi) = - 1。 3. 利用Matlab 的符号运算功能求留数的数 102昌吉学院学报 2006 年第 3 期学表达式用residue 函数求留数虽然方便快捷, 但有。

12、两个缺陷: 第一, 要求函数 f( z) 的形式必须是有理分 式; 第二, 只能求数值解, 不能求解析解。当函数 f( z) 的形式不是有理分式时, 求函数在极点 p 处的留数的方法只能先判断极点的重数, 然后利用Matlab 的符号运算功能根据公式( 1) 进行计算, 可以求出留数的解析形式。例3 已知 f( z) =1- e2x z4, 求 res f( 0) 。解: z= 0 是 f( z) 的 3 阶极点, 将 m= 3 代入求留数的公式( 1) , 输入以下Matlab 语句:limit( diff( ( . z3* ( 1- exp( 2* z) ) / z 4. ) , 2) ,。

13、. z. , 0) / 2 % 用单撇号括起来表明是符号运算运算结果为ans=- 4/ 3即 res f( 0) = - 4/ 3。例4 设 f( z) =ez- 1 sin3z, 求 res f( kP ) , k= 1, 2,3,解: 当 kX 0 时, z= kP是 f( z) 的 3 阶极点, 在 Matlab 的命令窗口输入语句:limit( diff( ( -( z- pi) 3* ( exp( z) - 1) / ( sin( z) )3. ) , 2) , . z. , pi) / 2运算结果为 ans=- exp( pi) + 1/ 2即 res f( P) = - eP+1。

14、 2;当k= 2 时, 将上述语句中 pi 改为 2* pi, 得limit( diff( ( -( z- 2* pi) 3* ( exp( z) - 1) / ( sin( z) ) 3. ) , 2) , . z. , 2* pi) / 2ans= exp( 2* pi) - 1/ 2即 res f( 2P) = e2P-1 2。同样可以求出 k= 3P时的留数为res f( 3P) = - e3P+1 2。归纳以上结果有res f( kP) = ( - 1)kekP-( - 1)k2。f( z) 的形式是有理分式时, 也可以用符号运算方法求留数。例5 设 f( z) =z15 ( z2+。

15、 1)2( z4+ 2)3, 求 res f( i) 。解: z= i 是 f( z) d 的二阶极点, 在 Matlab 的命 令窗口, 输入语句:limit( diff( ( . ( z- i) 2* z15/ ( ( z2+ 1) 2* ( z4+ 2) 3) . ) , 1) , . z. , i) 回车后可得结果为ans=5/ 54即res f( i) =5 54( = 0. 092592592) , 例 2 数值 计算是保留了 4 位小数的结果。4. 简单的评述上面介绍的两种求复变函数的留数的方法各有长处。看起来似乎用符号运算方法既可以求一 般函数的留数, 也可以求有理分式的留数, 而且得到的结果是解析的, 应该更有效。但事实上不一定。仍以例 2 的函数为例, p= 21/ 4eiP/4是函数的 3 阶极点, 根据例 3 和例 4, 用语句 limit( diff( (. ( z-2( 1/ 4) * exp( i* pi/ 4) ) 3* z15/ ( ( z2+ 1) 2* ( z4+ 2) 3) . ) , 2) , . z. , 2( 1/ 4) * exp( i* pi) ) / 2 就可以求出函数在该点的留数。输入上述语句后, 经 过一段时间的等待后, 结果却是好几百位的一个数, 可见, 至少在这种情况下, 数值解法虽然不。

最后

以上就是危机芹菜为你收集整理的matlab 求留数,用matlab求留数的全部内容,希望文章能够帮你解决matlab 求留数,用matlab求留数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部