Maxima Newbie Question: Matrix*Vector multiplication ?
Subject: Maxima Newbie Question: Matrix*Vector multiplication ?
From: Christiansson, G.A.V.
Date: Wed, 10 Mar 2004 14:20:08 +0100
Dear Group,
I run Maxima 5.9.0 on a Microsoft Machine, and after trying some more I have
some more specific questions. The example I submitted in my last mail was an
example, and embarassingly enough it works fine for me. However, I
mistakenly thought it was a generalizable problem.
Anyways: Here is a piece of code:
--------------------code----------
load(VECT);
load(EIGEN);
Z:matrix([z11,z12],[z21,z22]);
F:COLUMNVECTOR([Fm,Fs]);
Z . F;
A:matrix([a11,a12],[a21,a22]);
b:COLUMNVECTOR([b1,b2]);
A . b;
---------------------output --------------
(D1)
C:/Program
Files/math/Maxima-5.9.0/share/maxima/5.9.0/share/vector/vect.mac
(C2)
Warning - you are redefining the MACSYMA function EIGENVALUES
Warning - you are redefining the MACSYMA function EIGENVECTORS
(D2)
C:/Program
Files/math/Maxima-5.9.0/share/maxima/5.9.0/share/matrix/eigen.mac
(C3)
[ z11 z12 ]
(D3) [ ]
[ z21 z22 ]
(C4)
[ Fm ]
(D4) [ ]
[ Fs ]
(C5)
incompatible dimensions - cannot multiply
-- an error. Quitting. To debug this try DEBUGMODE(TRUE);)
(C6)
[ a11 a12 ]
(D6) [ ]
[ a21 a22 ]
(C7)
[ B1 ]
(D7) [ ]
[ B2 ]
(C8)
[ a12 B2 + a11 B1 ]
(D8) [ ]
[ a22 B2 + a21 B1 ]
----------------------------------------------------------------------
So, it is possible to multiply A.b but not Z.F
Is there something fundamental that I have missed?
Thanks,
Goran
Ps. Why are the columnvector components B1,B2 instead of b1,b2 ?
> -----Original Message-----
> From: Valery Pipin [mailto:pip at iszf]
> Sent: Wednesday, March 10, 2004 1:56 PM
> To: Christiansson, G.A.V.
> Cc: maxima@www.ma.utexas.edu
> Subject: Re: [Maxima] Maxima Newbie Question: Matrix*Vector
> multiplication ?
>
>
> Welcome!
>
> On Wednesday 10 March 2004 18:38, you wrote:
> | Dear group,
> |
> | I want to multiply a matrix A with a vector b, but I cannot
> figure out
> | how to do that simple operation. (I feel a bit stupid, but I have
> | googled, and read the Maxima Book and the help
> | files...)
> |
> | Example:
> | 8<-------------
> |
> | load(VECT);
> | load(EIGEN);
> |
> | A:matrix([a11,a12],[a21,a22]);
> | b:COLUMNVECTOR([b1,b2]);
> |
> | A . b;
> | ----------
> | I get:
> | "Circular rule attempted - TELLSIMPAFTER"
> What version of maxima and lisp do you have? What sytem do
> you run? On debian linux and maxima cvs everything works in
> expecting way
> (C9) b:COLUMNVECTOR([b1,b2]);
> [ B1 ]
> (D9) [ ]
> [ B2 ]
> (C10) A . b;
> [ a12 B2 + a11 B1 ]
> (D10) [
> ]
> [ a22 B2 + a21 B1 ]
>
> I don't know how to help you.
>
>