I am trying to determine the eigenvalues of matrixes occuring in circuit analysis problems symbolicly. Following is 2 examples of the kind of problems I want to solve in maxima matrix form. The first is the state variable matrix of a ladder RC circuit: m:matrix( [-(1/R1+1/R2)/Ca1, 1/(Ca1*R2), 0,0,0], [1/(Ca2*R2), -(1/R2+1/R3)/Ca2, 1/(Ca2*R3), 0,0], [0,1/(Ca3*R3), -(1/R3+1/R4)/Ca3, 1/(Ca3*R4), 0], [0,0,1/(Ca4*R4), -(1/R4+1/R5)/Ca4, 1/(Ca4*R5)], [0,0,0,1/(Ca5*R5), -1/(R5*Ca5)]) The second is the state variable matrix of a RLC circuit: m:matrix( [-1/CA,R1/CA, R2/CA], [-R1/L1,-R1*R2/L1,R1*R2/L1], [-R2/L2,-R1*R2/L2,-R1*R2/L2])/(R1+R2) >From inspection of the circuit diagrams, I know that the the second is going to have a natural frequency of aproximatly sqrt(1/((L1+L2)*CA)). The first will have all real roots, approximatly equal to the series combination of the capacitors taken pairwise times the resistance in series with them. See the attached gifs. Even if I could solve for the eigenvalues directly, a complicated expression is not very useful, what is more useful is partial sums of a (possibly) infinite series in terms of the time constants of the circuit. I have thought of a few methods to solve this problem: First, expand the determinant, and approximate the roots from the smallest to largest. This treats the roots unsymmetricly. Also, I have to solve for the smallest roots much more accuratly then the larger ones. I could also use a iteration method starting from each of the approximate roots, but it isn't clear that the method would converge to the correct root. I was thinking of a Jacobi type method that would work on non symmetric matrixes, however I am not sure how to use the apriori information about the eigenvalues. I was also going to look at older methods for hand computation which were designed to minimize work. Does anyone know of anyone working on this kind of a problem? Any ideas? Thanks, Dan Stanger
Attached file: c2.gif
Attached file: c1.gif