Well, after a bit of sleep, the solution was (semi-)obvious :

sage: var("w,t")
(w, t)
sage: E1=-(1/2*sqrt((4*w+1)+1))*t+w==0
sage: S1=E1.solve(w)
sage: S1
[w == 1/2*t*sqrt(4*w + 2)]
sage: S2=((S1[0])^2).solve(w)
sage: S2
[w == 1/2*t^2 - 1/2*sqrt(t^2 + 2)*t, w == 1/2*t^2 + 1/2*sqrt(t^2 + 2)*t]

A numerical check is enough to exclude S2[0] : it's a spurious "solution" 
introduced when we solved a^2==0 instead of a==0.

Now, to check that S2[1] is indeed a solution of E1, Sage isn't enough :

sage: E2=E1.subs(S2[1])
sage: E2
1/2*t^2 - 1/2*sqrt(2*t^2 + 2*sqrt(t^2 + 2)*t + 2)*t + 1/2*sqrt(t^2 + 2)*t 
== 0
sage: bool(E2)
False

The trouble is with the "biradical" term. Let's isolate it (by adding it to 
both sides of E2) :

sage: E3=E2+1/2*sqrt(2*t^2 + 2*sqrt(t^2 + 2)*t + 2)*t
sage: E3
1/2*t^2 + 1/2*sqrt(t^2 + 2)*t == 1/2*sqrt(2*t^2 + 2*sqrt(t^2 + 2)*t + 2)*t
sage: bool(E3)
False
sage: bool(E3^2)
True

Again, we got Sage so check she equality of the squares of both sides of E3 
(hence E1). But in this case, we didn't "introduce spurious solutions". So, 
QED (I think...).

Bonus question : is there a way to get Sage (or Maxima) to recognize the 
existence of "biradical" terms and act accordingly ?

HTH,

--
Emmanuel Charpentier

Le vendredi 17 octobre 2014 23:00:28 UTC+2, Emmanuel Charpentier a écrit :
>
>
>
> Le vendredi 17 octobre 2014 16:37:55 UTC+2, vdelecroix a écrit :
>>
>> 2014-10-17 10:09 UTC, Emmanuel Charpentier <emanuel.c...@gmail.com>: 
>> > Ahem ! 
>> > 
>> > On one machine : 
>> > 
>> > sage: sage.version.version 
>> > '6.4.beta4' 
>> > sage: var("w,t") 
>> > (w, t) 
>> > sage: solve(-(1/2*sqrt((4*w+1)+1))*t+w==0,w) 
>> > [w == 1/2*t*sqrt(4*w + 2)] 
>>
>> This solution is implicit. This is the problem. 
>>
>
> Indeed. But one can get solutions for an equation close to this implicit 
> solution : 
>
> sage: E1=-(1/2*sqrt((4*w+1)+1))*t+w==0
> sage: S1=E1.solve(w)
> sage: S1
> [w == 1/2*t*sqrt(4*w + 2)]
> sage: S2=(S1[0]^2).solve(w)
> sage: S2
> [w == 1/2*t^2 - 1/2*sqrt(t^2 + 2)*t, w == 1/2*t^2 + 1/2*sqrt(t^2 + 2)*t]
>
> A bit of numerics (plotting for t \in [-1,1]) shows that [S2[0] isn't 
> acceptable but that S2[1] might be. I didn't (yet) succeed in proving this.
>
> Any idea ?
>
> --
> Emmanuel Charpentier
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to