• To: mathgroup at smc.vnet.net
• From: "david Xia" <xiaxd at hotmail.com>
• Date: Sat, 16 Mar 2002 01:40:33 -0500 (EST)
• Sender: owner-wri-mathgroup at wolfram.com

```Thanks for your help!

I will try to use your method to see if it works. The problem I asked is
just a part of a bigger problem. It is related to nonlinear optimization, I
think.The problem is from computer network research.

The problem is generalized to something like this:

Given a,b,c,d,w1,w2,w3,w4 as unknown variables, and f4s as a function of
these 8 variables, after doing inverse laplace transform and other
operations such as derivative, integration, then we get another function,
say function gg(as you said, it will be very complicated), which is a
function of these 8 variables. We have many data, after plotted, the curve
can be approximated by a function. By network research domain theory,gg
function is a good model of the curve. Now the question comes, how to use
the experimental data to estimate the original parameters,
a,b,c,d,w1,w2,w3,w4. I guess if I do inverse laplace transform, if I can
find the exact formula of function gg, then I can use the nonlinear
optimization function in mathematica to esitmate the parameters.

I am not sure if this approach is feasible since the function gg after
inverse laplace transform will be very very complicated, not sure
mathematica will do it for me or not.

David

>From: Sseziwa Mukasa <mukasa at jeol.com>
To: mathgroup at smc.vnet.net
>To: david Xia <xiaxd at hotmail.com>, mathgroup at smc.vnet.net
>problem?
>Date: Fri, 15 Mar 2002 10:57:02 -0500
>
>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
>

_________________________________________________________________