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

Transforming association matrix to a functional matrix

  1. Jul 17, 2011 #1

    Pythagorean

    User Avatar
    Gold Member

    I have n elements. Say n = 3.

    Suppose I have an association matrix that gives the relationship between each element

    [tex]
    \begin{array}{cc}
    0 & 0 & D3\\
    D1 & 0 & 0\\
    0 & D2 & 0
    \end{array} [/tex]

    I have a function in mind now, I want to operate and the physical variables representing my three elements, [tex]\vec{y} = [y_1 y_2 y_3] [/tex]. My functional matrix would look like:

    [tex]
    \begin{array}{cc}
    -D1 & D1 & 0\\
    0 & -D2 & D2\\
    D3 & 0 & -D3
    \end{array} [/tex]

    so that I get [tex] \vec{y} = [D1(y_2 - y_1) D2(y_3-y_2) D3(y_1-y_3) [/tex]

    If you're interested in the physical/biological motivation, we basically have a unidirectional diffusion coupling between electrophysiological neurons here so you're seeing a numerical second derivative. Now, using matlab commands (circshift and transpose) I do circular shifts and transposes on the association matrix to nudge it into my functional shape.


    But I'm having trouble with the more general case. What if I have two-way diffusion, but the diffusion is stronger in one direciton than in the other? Now the association matrix is:

    [tex]
    \begin{array}{cc}
    0 & D4 & D3\\
    D1 & 0 & D5\\
    D6 & D2 & 0
    \end{array} [/tex]

    and what we for functional is:


    [tex]
    \begin{array}{cc}
    -(D1+D4) & D1 & D4\\
    D5 & -(D2+D5) & D2\\
    D3 & D6 & -(D3 + D6)
    \end{array} [/tex]

    so that [tex]\vec{y} = [D1(y_3-y_1) + D4(y2_y1); D2(y_1- y_2) + D5(y_3-y_2) + ...][/tex]
    Now, I can design another series of circshifts and tranposes, but it won't work for the case above. I can't find a general set of operations that works for both

    This should work in general, for an nxn matrix.

    Thank you for your help.
     
  2. jcsd
  3. Jul 24, 2011 #2

    Pythagorean

    User Avatar
    Gold Member

    A friend and co-worker came up with this (F = functional matrix, A = association matix)

    F = transpose(A) - diag(sum(rows(A)))

    that is, if you take the sum of the rows of A and place it on a diagonal of an otherwise 0 matrix, then subtract that from the transpose of A, you have the functional matrix of diffusive coupling for that association matrix!
     
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook