axiom-developer
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[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
in the thread "Provisos":

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.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]