[Date Index]
[Thread Index]
[Author Index]
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?**
| |