Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder1.news.weretis.net!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: Axel Vogt <&noreply@axelvogt.de> Newsgroups: comp.soft-sys.math.maple Subject: Re: Solving Equation Set Date: Mon, 09 Jun 2014 20:20:29 +0200 Lines: 65 Message-ID: References: Reply-To: &noreply@axelvogt.de Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: individual.net YL/JI1uSLjGMrvLJw9wF/A6kFQw0e9+foQ/pOnnHl9cD9CYs0= Cancel-Lock: sha1:mY1gUk/DVcpb8LYj05f0LHClXeA= User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 In-Reply-To: Xref: csiph.com comp.soft-sys.math.maple:890 On 09.06.2014 05:20, Thomas D. Dean wrote: > From an email about another CAS, Maxima > > ## > ## In the following sequence, I'm trying to prove that the length of the > ## cross product of two orthogonal unit vectors is =1. > ## > ## The normal of a vector is the length of the vector > ## |A| = sqrt(a1^2+a2^2+a3^2) > ## if |A| = 1 then > ## |A|^2 = sqrt(a1^2+a2^2+a3^2)^2 = 1^2 > ## so that > ## a1^2+a2^2+a3^2 = 1 > ## > ## N(A)=|A|^2=a1^2+a2^2+a3^2 see above > ## N(B)=|B|^2=b1^2+b2^2+b3^2 see above > ## N(AxB) is the norm of AxB. > ## A.B=a1*b1+a2*b2+a3*b3=0. > ## > restart; > A:=; > B:=; > tmp:=LinearAlgebra[CrossProduct](A,B); > eq1:=tmp . tmp = NAxB; ## NAxB is the cross product > eq2:=A . A = 1; ## A is a unit vector > eq3:=B . B = 1; ## B is a unit vector > eq4:=A . B = 0; ## A is perpendicular ot B > > solve({eq1,eq2,eq3,eq4},NAxB); > > sol1:=lhs(eq1)+lhs(eq4)^2 = rhs(eq1)+rhs(eq4); > sol2:=eliminate([sol1,eq2,eq3],b3); > sol3:=eliminate(sol2[2][2],a3); > sol4:=solve(sol3[2][2],NAxB); > > I can peek and poke to get a solution. There should be an easier way. > How do I do this? > > Tom Dean Not sure, but it may be conjugate(z) is seen a function expression and prevents solve (despite the fact #equations =4, but 1 variable). The best I got was to see it as 1 equation + 3 side relations: sys:=[eq1,eq2,eq3,eq4]; sys:=expand(sys); # needed ! sys[1]; #isolate(%, NAxB); # in case you want to see that simplify(%, {sys[4], sys[2], sys[3]}); # side relations 1 = NAxB PS: verify the 'cross product' thing fits notations: with(LinearAlgebra): 'Norm(tmp,2)^2 = CrossProduct(A,B).CrossProduct(A,B)'; is(%); true