使用MATLAB的residue()命令求传递函数的展开式

极点不同的情况

考虑到这个传递函数:
2
分子和分母的系数矩阵分别为:

>> num = [2 5 3 6];
>> den = [1 6 11 6];

使用以下命令:

>> [r,p,k] = residue(num,den)

即可对分式进行展开,展开后有多项,每一项的分子一定是数字,而分母则为一个多项式

  • r称为留数
  • p称为极数
  • k称为单独项
r =
   -6.0000
   -4.0000
    3.0000
p =
   -3.0000
   -2.0000
   -1.0000
k =
     2

命令residue还能用来根据分式展开式得到多项式,例如我们有以下传递函数的展开式:

1
我们使用以下命令将其写成两个多项式之比的形式:

>> clear
>> r = [-6 -4 3];
>> p = [-3 -2 -1];
>> k = 2;
>> [num1,num2] = residue(r,p,k)

num1 =

     2     5     3     6


num2 =

     1     6    11     6

结果还是不太明显,因为这只是分子和分母的系数,我们新建一个变量s来将其写成分子分母之比的形式,这样就更加的直观:

>> printsys(num1,num2,'s')
 
num/den = 
 
   2 s^3 + 5 s^2 + 3 s + 6
   -----------------------
    s^3 + 6 s^2 + 11 s + 6

通过对比发现,分子和分母的系数刚好与上面的矩阵匹配。

极数相等

上面的例子都是分母极数不相等的,所以分母都是一次多项式,但如果考虑到另一种情况,分母也称为特征多项式,如果这个特征多项式有重根,那么分母就不会再是一次多项式:
3
重复上述操作:

>> clear
>> num1 = [0 1 2 3];
>> num2 = [1 3 3 1];
>> [r,p,k] = residue(num1,num2)

r =

    1.0000
    0.0000
    2.0000


p =

   -1.0000
   -1.0000
   -1.0000


k =

     []

可以看到p的值有三个,而且都相等,说明这三个极数相等,那么分母将不再是一次多项式,而是:
4
得到原函数:

>> [A,B] = residue(r,p,k)

A =

     1     2     3


B =

    1.0000    3.0000    3.0000    1.0000

>> printsys(A,B,'s')
 
num/den = 
 
       s^2 + 2 s + 3
   ---------------------
   s^3 + 3 s^2 + 3 s + 1
### 如何在 SymPy 中计算留数 SymPy 是一个强大的 Python 库,用于执行符号数学运算。它提供了多种功能来处理微积分中的复杂问题,其中包括计算函数的 **留数**(Residue)。以下是关于如何使用 SymPy 计算留数的相关说明。 #### 使用 `residue` 方法 SymPy 提供了一个内置方法 `residue()` 来计算给定表达式的留数值。该方法接受两个参数:第一个是目标表达式,第二个是要评估其留数的变量及其奇点位置[^1]。 下面是一个简单的例子展示如何利用 SymPy 的 `residue()` 函数: ```python from sympy import symbols, residue, sin # 定义符号变量 z = symbols('z') # 表达式定义 expr = 1/z + z*sin(z) # 计算在 z=0 处的留数 result = residue(expr, z, 0) print(result) # 输出应为 1 ``` 上述代码片段展示了如何通过调用 `residue()` 函数来获取特定点处的留数值。这里我们选择了 \( \frac{1}{z} + z\sin(z) \),并对其进行了分析,在 \( z=0 \) 这一点上得出的结果应当等于 1。 如果遇到更复杂的场景或者需要手动实现而无需依赖于现成的方法,则可以采用洛朗级数展开的方式来进行解。具体而言就是找到围绕指定点附近的泰勒/洛朗级数表示形式,并提取其中对应项系数作为最终答案的一部分[^4]。 #### 手动计算留数 当无法直接应用预设好的工具时,也可以借助其他技术手段完成任务。例如对于某些特殊类型的极点情况下的解析过程如下所示: 假设存在简单的一阶极点位于某个位置 c 上面的一个有理分式 f(x)/(x-c)^m ,那么可以通过以下方式得到它的留数 R : \[R=\lim _{{x\to c}}{\big (}(x-c){f(x)} {\big )}\] 这实际上意味着只需要乘以因子 `(x - c)` 并取极限即可获得所需值[^3]。 另外值得注意的是,在实际操作过程中可能还会涉及到多阶极点的情形以及其他更加棘手的情况;此时就需要运用到更多高级技巧比如部分分数分解法或者是基于幂次结构特点构建相应的辅助方程组等等[^2]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值