| 1 | initial version |
Okay. On your head be it...
var("alpha, z")
F = vector([cos(alpha),sin(alpha),z])
G = vector([z,cos(alpha),sin(alpha)])
A = vector([0,0,0])
## Replace u==v by u-v (implicitlt ==0).
L=list(F-G-A)
The system is redundant: the second equation is the sum of the first and the third, or, more swiftly,
sage: L
[-z + cos(alpha), -cos(alpha) + sin(alpha), z - sin(alpha)]
sum(L)
0
sympy offers some solutions:
sage: SS=solve(L,[z, alpha], algorithm="sympy"); SS
[{alpha: -3/4*pi, z: -1/2*sqrt(2)}, {alpha: 1/4*pi, z: 1/2*sqrt(2)}]
Easy check:
sage: [[e.subs(s) for e in L] for s in SS]
[[0, 0, 0], [0, 0, 0]]
But, are these solutions THE solution ?
Since the system is redundant, Sage's default solver (i. e. Maxima's) will choke (check it yourself). So let's try solve the second equation first:
sage: S1=L[1].solve(alpha); S1
[sin(alpha) == cos(alpha)]
Really ? One can do better (see the docs...)
sage: S1=L[1].solve(alpha, to_poly_solve=True); S1
[alpha == 1/4*pi + pi*z1]
Aha ! We have an infinity of solutions for alpha. What does it gives us for z ?
## Declare z1 as an integer (neither Sage nor Maxima will do that for you : minor pain in the a$$..)
sage: var("z1", domain="integer")
z1
## Solve the first equation for `z`
sage: S0 = L[0].subs(S1).solve(z) ; S0
[z == 1/2*sqrt(2)*(-1)^z1]
We have two possible solutions for z. Check that this gives us valid solutions for the third equation:
sage: L[2].subs(S1).subs(S0)
1/2*sqrt(2)*(-1)^z1 - sin(1/4*pi + pi*z1)
Huh ? Here, it pays to have declared z1 as integer:
sage: L[2].subs(S1).subs(S0).simplify_trig()
0
Left to the reader as an exercise: alpha and z are bound by z1. Tabulate the results...
More advanced (requires a bit of familiarity with Sage's and Python's modules) : take a result given by Maxima's solver, and retrieve and declare (correctly) the variables created by the solver (useful also for the differential equations solve, etc...)
Brief conclusion of this short story : using a computer to compute solutions does not relieve you of the obligation to think about your problem and its solutions.
HTH,
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.