There seems no built-in support for Y-Δ conversion (electrical engineering). Any idea on how to implement this function?

  • 5
    $\begingroup$ Please expand the question to include a description of the Y-Δ conversion (or a link to one) and an example problem to apply it to. It would also be good to include your own implementation attempt - otherwise it can appear as if you've made no effort to tackle the problem yourself. $\endgroup$ Dec 5, 2015 at 12:13
  • $\begingroup$ If the network is represented as a graph then you may use the YTYGraphTransforms package. $\endgroup$
    – C. E.
    Dec 6, 2015 at 3:49

2 Answers 2


You can write your own functions to perform the transformations. Below I show two functions using the transformations shown here.

The function D2Y is for converting Delta network to Y shaped network. It takes the three resistor value as its arguments and gives out the corresponding value for Y network. Similarly Y2D does the other way round.

 D2Y[ra_, rb_, rc_] := 
 1/(Total[{ra, rb, rc}])*Times @@@ Reverse@Subsets[{ra, rb, rc}, {2}]

 Y2D[r1_, r2_, r3_] := 
 Total[Times @@@ Subsets[{r1, r2, r3}, {2}]]*(1/{r1, r2, r3})

You can use the function as follows:

 D2Y[10, 20, 30]

(*{10, 5, 10/3}*)

 Y2D[10, 20, 30]

(*{110, 55, 110/3}*)
  • 3
    $\begingroup$ Compact versions for fun: D2Y = ##/{##}/(+##)&; Y2D = Tr[##/{##}]/{##}&; $\endgroup$ Dec 5, 2015 at 14:25

and more in detail

enter image description here

g1 = 1/(1/R13 + 1/(R12 + R23)) == R10 + R30;
g2 = 1/(1/R12 + 1/(R13 + R23)) == R10 + R20;
g3 = 1/(1/R23 + 1/(R12 + R13)) == R20 + R30;

Delta network

Solve[{g1, g2, g3}, {R12, R13, R23}]

Y shaped network

Solve[{g1, g2, g3}, {R10, R20, R30}]

enter image description here


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.