axiom-developer
[Top][All Lists]

## [Axiom-developer] Re: [Axiom-math] Solving symbolic vector equations: Ho

 From: Bill Page Subject: [Axiom-developer] Re: [Axiom-math] Solving symbolic vector equations: How do I do this in Axiom? Date: Wed, 14 May 2008 12:45:39 -0400

```On Tue, May 13, 2008 at 6:32 PM, Zach wrote:
>>
>> > so what I would like is for axiom to solve this by
>> >
>> > a * v1 . v1 = v2 . v1
>> > a = (v2 . v1) / (v1 . v1)
>> >
>>
> Bill Page wrote:
>> ??? This is not a solution to the original equation!
>
> Hmm, the problem is that this equation is in danger of having no solution.
> I guess there is an implicit assumption that this has a solution for some
> nonzero v2, meaning the vectors must be parallel.  My boss gave me a
> problem something like this and I am walking on shaky legs at the
> moment as I haven't tried to solve problems like these before.

Ok, I like this problem. Of course I agree that *if* this equation has
a solution then what you wrote is the solution. The situation is not
so different in a lot of other cases of symbolic "solutions".

>
> I guess the correct thing to do is notice that v1 and v2 must be parallel,
> and then deal with the magnitudes, a=|v2|/|v1|.  Once you accept this
> my solution works too, as with unit vector u in the direction of v1 and
> v2, v1 = |v1| u and v2 = |v2| u, v1 . v2 = |v1| |v2| u . u = |v1| |v2| and
> v1 . v1 = |v1|^2.  Right?

Right. Thanks for explaining your point of view.

> Please feel free to point out any misconceptions I am fostering.

Something similar has been discussed by Tim Daly and Gabriel Dos Reis

http://lists.gnu.org/archive/html/axiom-developer/2008-05/msg00067.html

>
> Anyway, I guess I chose too simple of an example.

No, it is a good example. I think your example is interesting because
it illustrates a kind of proviso that is not naturally represented as
an interval on some domain.

> But never mind that. (The original problem was to find tuples of reals
> (n1, n2, m1, m2) such that n1*a1 + n2*a2 = m1*b1 + m2*b2
> (where a1, a2, b1, and b2 are 2D vectors).)
>
>> Well no, not really. Currently Axiom has no domain for symbolic
>> computations with vectors.
>
> I was afraid of that.  Over at Maxima they had no facility either.
>

The only work of this kind that I know about is:

Component-Free Vector Algebra in Aldor
Songxin Liang, David J. Jeffrey and Stephen M. Watt
Proc. Transgressive Computing 2006:

An implementation of a component-free symbolic vector algebra in Aldor
is presented. This package provides two powerful functions:
simplification of vector expressions and the proof of vector
identities. The implementation bene¯ts greatly from Aldor's strong
typing, which allows several simplification problems that have
defeated previous implementations to be solved.

http://www.csd.uwo.ca/~watt/pub/reprints/2006-tc-vectalg.pdf

>>
>> > What is the best way of tackling these types of problems?
>> >
>>
>> It would be possible (and quite interesting) to create a new domain in
>> Axiom for symbolic vector calculations.
>

Aldor can be used as a library compiler for Axiom. I received a copy
of the source code for this package from Songxin Liang. It is written
for "stand alone" use, i.e. without Axiom. I have been intended to
convert it for use within Axiom but have not had sufficient time.
Perhaps you are interested? If so, please let me know.

> Hmm, okay.  So, it would be a good idea to understand how this is done
> in polynomial symbolic manipulation before approaching such a task?
>

Yes. Axiom has a fairly high learning curve but (of course!) I think
it is worth the effort. If you continue with some activity in Axiom
along these lines please feel free to discuss it here.

Regards,
Bill Page.

```