MathGroup Archive 2001

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Solve[] for equations?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg32042] Re: Solve[] for equations?
  • From: atelesforos at hotmail.com (Orestis Vantzos)
  • Date: Thu, 20 Dec 2001 03:42:04 -0500 (EST)
  • References: <9v7857$s6n$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

Your problem is fascinating!
I found a simpler way to reduce the equations, taking advantage of the
symmetry of your equations:

The r[i], i=1...4, can be thought of as the solutions of the
polynomial
(x-r[1])(x-r[2])(x-r[3])(x-r[4])=0
This polynomial can be written as
x^4-P[1]x^3+P[2]x^2-P[3]x+P[4]=0 ,
where the P[i] are the symmetric polynomials of {r[1],..,r[4]}.
So, instead of the r[i] we can solve for the P[i], and use the
polynomial to find the r[i], (or store them as Root objects).

We load the corrsponding package:
<<Algebra`SymmetricPolynomials`

The original equations can be rewritten as:
t[i]==r[i](P[1]-r[i])/P[1], i=1..4 were P[1] is the 1st symmetric
polynomial r[1]+r[2]+r[3]+r[4].

Turn this into a rule 
tRule= Table[t[i]->r[i](P[1]-r[1])/P[1],{i,4}]

Now we can produce equations for the P[i], using the following method:
a) Pick a symmetric expression of the t[i]
b) Use the tRule to convert it into an expression of the r[i] and
P[1].
c) Use the SymmetricReduction function, to convert both expressions to
expressions of the symmetric polynomials T[i] and P[i] for t and r
repsectively, and return the equation.

The function which creates the equations is this:
symRed[expr_] := First[SymmetricReduction[expr, Array[t,
{4}],Array[T,{4}]]] ==
  First[SymmetricReduction[expr /. tRules,Array[r, {4}],Array[P,{4}]]]
The T[i] are the coefficients of the 4-th degree polynomial with roots
t[i].

It can be easily shon that the equation that corresponds to the square
of the sum of the t[i], depends only on P[1] and P[2], hence P[2] can
be found directly:
symRed[Sum[t[i],{i,4}]^2] --> T[1]^2==4P[2]^2/P[1]^2
Of the two solutions, the useful one is the P[2]==T[1]P[1]/2.

I have experimented with many forms, but it seems tht one can not
actualy get a set of equations that can be solved for all
P[1],P[3],P[4].
I can however solve for P[3] and P[4].
The following set of equations come from symRed-ing the 3rd symmetric
polynomial of t[i], the sum of the form
t[1](t[2]+t[3]+t[4])+t[2](t[1]+t[3]+t[4])+... and the expression
t[1]^2(t[2]+t[3]+t[4])+t[2]^2(t[1]+t[3]+t[4])+...
Out[35]=
     3       2   1     2
{P[1]  (-P[3]  + - P[1]  P[3] T[1] + 
                 2
 
                                    3
      P[1] P[4] (P[1] + T[1]) - P[1]  T[3]) == 0, 
 
        2                                1     2     2
  2 P[1]  T[2] == 2 P[1] P[3] + 4 P[4] + - P[1]  T[1] , 
                                         2
 
      2                   2
  P[1]  T[1] T[2] - 3 P[1]  T[3] == 
 
         2
   3 P[3]                  1
   ------- - 3 P[1] P[4] - - P[1] P[3] T[1] - P[4] T[1] + 
    P[1]                   2
 
    1     2     3
    - P[1]  T[1] }
    4

We solve for P[3] and P[4], and using them we assemble the polynomial,
whose solutions are the r[i].

The end product of this procedure are two 4-th degree polynomials,
whose solutions are the r[i]. The polynomials have the T[i] as
parameters, which can be calculated directly from the t[i].
Unfortunately (?) they also have the P[1] as parameter. So before you
can get the solutions you have to provide their sum.
Preliminary numerical analysis of the solution (well, I only found the
whole trick yesterday), indicates that the values of P[1] that give 4
real roots lie in an open interval, and that is only for one of the
polynomials. Which one seems to depend on the signs of the t[i].
Simply fascinating...
Complex solutions are available for any value of P[1].
Orestis


  • Prev by Date: Re: NDSolve-memory
  • Next by Date: Re: equations
  • Previous by thread: Re: Solve[] for equations?
  • Next by thread: Re: Solve[] for equations?