www.gusucode.com > matlab 案例源码 matlab代码程序 > matlab/PartialFractionExpansionsExample.m
%% Partial Fraction Expansion % Partial fraction expansion simplifies a fraction of two % polynomials by writing the fraction as a sum of simple fractions. This makes the % expression easier to integrate or transform. %% Definition and Implementation Using |residue| % Consider the fraction _F_(_s_) of two polynomials _b_ and _a_ of degree % _n_ and _m_, respectively % % $$F(s) = \frac{b(s)}{a(s)} = \frac{b_ns^n+...+b_2s^2+b_1s+b_0}{a_ms^m+...+a_2s^2+a_1s+a_0}.$$ % % The fraction _F_(_s_) can be represented as a sum of simple fractions % % $$F(s) = \frac{b(s)}{a(s)} = \frac{r_m}{s-p_m}+...+\frac{r_2}{s-p_2}+\frac{r_1}{s-p_1}+k(s).$$ % % This sum is the partial fraction expansion of _F_. The values % $r_m,...,r_1$ are the residues, the values $p_m,...,p_1$ are % the poles, and $k(s)$ is a polynomial in _s_. For most textbook % problems, $k(s)$ is 0 or a constant. % % The |residue| function finds the partial fraction expansion of _F_(_s_). % The syntax is |residue(b,a)| where |b| and |a| are vectors of % coefficients of _b_(_s_) and _a_(_s_), specified as |b = [bn,...,b0]| and |a = [am,...,a0]|. The % output arguments are |r|, |p|, and |k|, which specify the residues, poles, % and polynomial in |s| as % % |r = [rM ... r2 r1]| % % |p = [pM ... p2 p1]| % % |k = [kN ... k2 k1]| % % The output arguments use the syntax |[r,p,k] = residue(b,a)|. %% Expansion with Real Roots % Consider a fraction of two polynomials % % $$F(s)=\frac{b(s)}{a(s)}=\frac{-4s+8}{s^2+6s+8}.$$ % % The partial fraction expansion of _F_(_s_) is the sum of simple % fractions % % $$\frac{-4s+8}{s^2+6s+8}=\frac{-12}{s+4}+\frac{8}{s+2}.$$ % % Represent _F_(_s_) in terms of the coefficients of _b_(_s_) and _a_(_s_). % Copyright 2015 The MathWorks, Inc. b = [-4 8]; a = [1 6 8]; %% % Find the partial fraction expansion using |residue| with |b| and |a| as % inputs. The returned values of |r|, |p|, and |k| represent the partial % fraction expansion. [r,p,k] = residue(b,a) %% % Convert the partial fraction expansion back to polynomial form using % |r|, |p|, and |k| as inputs to |residue|. [b2,a2] = residue(r,p,k) %% Expansion with Complex Roots and Equal Degree of Numerator and Denominator % If the degree of the numerator is equal to the degree of the denominator, % the output |k| can be nonzero. % % Consider a fraction of two polynomials _F_(_s_) with complex roots and equal % degree of numerator and denominator, where _F_(_s_) is % % $$F(s) = \frac{b(s)}{a(s)} = \frac{2s^3+s^2}{s^3+s+1}.$$ % % Find the partial fraction expansion of _F_(_s_). b = [2 1 0 0]; a = [1 0 1 1]; [r,p,k] = residue(b,a) %% % |residue| returns the complex roots and poles, and a constant term % in |k|, representing the partial fraction expansion % % $$F(s) = \frac{b(s)}{a(s)} = \frac{2s^3+s^2}{s^3+s^2+1} = % \frac{0.5354+1.0390i}{s-(0.3412+1.1615i)} + \frac{0.5354-1.0390i}{s-(0.3412-1.1615i)} + % \frac{-0.0708}{s+0.6823}+2.$$ % %% Expansion with Numerator Degree Greater Than Denominator Degree % When the degree of the numerator is greater than the degree of the % denominator, |k| is a vector that represents the coefficients of a % polynomial in _s_. % % Find the partial fraction expansion of a fraction where the degree of the % numerator is larger than the degree of the denominator. b = [2 0 0 1 0]; a = [1 0 1]; [r,p,k] = residue(b,a) %% % |k| represents the polynomial $2s^2-2$, where |r|, |p|, and |k| represent % the partial fraction expansion % % $$F(s) = \frac{b(s)}{a(s)} = \frac{0.5-1i}{s-1i} + \frac{0.5+1i}{s+1i} + 2s^2-2.$$ %