Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Composition of Vector Functions in Mathematica

  1. Jul 26, 2012 #1
    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?
  2. jcsd
  3. Jul 26, 2012 #2


    User Avatar
    Science Advisor

    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:

  4. Jul 26, 2012 #3
    I can't do that, because B has a translation vector
  5. Jul 26, 2012 #4
    Is this what you are looking for?

    In[1]:= A[{x_,y_}]:={{1,-1},{-1,1}}.{x,y};

    Out[3]= {-2 x-2 (x-y)+2 y,2 x+2 (x-y)-2 y}
  6. Jul 26, 2012 #5
    I'll have to try it out when i get back tonight, but that looks very promising, thanks :)
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook