0
$\begingroup$

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!

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

3 Answers 3

5
$\begingroup$
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  *)
$\endgroup$
3
$\begingroup$
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]
$\endgroup$
2
  • $\begingroup$ Your solution gives the warning info like Power::infy: and Infinity::indet in V8. $\endgroup$
    – xyz
    Commented Nov 26, 2015 at 8:49
  • $\begingroup$ @ShutaoTANG Also in v9, it's just because for one of the possible solutions vx/ix is 0/0. $\endgroup$
    – xzczd
    Commented Nov 26, 2015 at 10:08
3
$\begingroup$

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

enter image description here

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.