LikeLike

]]>In my work I need to provide the easiest possible installation for my undergraduate students. About half run mac os and half run windows.

I hope to avoid taking the mac users down the path to homebrew or macports, but rather provide precompiled install packages.

Do you have any experience making such install installation packages with Homebrew?

LikeLike

]]>LikeLike

]]>LikeLike

]]>For a matrix like you describe, I think you could use the lines below

I know they look awful and don’t really fit the description of “quick one-liner”

eigdiag(v):=apply(‘diag_matrix,flatten(makelist(makelist(part(v,1,1,j),i,1,part(v,1,2,j)),j,1,length(part(v,1,1)))));

and

eigU(v):=transpose(apply(‘matrix,makelist(makelist(flatten(part(v,2))[i],i,lsum(i,i,part(v,1,2))*j+1,lsum(i,i,part(v,1,2))*j+lsum(i,i,part(v,1,2))),j,0,lsum(i,i,part(v,1,2))-1)));

These aren’t entirely general either—

This fails in the event that maxima can’t find the eigenvectors, as with

A:matrix([3,6,9],

[2,4,5],

[3,2,1]);

and also fails in the case of a jordan block where there isn’t a full set of eigenvectors

A:matrix([1,1],[0,1])

LikeLike

]]>Thanks for the post describing how to use Maxima’s eigenvector and value functions. Unfortunately, there’s still a subtlety in Maxima’s output format that causes the macros you gave above to fail – that is, when Maxima returns vectors that have multiplicities greater than 1.

For example, consider the matrix:

M : matrix (

[1, kb, 0, 0],

[ka, 1, 0, 0],

[0, kb * (1 – kb), 1, 0],

[ka * (1 – ka), 0, 0, 1]

);

Maxima returns three eigenvalues for this matrix and lists the last as having two multiplicities. This breaks your macro.

Do you have any alternate versions that support multiplicities?

Thanks,

Larry

LikeLike

]]>LikeLike

]]>LikeLike

]]>LikeLike

]]>LikeLike

]]>