Azzera filtri
Azzera filtri

Solving non linear equations

1 visualizzazione (ultimi 30 giorni)
Ghanim
Ghanim il 2 Feb 2024
Commentato: Ghanim il 6 Feb 2024
Hi all,
The folloiwng code solves non linear equations for T1, T2, T3 and T4 as well as for J1, J2 and J3. I am only interested on the tempreture:
It returns an array solution that includes several answers for each T. How Can I obtain the exact solution (one single soution) for each T?
syms J1 J2 J3 T1 T2 T3 T4
Jm = 5077.12;
Js = 301.32;
Je = 330.136;
A2 = 449200;
A4 = 519000;
Fms = 0.305;
Fm1 = 0.45;
Fme = 0.245;
F1s = 0.610;
F1m = 0.389;
eps = 0.85;
K2 = 15;
L2 = 0.03;
eq1 = (Jm - Js)*(A2*Fms) + (Jm - J1)*(A2*Fm1) + (Jm - Je)*(A2*Fme) == 0;
eq2 = -(5.67e-8*T1^4 - J1)*(A4*eps)/(1-eps) + (J1 - Js)*(A4*F1s) + (J1 - Jm)*(A4*F1m) == 0;
eq3 = -(5.67e-8*T1^4 - J1)*(A4*eps)/(1-eps) + (T1-T2)*K2*A4/L2 == 0;
eq4 = -(T1 - T2)*K2/L2 + (5.67e-8*T2^4 - J2)*eps/(1-eps) == 0;
eq5 = -(5.67e-8*T2^4 - J2)*eps/(1-eps) + (J2 - J3) == 0;
eq6 = -(J2-J3) + (5.67e-8*T3^4 - J3)*eps/(1-eps) + 185.95 == 0;
eq7 = -(5.67e-8*T3^4 - J3)*eps/(1-eps) + (T3 - T4)*K2/L2 == 0;
eqs = [eq1, eq2, eq3, eq4, eq5, eq6, eq7];
vars = [J1, J2, J3, T1, T2, T3, T4];
sol = solve(eqs, vars);
T1_val = real(double(sol.T1))
T1_val = 16×1
684.3838 684.3838 684.3838 684.3838 0 0 0 0 0 0
T2_val = real(double(sol.T2))
T2_val = 16×1
666.9262 666.9262 666.9262 666.9262 -17.4576 -17.4576 -17.4576 -17.4576 -17.4576 -17.4576
T3_val = real(double(sol.T3))
T3_val = 16×1
456.1979 -0.0000 -0.0000 -456.1979 508.4679 508.4679 42.8456 42.8456 -42.8456 -42.8456
T4_val = real(double(sol.T4))
T4_val = 16×1
439.1121 -17.0857 -17.0857 -473.2836 491.3822 491.3822 25.7598 25.7598 -59.9313 -59.9313

Risposta accettata

Torsten
Torsten il 3 Feb 2024
Modificato: Torsten il 3 Feb 2024
Each of the 16 quadruples (T1(i),T2(i),T3(i),T4(i)) (i = 1,...,16) constitutes a solution for your system of equations.
You must check which of the 16 quadruples are physical. E.g. the first quadruple (with the corresponding values for J1, J2 and J3 printed) would be
syms J1 J2 J3 T1 T2 T3 T4
Jm = 5077.12;
Js = 301.32;
Je = 330.136;
A2 = 449200;
A4 = 519000;
Fms = 0.305;
Fm1 = 0.45;
Fme = 0.245;
F1s = 0.610;
F1m = 0.389;
eps = 0.85;
K2 = 15;
L2 = 0.03;
eq1 = (Jm - Js)*(A2*Fms) + (Jm - J1)*(A2*Fm1) + (Jm - Je)*(A2*Fme) == 0;
eq2 = -(5.67e-8*T1^4 - J1)*(A4*eps)/(1-eps) + (J1 - Js)*(A4*F1s) + (J1 - Jm)*(A4*F1m) == 0;
eq3 = -(5.67e-8*T1^4 - J1)*(A4*eps)/(1-eps) + (T1-T2)*K2*A4/L2 == 0;
eq4 = -(T1 - T2)*K2/L2 + (5.67e-8*T2^4 - J2)*eps/(1-eps) == 0;
eq5 = -(5.67e-8*T2^4 - J2)*eps/(1-eps) + (J2 - J3) == 0;
eq6 = -(J2-J3) + (5.67e-8*T3^4 - J3)*eps/(1-eps) + 185.95 == 0;
eq7 = -(5.67e-8*T3^4 - J3)*eps/(1-eps) + (T3 - T4)*K2/L2 == 0;
eqs = [eq1, eq2, eq3, eq4, eq5, eq6, eq7];
vars = [J1, J2, J3, T1, T2, T3, T4];
sol = solve(eqs, vars);
J1_val = real(double(sol.J1(1)))
J1_val = 1.0899e+04
J2_val = real(double(sol.J2(1)))
J2_val = 9.6771e+03
J3_val = real(double(sol.J3(1)))
J3_val = 948.2529
T1_val = real(double(sol.T1(1)))
T1_val = 684.3838
T2_val = real(double(sol.T2(1)))
T2_val = 666.9262
T3_val = real(double(sol.T3(1)))
T3_val = 456.1979
T4_val = real(double(sol.T4(1)))
T4_val = 439.1121

Più risposte (1)

Walter Roberson
Walter Roberson il 3 Feb 2024
syms J1 J2 J3 T1 T2 T3 T4
Jm = 5077.12;
Js = 301.32;
Je = 330.136;
A2 = 449200;
A4 = 519000;
Fms = 0.305;
Fm1 = 0.45;
Fme = 0.245;
F1s = 0.610;
F1m = 0.389;
eps = 0.85;
K2 = 15;
L2 = 0.03;
eq1 = (Jm - Js)*(A2*Fms) + (Jm - J1)*(A2*Fm1) + (Jm - Je)*(A2*Fme) == 0;
eq2 = -(5.67e-8*T1^4 - J1)*(A4*eps)/(1-eps) + (J1 - Js)*(A4*F1s) + (J1 - Jm)*(A4*F1m) == 0;
eq3 = -(5.67e-8*T1^4 - J1)*(A4*eps)/(1-eps) + (T1-T2)*K2*A4/L2 == 0;
eq4 = -(T1 - T2)*K2/L2 + (5.67e-8*T2^4 - J2)*eps/(1-eps) == 0;
eq5 = -(5.67e-8*T2^4 - J2)*eps/(1-eps) + (J2 - J3) == 0;
eq6 = -(J2-J3) + (5.67e-8*T3^4 - J3)*eps/(1-eps) + 185.95 == 0;
eq7 = -(5.67e-8*T3^4 - J3)*eps/(1-eps) + (T3 - T4)*K2/L2 == 0;
eqs = [eq1, eq2, eq3, eq4, eq5, eq6, eq7];
vars = [J1, J2, J3, T1, T2, T3, T4];
sol = solve(eqs, vars);
vals = double(subs([T1, T2, T3, T4], sol));
valid_vals = vals(all(vals > 0, 2),:)
valid_vals = 1×4
684.3838 666.9262 456.1979 439.1121

Categorie

Scopri di più su Partial Differential Equation Toolbox in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by