# Manipulation linear systems of equations

I have the following system of equations:

i1 = ix - β*ib;
i2 = (β + 1)*ib;
i3 = ix + ib;
vx = i1*Rc + i3*Rb;
v1 = i2*Rϵ + i3*Rb;
v1 = -ib*rπ;


I tried using:

Solve[i1 == i3 - ib - ib β && i2 == ib (1 + β) &&
ix == i3 - ib && v1 == -ib rπ &&
vx == i3 Rb + i3 Rc - ib Rc - ib Rc β &&
ib Rϵ (1 + β) == -i3 Rb - ib rπ, {vx}]


but it gave me no result.

I would like to eliminate the variable v1 and solve for vx/ix in terms of the other variables. I've tried everything I could but I just couldn't get it to work. Would someone please help me?

Thanks!

• Have you tried Reduce[ ]instead? Nov 26, 2015 at 3:36
• How exactly should I apply it on the system of equations. I am new to Mathematica. Nov 26, 2015 at 3:39
• You wrote that Solve[ ]yourself :) .Replace Solve with Reduce Nov 26, 2015 at 3:41
• I attempted to apply reduce and eliminated v1. However, when I apply solve, it gives a null answer. QQ Nov 26, 2015 at 3:46

eqns = {
i1 == ix - β*ib,
i2 == (β + 1)*ib,
i3 == ix + ib,
vx == i1*Rc + i3*Rb,
v1 == i2*Rϵ + i3*Rb,
v1 == -ib*rπ};

vars = Cases[eqns, _Symbol, Infinity] // Union

(*  {i1, i2, i3, ib, ix, Rb, Rc, Rϵ, rπ, v1, vx, β}  *)

Length /@ {vars, eqns}

(*  {12, 6}  *)


With six equations you can pick any six variables to be eliminated. This will leave one equation in the six remaining variables.

eqn = Eliminate[eqns, {v1, i1, i2, i3, Rϵ, rπ}]

(*  ib Rb + ix Rb + ix Rc - ib Rc β == vx  *)


Or rearranging,

FullSimplify /@ (#/ix & /@ eqn)

(*  Rc + ((ib + ix) Rb - ib Rc β)/ix == vx/ix  *)

eqn = ReleaseHold[Hold[i1 = ix - β*ib;
i2 = (β + 1)*ib;
i3 = ix + ib;
vx = i1*Rc + i3*Rb;
v1 = i2*Rϵ + i3*Rb;
v1 = -ib*rπ] /. Set -> Equal /. CompoundExpression -> List]

var = Complement[Cases[eqn, _Symbol, Infinity] // DeleteDuplicates, {v1}]

ans = {ToRules@Reduce[Eliminate[eqn, v1], var]}
vx/ix /. ans


To understand why your attempt failed, try the following code sample:

Solve[{a == 1, b == 2}, a]
Solve[{a == 1, b == 2}, {a, b}]
Solve[{a == 1, b == 2}, a, MaxExtraConditions -> All]

• Your solution gives the warning info like Power::infy:  and Infinity::indet in V8.
– xyz
Nov 26, 2015 at 8:49
• @ShutaoTANG Also in v9, it's just because for one of the possible solutions vx/ix is 0/0. Nov 26, 2015 at 10:08

You seem to be looking for the transistor-circuit with the variables beta and the resistors Rb, Rc, rPi and Re, in other words, Transferfunction vx / ix, expressed with these variables.

I believe this is your solution:

i1 = ix - β ib;
i2 = (β + 1) ib;
i3 = ix + ib;
eq1 = vx == i1*Rc + i3*Rb;
eq2 = -ib*rπ == i2*Rϵ + i3*Rb;

h = vx/ix /. Solve[{eq1, eq2}, {vx, ix}] // FullSimplify


• Dear @guest, welcome to the site. I've merged your two answers. You will have a better experience if you register your account. Nov 26, 2015 at 22:28