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 <[email protected]>:
>> > 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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.