Ask Your Question
0

solve with many variables

asked 2017-05-11 10:51:34 +0100

this post is marked as community wiki

This post is a wiki. Anyone with karma >750 is welcome to improve it.

hi please i have a problem i have a MATRIX contains many variables, and i want to find the eigenvalues of this matrix in function of this variables i let you my matrix here and my code

x,a,b,c,s1,s2,s3,s4,s5,s6=var('x a b c s1 s2 s3 s4 s5 s6')
k=matrix([[-3*a-b+c*s1,a,a,0,a,0],
[a,-2*a-b+c*s2,a,0,0,0],
[a,a,-4*a-b+c*s3,a,a,0],
[0,0,a,-2*a-b+c*s4,a,0],
[a,0,a,a,-4*a-b+c*s5,a],
[0,0,0,0,a,-a-b+c*s6]]
)
B=matrix(k- x*matrix.identity(6))
eq(a,b,c,s1,s2,s3,s4,s5,s6)=det(B)
solve(eq==0,x)

but i can get the solution but if i give to the variable c=0 or b=0 i get the solution so please can you help me

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2017-05-11 20:03:23 +0100

dan_fulea gravatar image

I had to start an answer, since a comment would not fit in the given space. The present "answer" is only showing that the resulting equation of degree six -- even in some particular cases -- is "too generic" to offer a possibility of expressing solutions by "simple means", e.g. radicals (combined with simple algebra.) First of all, let us rewrite the code, so that it can be copy-pasted.

x,a,b,c,s1,s2,s3,s4,s5,s6 = var( 'x a b c s1 s2 s3 s4 s5 s6' )

k = matrix( [
    [-3*a-b+c*s1,a,a,0,a,0],
    [a,-2*a-b+c*s2,a,0,0,0],
    [a,a,-4*a-b+c*s3,a,a,0],
    [0,0,a,-2*a-b+c*s4,a,0],
    [a,0,a,a,-4*a-b+c*s5,a],
    [0,0,0,0,a,  -a-b+c*s6]
] )

B = matrix( k - x*matrix.identity(6) )
print k

And the matrix k is:

[c*s1 - 3*a - b              a              a              0              a              0]
[             a c*s2 - 2*a - b              a              0              0              0]
[             a              a c*s3 - 4*a - b              a              a              0]
[             0              0              a c*s4 - 2*a - b              a              0]
[             a              0              a              a c*s5 - 4*a - b              a]
[             0              0              0              0              a   c*s6 - a - b]

A first question is: Is this the matrix to be studied?

Now we want to subtract $x$ on the diagonal, apply the determinant, and solve with respect to $x$. Then we can forget about $b$. (It has only a shifting contribution of the eigenvalues.) We can set without loss of generality $b=0$. The variable $c$ is the next one that we should get rid of. Since $s_1,s_2,\dots,s_6$ are general enough, we can also set either $c=0$, the degenerated case which removes the dependency on the $s$-variables, or $c=1$ else. Than, replacing $s_1-3a$ by "an other" $s_1$ we have to understand the eigenvalues of a matrix $M$ of the following "too general" shape:

M = matrix( [
    [s1,a,a,0,a,0],
    [a,s2,a,0,0,0],
    [a,a,s3,a,a,0],
    [0,0,a,s4,a,0],
    [a,0,a,a,s5,a],
    [0,0,0,0,a,s6]
] )
M

We get:

[s1  a  a  0  a  0]
[ a s2  a  0  0  0]
[ a  a s3  a  a  0]
[ 0  0  a s4  a  0]
[ a  0  a  a s5  a]
[ 0  0  0  0  a s6]

If $a=0$, a very special case, we have of course no problems. Else, we can multiply the whole matrix by $1/a$ and get an equivalent problem, namely to find the eigenvalues of the matrix:

M = matrix( [
    [s1,1,1,0,1,0],
    [1,s2,1,0,0,0],
    [1,1,s3,1,1,0],
    [0,0,1,s4,1,0],
    [1,0,1,1,s5,1],
    [0,0,0,0,1,s6]
] )
M

Explicity:

[s1  1  1  0  1  0]
[ 1 s2  1  0  0  0]
[ 1  1 s3  1  1  0]
[ 0  0  1 s4  1  0]
[ 1  0  1  1 s5  1]
[ 0  0  0  0  1 s6]

Some rows / columns are simpler than the other ones. For instance, the row / column through the entry $s_6$ has only one non-diagonal $1$. This matrix is still too complicated to allow a general formula for its eigenvalues. For instance, let us plug in some explicit values for $s_1,s_2,\dots,s_6$:

def MM( s1, s2, s3, s4, s5, s6 ):
    return matrix( [
        [s1,1,1,0,1,0],
        [1,s2,1,0,0,0],
        [1,1,s3,1,1,0],
        [0,0,1,s4,1,0],
        [1,0,1,1,s5,1],
        [0,0,0,0,1,s6]
    ] )

MM( 0,0,0,0,0,0 ).charpoly()

This gives:

x^6 - 8*x^4 - 6*x^3 + 7*x^2 + 4*x - 1

Well, the above polynomial has no "obvious roots", that can be expressed by radicals. So the more general equation also has no "obvious roots". Which is the origin of the question?

edit flag offensive delete link more

Comments

thanks you for your time may be i didnt understand you'r answer so we start with my matrix k which contains many variables im asking if i can compute all eigenvalues of this matrix such that if we suppose that x is an eigenvalue of this matrix i want to find some function f such that x=f(a,b,c,s1,..s6) and i need that this function must be sumbolic exxample

let A=matrix([[a,0];[0 b]]) f(a,b)=A.charpoly()=(a-x)*(b-x) f(a,b)=0 thats mean x=a or x=b what is a simple example but with my metrics I can't get some results in this forme

simo1993 gravatar imagesimo1993 ( 2017-05-12 01:50:21 +0100 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2017-05-11 10:51:34 +0100

Seen: 758 times

Last updated: May 11 '17