Re: Can anyone help about this inverse laplacetransform problem?
- To: mathgroup at smc.vnet.net
- Subject: [mg33342] Re: [mg33279] Can anyone help about this inverse laplacetransform problem?
- From: Sseziwa Mukasa <mukasa at jeol.com>
- Date: Sat, 16 Mar 2002 01:40:25 -0500 (EST)
- Organization: JEOL (USA) Ltd.
- References: <F118LFQG101s7hpJm8O00001337@hotmail.com>
- Sender: owner-wri-mathgroup at wolfram.com
david Xia wrote: > Thanks for your help! I tried your method, yes, it can find roots of the > denominator of a rational function(in my case, fi function). Now that > fi=Nominator/Denominator, based on your previous idea, how to decompose the > fi function into summation of several simple rational function according to > its roots by Mathematica? > You can write the expression yourself pretty easily: Numerator[Together[f4s]]*(Plus@@Roots[Numerator[Together[1-f4s]]==0,s]/.s==x_->1/(s-x)) The problem with taking the Inverse Laplace Transform of this expression is you need to know whether any of the poles have a multiplicity greater than 1. There is no way to determine that from the symbolic expression of the roots without substituting actual values for a, b, c, d, w1, w2, w3, and w4. There are 12 possible expressions for the Inverse Laplace Transform of a rational function with 4 poles. You can get Mathematica to generate all of them, calling the 4 possible roots of 1-f4s, r[i] (i=1..4) this expression will generate all the possible results of the Inverse Laplace Transform in terms of the r[i] of fi. Needs["DiscreteMath`Combinatorica`"] HoldForm[ Map[ (*This expression computes the Inverse Laplace Transform of fi, after applying rules to determine which poles are equal*) Sum[Residue[Exp[s*t]*Numerator[Together[(a*w1)/(s + a) + (b*w2)/(s + b) + (c*w3)/(s + c) + (d*w4)/(s + d)]]* (1/Product[s - r[i], {i, 4}]) //. #1, {s, r[i]}], {i, 4}] & , (*This expression creates a set of rules of all the possible combinations of four roots where some of the roots may be equal*) Prepend[ Apply[If[Length[{##1}] > 2, Join[{#1 -> #2}, Flatten[#0[##2]]], {#1 -> #2}] & , Table[KSubsets[Table[r[j], {j, 4}], i], {i, 2, 4}], {2}], {{}}], {2}]] If you compute the length of the flattened result of the above expression you will see that there are 12 terms. > > For example, > Suppose fi=f(s)/g(s), and g(s) has roots s1,s2,s3,s4,s5 obtained from roots > function, how to decompose it to the sum of several simple rational > function? > > I appreciate your help very much! > No problem, I've been working on a similar problem myself. Incidentally, may I ask are you trying to solve a larger problem or is this your complete problem? Regards, Sseziwa