Circuit gains

*To*: mathgroup at smc.vnet.net*Subject*: [mg110588] Circuit gains*From*: lavandenberg at gmail.com*Date*: Sat, 26 Jun 2010 08:41:37 -0400 (EDT)

Hello all, I am working on expressing the outcome of a characteristic polynomial in circuit gains. The gains are independent, however certain "entities" are common. This is expected and should result into more simple functions for the gains, however I cannot seem to achieve a "simple" substitution rule without getting into complex combinatorics. I want to avoid resorting into designing a combinatoric algorithms (as I will need to solve performance issues) and I am wondering if I am not missing the "obvious" solution. M is a matrix, a,b,c are functions however are not evaluated at this stage. I use Solve[CharacteristicPolynomial[M, lambda], lambda]] to derive something I am simplifying here for illustratory purposes (in reality this needs to work for systems with a rank of up to one-thousand: {{Lambda -> 1/(ab)}, {Lambda -> -1/(ab)}, {Lambda -> 1/c}} Then I simplify using: /. {1/b-> gain1, 1/c-> gain2, 1/(ab) -> gain3}; resulting in {{Lambda -> gain1/b}, {Lambda -> -gain3}, {Lambda -> gain2}} Please note there is a 1/b remaining in the first Lambda that should not be there as I can achieve full reduction into gains when using the same simplification rules in a different order. /. {1/(ab) -> gain3, 1/b-> gain1, 1/c-> gain2}; resulting in a full reduction (b remained in previous solution is now expressed in gain as well) into gain formula's {{Lambda -> gain3}, {Lambda -> -gain3}, {Lambda -> gain2}} The design of the system is such that it should be reduced to "gain only" expressions. The replacement rules are generated by an algorithm that calculates the gains of circuit components and I do not think I can do this in such a way that I can arrive at a specific ordering that will guide me to automatically resolve into a full reduction; so I am looking for something that will do an intellignet replace in such a way that the full reduction is made. This should be a fairly common feature so I am hoping there is a simple Mathematica (combination of) command for this. Much appreciated! Sander