# Solving a system with three unknowns

I am trying to solve a system with 3 equations 3 unknowns. I write this following code

Solve[{Subscript[\[Phi], 1]/Subscript[c, o] - Subscript[a, 1] - Subscript[z, o]/(
y - Subscript[n, j] Subscript[c, j] - Subscript[n, o] Subscript[c, o] - Subscript[n, u] Subscript[c, u]) == 0, Subscript[\[Phi], 1]/Subscript[c, u] - Subscript[a, 2] - Subscript[z, u]/(y - Subscript[n, j] Subscript[c, j] - Subscript[n, o] Subscript[c, o] - Subscript[n, u] Subscript[c, u]) == 0, Subscript[\[Phi], 1]/Subscript[c, j] - Subscript[a, 3] - Subscript[z, j]/(y - Subscript[n, j] Subscript[c, j] - Subscript[n, o] Subscript[c, o] - Subscript[n, u] Subscript[c, u]) == 0}, {Subscript[c, o], Subscript[c,u], Subscript[c, j]}]


The code just turns and gives nothing. What can I do to solve this system? Thanks in advance.

Without subscripts Mathematica(v12, Windows 10) solves

Solve[{ \[Phi]1 /co - a1 - zo /(y - nj cj - no co - nu cu) ==0, \[Phi]1/cu - a2 - zu/(y - nj cj - no co - nu cu) ==0, \[Phi]1/cj - a3 - zj/(y - nj cj - no co - nu cu) == 0}, {co,cu,cj}]


the equation in 36s !

Clear["Global*"]


As a general rule avoid using subscripts (or superscripts) for anything other than display. You can use indexed variables that are displayed as subscripts.

Format[a[s_]] := Subscript[a, s];
Format[c[s_]] := Subscript[c, s];
Format[n[s_]] := Subscript[n, s]; Format[z[s_]] := Subscript[z, s];
Format[ϕ[1]] = Subscript[ϕ, 1];

eqns = {-a[1] - z[o]/(y - c[j]*n[j] -
c[o]*n[o] - c[u]*n[u]) + ϕ[1]/c[o] == 0,
-a[2] - z[u]/(y - c[j]*n[j] -
c[o]*n[o] - c[u]*n[u]) + ϕ[1]/c[u] == 0,
-a[3] - z[j]/(y - c[j]*n[j] -
c[o]*n[o] - c[u]*n[u]) + ϕ[1]/c[j] == 0}


$Assumptions = {c[o] != 0, c[u] != 0, c[j] != 0, (y - c[j]*n[j] - c[o]*n[o] - c[u]*n[u]) != 0}; sol = Solve[Join[eqns,$Assumptions], {c[o], c[u], c[j]}];


There are four solutions

Length@sol

(* 4 *)


Each solution is extremely complicated

LeafCount /@ sol

(* {2356900, 2356900, 2356900, 2356900} *)


EDIT: As suggested by Daniel Lichtblau in a comment, using Quartics -> False gives simpler forms using Root expressions

sol2 = Solve[Join[eqns, \$Assumptions], {c[o], c[u], c[j]},
Quartics -> False];

LeafCount /@ sol2

(* {57308, 57308, 57308, 57308} *)

• I think if you add Quartics->False the solutions become much smaller, expressed in terms of Root` functions. – Daniel Lichtblau Oct 13 '20 at 16:34
• @DanielLichtblau - Thanks. Updated. – Bob Hanlon Oct 13 '20 at 17:04