Composition of Vector Functions in Mathematica

  • Mathematica
  • Thread starter Identity
  • Start date
  • #1
152
0
I want to define something like:
[tex]A\left(\begin{matrix} x \\ y\end{matrix}\right) = \left(\begin{matrix} 1 & -1 \\ -1 & 1 \end{matrix}\right)\left(\begin{matrix} x \\ y\end{matrix}\right)[/tex]
[tex]B\left(\begin{matrix} x \\ y\end{matrix}\right) = \left(\begin{matrix} 0 & 1 \\ 2 & -1 \end{matrix}\right)\left(\begin{matrix} x \\ y\end{matrix}\right)+\left(\begin{matrix} 1 \\ 1\end{matrix}\right)[/tex]
And then I want to be able to evaluate compositions such as [itex]A \circ B \circ A\left(\begin{matrix} x \\ y\end{matrix}\right)[/itex] quickly and easily.

Currently I'm using this syntax:
A[x_,y_] = {{1,-1},{-1,1}}.{{x},{y}}

However, when I define such a function, the output is a column vector, not a list, and I can't input a column vector into the next function. How do I do ths?
 

Answers and Replies

  • #2
phyzguy
Science Advisor
4,819
1,777
If I understand your syntax correctly, you have too many brackets in the column vector definition. A column vector should be just a simple list, and a matrix should be a nested list. Instead of:
A[x_,y_] = {{1,-1},{-1,1}}.{{x},{y}}

Just define:

A = {{1,-1},{-1,1}}
B = {{0,1},{2,-1}}
X = {x,y}

Then you can simply compose them with the dot product, such as:

(A.(B.A)).X
 
  • #3
152
0
I can't do that, because B has a translation vector
 
  • #4
1,069
29
Is this what you are looking for?

In[1]:= A[{x_,y_}]:={{1,-1},{-1,1}}.{x,y};
B[{x_,y_}]:={{0,1},{2,-1}}.{x,y}+{1,1};
Composition[A,B,A][{x,y}]

Out[3]= {-2 x-2 (x-y)+2 y,2 x+2 (x-y)-2 y}
 
  • #5
152
0
I'll have to try it out when i get back tonight, but that looks very promising, thanks :)
 

Related Threads on Composition of Vector Functions in Mathematica

Replies
4
Views
3K
Replies
1
Views
4K
Replies
1
Views
3K
Replies
3
Views
21K
Replies
3
Views
16K
Replies
2
Views
2K
Replies
5
Views
4K
Replies
1
Views
2K
Replies
4
Views
3K
  • Last Post
Replies
1
Views
2K
Top