Re: Closed Form solution too much to hope for?
- To: mathgroup at smc.vnet.net
- Subject: [mg66746] Re: Closed Form solution too much to hope for?
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Sun, 28 May 2006 06:08:41 -0400 (EDT)
- Organization: The Open University, Milton Keynes, UK
- References: <e5augm$no4$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
DOD wrote:
> I don't have a very good idea on the guts of Solve, or what its
> reasonable to expect from mathematica, but here's what I want: T is
> the solution to
>
> d x^n + (1-d) x^2 == c
>
> Where n, d and c are parameters of my model. Now, it's very clear what
> this solution looks like; as we vary d the solution 'slides' from the
> easy-to-solve-in-a-closed-form solutions to
>
> x^n=c
>
> and
>
> x^2=c,
>
> that is, x=c^{1/2} and x=c^{1/n}. So I know what the solution looks
> like, but when I leave it in symbolic form, Solve doesn't like it, and
> says it's fundamentally not algebraic. I presume this is because the
> number of roots depends on n, which isn't given, so Solve panics. But
> I only really care about the real solution between 0 and 1- is there
> any way to get the form of this solution as a function of both n and c?
>
> Thanks for enlighening me.
>
> Dennis
>
Hi Dennis,
I am afraid that your intuition is wrong and that closed form solutions
are more complicated that what you think. To explore the full set of
solutions, use *Reduce* and *Assuming*.
In[1]:=
eqn = d*x^n + (1 - d)*x^2 == c;
In[2]:=
Table[{i, Assuming[0 <= d <= 1 && n \[Element] Integers && n >= 0 &&
c \[Element] Reals, Reduce[eqn /. n -> i, x]]}, {i, 0, 5}]
Out[2]//OutputForm=
{{0, (d == 1 && c == 1) ||
Sqrt[-c + d] Sqrt[-c + d]
(-1 + d != 0 && (x == -(------------) || x == ------------))},
Sqrt[-1 + d] Sqrt[-1 + d]
{1, (d == 1 && x == c) ||
2
d - Sqrt[4 c - 4 c d + d ]
(-1 + d != 0 && (x == -------------------------- ||
2 (-1 + d)
2
d + Sqrt[4 c - 4 c d + d ]
x == --------------------------))},
2 (-1 + d)
{2, x == -Sqrt[c] || x == Sqrt[c]},
{3, (d == 0 && (x == -Sqrt[c] || x == Sqrt[c])) ||
2 2 3
(d != 0 && (x == Root[-c + #1 - d #1 + d #1 & , 1] ||
2 2 3
x == Root[-c + #1 - d #1 + d #1 & , 2] ||
2 2 3
x == Root[-c + #1 - d #1 + d #1 & , 3]))},
{4, (d == 0 && (x == -Sqrt[c] || x == Sqrt[c])) ||
(d != 0 && (x == -(
2
1 Sqrt[1 - 2 d + 4 c d + d ]
Sqrt[1 - - - --------------------------]
d d
----------------------------------------) ||
Sqrt[2]
2
1 Sqrt[1 - 2 d + 4 c d + d ]
Sqrt[1 - - - --------------------------]
d d
x == ---------------------------------------- ||
Sqrt[2]
2
1 1 Sqrt[1 - 2 d + 4 c d + d ]
x == -Sqrt[- - --- + --------------------------] ||
2 2 d 2 d
2
1 1 Sqrt[1 - 2 d + 4 c d + d ]
x == Sqrt[- - --- + --------------------------]))},
2 2 d 2 d
{5, (d == 0 && (x == -Sqrt[c] || x == Sqrt[c])) ||
2 2 5
(d != 0 && (x == Root[-c + #1 - d #1 + d #1 & , 1] ||
2 2 5
x == Root[-c + #1 - d #1 + d #1 & , 2] ||
2 2 5
x == Root[-c + #1 - d #1 + d #1 & , 3] ||
2 2 5
x == Root[-c + #1 - d #1 + d #1 & , 4] ||
2 2 5
x == Root[-c + #1 - d #1 + d #1 & , 5]))}}
In[3]:=
Assuming[0 <= d <= 1 && n \[Element] Integers && n >= 0 && c \[Element]
Reals,
Reduce[eqn /. d -> 0, x, Reals]]
Out[3]//OutputForm=
c >= 0 && (x == -Sqrt[c] || x == Sqrt[c])
In[4]:=
Assuming[0 <= d <= 1 && n \[Element] Integers && n >= 0 && c \[Element]
Reals,
Reduce[eqn /. d -> 1, x, Reals]]
Out[4]//OutputForm=
1/n
(c == 1 && n == 0 && x > 0) || (n != 0 && c > 0 && x == c ) ||
n
(n > 0 && c == 0 && x == 0) || (c == 1 && n == 0 && x < 0) ||
n 1/n
(- \[Element] Integers && n != 0 && c > 0 && x == -c ) ||
2
1 + n 1/n
((----- | n) \[Element] Integers && n != 0 && c < 0 && x == -(-c) )
2
In[5]:=
Table[{i, Assuming[0 <= d <= 1 && n \[Element] Integers && n >= 0 &&
c \[Element] Reals, Reduce[eqn /. n -> i, x, Reals]]}, {i, 0, 5}]
(* I have deleted the output since it is really too long ... *)
Best regards,
Jean-Marc