5
$\begingroup$

I have a set of 4 equations that are all equal.

    400 (T1 - 283) == 12200 (T2 - T1) == 3560 (Ts - T2) == 2340 Exp[-710.45/Ts] (333 - Ts)

I've tried using Solve and NSolve to solve this system, but it's not working. Solve gives "Solve was unable to solve the system with inexact coefficients or the system obtained by direct rationalization of inexact numbers present in the system. Since many of the methods used by Solve require exact input, providing Solve with an exact version of the system may help." NSolve gives the same input back as the output. Reduce runs without stopping.

To be honest I'm just really confused about what it even means when you have multiple sets of equations that are all equal to each other. Are there sufficient equations to solve for all the unknowns? Are these equations even considered independent?

(First time posting here, I apologise for being totally clueless, if I'm asking the wrong questions or providing insufficient information) Many thanks for the kind soul(s) who may help me out.

$\endgroup$

2 Answers 2

11
$\begingroup$

The system of equations presented are transcendental equations. Solve and NSolve generally doesn't work with these types. Instead, FindRoot can be used.

First, eliminate variables T1 and T2.

eqns = {400 (T1 - 283) == 12200 (T2 - T1), 
   12200 (T2 - T1) == 3560 (Ts - T2), 
   3560 (Ts - T2) == 2340 Exp[-710.45/Ts] (333 - Ts)};
tsEqn = Eliminate[eqns , {T1, T2}];
(*E^(-710.45/Ts) (727389. + 108580. E^(710.45/Ts)) Ts == 
 E^(-710.45/Ts) (2.42221*10^8 + 3.07281*10^7 E^(710.45/Ts))*)

Then, solve the transcendental equation using FindRoot to get Ts.

tsSol = FindRoot[tsEqn, {Ts, 3}]
(*{Ts -> 302.509}*)

Now, solving the first two equations with tsSol, we get T1 and T2 as 300.036 and 300.595, respectively.

Edit:

Instead of eliminating T1 and T2 variables to get a single equation and then using FindRoot, we can directly use FindRoot for all the equations directly.

FindRoot[eqns, {T1, 1}, {T2, 1}, {Ts, 1}]
(*{T1 -> 300.036, T2 -> 300.595, Ts -> 302.509}*)
$\endgroup$
5
$\begingroup$

Amplifying on @AnjanKumar's answer

eqns = {400 (T1 - 283) == 12200 (T2 - T1), 12200 (T2 - T1) == 3560 (Ts - T2), 
    3560 (Ts - T2) == 2340 Exp[-710.45/Ts] (333 - Ts)} // Rationalize;
tsEqn = Eliminate[eqns, {T1, T2}];

sol1 = Reduce[{tsEqn, Ts > 0}, Ts, Reals] // ToRules

(*  {Ts -> Root[{-242220537 + 
             727389*#1 + 
             E^(14209/(20*#1))*
               (-30728140 + 108580*#1) & , 
         302.50906126910556200203256760\
     314296316865`20.602059973044152}]}  *)

Verifying the partial solution

tsEqn /. sol1 // FullSimplify

(*  True  *)

sol = {sol1, Reduce[(eqns /. sol1) // FullSimplify, {T1, T2}] // ToRules} // 
   Flatten // N[#, 10] &

(*  {Ts -> 302.5090613, T1 -> 300.0363027, T2 -> 300.5948700}  *)

Verifying the complete solution

eqns /. sol

(*  {True, True, True}  *)

EDIT: The rationalized equations can be solved directly with Reduce

sol = Reduce[eqns, {Ts, T12, T2}, Reals, Backsubstitution -> True] //
   N[#, 10] & // ToRules

(*  {T1 -> 300.0363027, Ts -> 302.5090613, T2 -> 300.5948700}  *)

eqns /. sol

(*  {True, True, True}  *)
$\endgroup$

Your Answer

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

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