Beruflich Dokumente
Kultur Dokumente
Fourth Laws”
Nicolas Ratier, Maya Markova
Abstract: - This paper proposes an implementation in Maple language of the Kirchhoff’s third law
and its dual, the so–called Kirchhoff’s fourth law. These laws, stated in graph theory language,
allows one to compute symbolically any network functions of linear passive circuits.
Key-Words: - Symbolic, Computation, Kirchhoff’s Laws, Network, Graph, Maple.
G1 G2
R0 R1 R2 G5
I0 c d
R5 G0
c d E5
I5 G3 G4
E0 R3 R4
b
The trees and their associated cotrees are The trees and their associated cotrees are
given in Fig. 7 and 8. By inspection of sub- given in Fig. 7 and 8. By inspection of sub-
graphs on Fig. 2, 3 and 8, the current I 5 is: graphs on Fig. 5, 6 and 7, the voltage E 5 is:
+R2 R3 − R1 R4 +G1 G4 − G2 G3
I5 = E0 E5 = I0
R3 R4 R5 + R 2 R3 R5 + · · · + R 0 R1 R3 G0 G1 G2 + G 0 G1 G4 + · · · + G 2 G4 G5
(7) (8)
7 Algorithm Computation of third law (Eq. 1)
The theoretical statements of the so–called third Imp1 is the resistance of the branch through
and fourth Kirchhoff’s laws (Eq. 1 and 4) are which the voltage generator is inserted. Imp2
intricate and one needs some time to get accus- is the resistance of the branch through which
tomed to it. At the opposite the algorithms [5] the current is measured. G is the graph of the
to compute them are straitforward and lead to circuit.
very concise Maple programs.
KirchhoffThirdLaw := proc(Imp1,Imp2,G)
local Tmp1,Tmp2,Tmp3,Tmp4,Num,Den:
Computation of D Tmp1 := CoTrees(G);
1. Compute the determinant of the nodal resis- Tmp2 := map(proc(x,y) if member(y, x) then
tance matrix. x minus {y}: fi: end, Tmp1, Imp1);
Tmp3 := map(proc(x,y) if member(y, x) then
2. The denominator D is the complement of x minus {y}: fi: end, Tmp1, Imp2);
each term. Tmp4 := Tmp2 intersect Tmp3;
Den := convert(map(proc(x)
Computation of N convert(x,‘*‘): end, Tmp1),‘+‘);
Num := convert(map(proc(x)
1. Choose those terms of D that contain R k and LoopSign(Imp1,Imp2,x,G)
divide each of them by Rk . *convert(x,‘*‘): end, Tmp4),‘+‘);
2. Choose those terms of D that contain R l and RETURN(Num/Den):
divide each of them by Rl . end:
Example
The circuit depicted in Fig. 4 is defined and
analysed by the following Maple code.
> new(G):
> addvertex({a,b,c,d},G):
> addedge([b,a],names=eG0,G):
> addedge({a,c},names=eG1,G):
> addedge({a,d},names=eG2,G):
> addedge({c,b},names=eG3,G):
> addedge({d,b},names=eG4,G):
> addedge([d,c],names=eG5,G):
> KirchhoffFourthLaw(eG0,eG5,G);
(-eG3*eG2+eG1*eG4)/(eG0*eG1*eG2
+eG0*eG1*eG4+eG3*eG2*eG4+eG3*eG2*eG5
+eG3*eG1*eG5+eG0*eG1*eG5+eG0*eG2*eG5
+eG5*eG2*eG4+eG0*eG4*eG5+eG0*eG3*eG2
+eG0*eG3*eG4+eG3*eG1*eG2+eG0*eG3*eG5
+eG2*eG1*eG4+eG3*eG1*eG4+eG5*eG1*eG4)
9 Conclusion
The unrecognized Kirchhoff’s third and fourth
laws have been recalled in this paper. These
laws allow one to compute network functions,
of linear passive circuits, in straight formulas.
The statement of these two laws have been de-
tailed as they are stated in a formalism which is
unusual to most scientists from the electronics
community. A very concise Maple program to
compute them have been proposed.
aO ?OOO aO ? aO ? aO OOO
?? OOO ?? ?? OOO
?? OOO ?? ?? OOO
? OO ? ? OO
1 ???2 OOOO 1 ??? 1 ??? 2 OOOO
O 5 O
0 c d 0 c od 0 co d 0 c d
ooo
4oooo 3
oo
ooo
ooo
b b b b
aO OOO aO aO aO
OOO
OOO
OO
2 OOOO
5 O 5 5
0 co d 0 c od 0 co d 0 co od
ooo ooo
3 4oooo 3 4oo o
o
oo oo
ooo ooo
ooo ooo
b b b b
a ?OOO a ?OOO a? a?
?? OOO ?? OOO ?? ??
?? OOO ?? OOO ?? ??
? OO ? OO ? ?
1 ???2 OOOO 1 ???2 OOOO 1 ??? 1 ???
O O 5
c d c od c od co d
ooo ooo
3 4 ooo 3 4oooo 3
ooo oo
oo o ooo
ooo ooo
b b b b
a? a OOO a OOO a OOO
?? OOO OOO OOO
?? OOO OOO OOO
? OO OO OO
1 ??? 2 OOOO 2 OOOO 2 OOOO
5 O 5 O 5 O
co od c od co d co od
ooo ooo ooo
4oo o
o 3 4oooo 3 4oooo
oo oo oo
ooo ooo ooo
ooo ooo ooo
b b b b
a a OOO a OOO a?
OOO OOO ??
OOO OOO ??
OO OO ?
2 OOOO 2 OOOO 1 ???
5 5 O/ O 5
c od c d c c
oo d od
/ /
ooo oo ooo
3 4oooo 3 3 4oooo 4oooo
oo ooo oo
ooo oo ooo
ooo ooo ooo
b b b b
a? a ?OOO a ?OOO a ?OOO
?? ?? OOO ?? OOO ?? OOO
?? ?? OOO ?? OOO ?? OOO
? ? OO ? OO
1 ??? 1 ???2 OOOO
? OO
1 ???2 OOOO 1 ???2 OOOO
5 O/ O O
c od c d c od c d
ooo ooo
3 4oooo 4oooo 3
oo oo
ooo ooo
ooo ooo
b b b b
aO aO aO OOO aO OOO
OOO OOO
OOO OOO
OO OO
2 OOOO 2 OOOO
5 5 5 O/ O
0 c od
/ 0 c /d 0 c d 0 c d
ooo oooo
4oooo 3 4ooo o
oo oo
ooo ooo
ooo ooo
b b b b
aO OOO aO ? aO ? aO ?
OOO ?? ?? ??
OOO ?? ?? ??
OO ? ?
1 ???
?
2 OOOO 1 ??? 1 ???
O 5
0 c d 0 c /d 0 c od 0 c d
ooo
3 4oooo 3
oo
ooo
ooo
b b b b