We can solve this problem by using MATLAB and specifically by applying the partial fraction expansion by means of the function residue
.
The MATLAB code below
[r, p] = residue([20 100], [1 13.5 41 80 100]);
syms s;
F1 = r(1) / (s - p(1));
F2 = r(2) / (s - p(2));
F3 = r(3) / (s - p(3));
F4 = r(4) / (s - p(4));
F34 = (2*real(r(3))*s - 2*real(r(3))*real(p(3)) - 2*imag(r(3))*imag(p(3))) / ...
(s^2 - 2*real(p(3))*s + abs(p(3)));
F = F1 + F2 + F34;
f = ilaplace(F);
disp('F(s) = ');
pretty(vpa(F1 + F2 + F3 + F4, 5));
disp(' = ');
pretty(vpa(F, 5));
disp('f(t) = ');
pretty(vpa(f, 5));
outputs the following result:
F(s) =
1.0121 0.13579 - 0.57396 - 0.74149i - 0.57396 + 0.74149i
---------- + ---------- + --------------------- + ---------------------
s + 2.2394 s + 10.138 s + 0.56117 - 2.0223i s + 0.56117 + 2.0223i
=
1.0121 (1.1479 s - 2.3549) 1.0 0.13579
---------- - ----------------------- + ----------
s + 2.2394 2 s + 10.138
s + 1.1223 s + 2.0987
f(t) =
exp(-2.2394 t) 1.0121 + exp(-10.138 t) 0.13579 - exp(-0.56117 t)
(cos(1.3356 t) - sin(1.3356 t) 1.9561) 1.1479
The key is that the fractions F3
and F4
containing imaginary numbers can be conveniently grouped up into F34
, which is instead a fraction with a second-order denominator containing only real numbers that in turn yields the well-known oscillatory behavior with an exponential profile.
In general, polynomials with real coefficients may exhibit only up to complex and conjugate roots, which can be always handled following the procedure above that basically lets imaginary numbers fade away into fractions with second-order denominators.