Solving a system of multiple equations for multiple variables
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I'm trying to solve a system for the unknown variables, but it looks like my code is insufficient because of the long run time. I'm relatively new so my understanding is limited, and I'd like to know if my methods were along the right track. Also, how can I do this problem better? Thanks! (Apologies for the formatting, I don't know how to input this any better)

syms VT V1 V2 v1 v2 Re1 Re2 f1 f2 h
eqn1= v1== V1/(0.00125);
eqn2= v2== V2/0.00502;
eqn3= Re1== (39.92*v1)/0.001002;
eqn4= Re2== (79.84*v2)/0.001002;
eqn5= (1/f1^(1/2)) == -2*log(2.51/Re1*f1^(1/2));
eqn6 = (1/f2^(1/2)) == -2*log(2.51/Re2*f2^(1/2));
eqn7 = VT== V1+V2;
eqn8 = 8000==(VT*9790.38*h)/0.7;
h = 8;
sol = solve(eqn1, eqn2,eqn3,eqn4,eqn5,eqn6,eqn7,eqn8);
0 commentaires
Réponses (1)
John D'Errico
le 30 Avr 2017
Getting better. At least you made an effort this time.
But you have 8 equations, with 10 variables, one of which has a known value, thus h=8. But that leaves 8 essentially polynomial equations in 9 unknowns. You can't just "solve" such a problem, because infinitely many solutions may exist.
You will need to pick exactly one more variable to remain fixed. For example:
h = 8;
f1 = 17;
eqn1= v1== V1/(0.00125);
eqn2= v2== V2/0.00502;
eqn3= Re1== (39.92*v1)/0.001002;
eqn4= Re2== (79.84*v2)/0.001002;
eqn5= (1/f1^(1/2)) == -2*log(2.51/Re1*f1^(1/2));
eqn6 = (1/f2^(1/2)) == -2*log(2.51/Re2*f2^(1/2));
eqn7 = VT== V1+V2;
eqn8 = 8000==(VT*9790.38*h)/0.7;
sol = vpasolve(eqn1, eqn2,eqn3,eqn4,eqn5,eqn6,eqn7,eqn8)
sol =
struct with fields:
Re1: [1×1 sym]
Re2: [1×1 sym]
V1: [1×1 sym]
V2: [1×1 sym]
VT: [1×1 sym]
f2: [1×1 sym]
v1: [1×1 sym]
v2: [1×1 sym]
>> sol.Re1
ans =
11.683262215668314943450451980458
>> sol.Re2
ans =
1134868.0105447399597863690792349
>> sol.v1
ans =
0.00029325222294838808578439218553909
>> sol.v2
ans =
14.242707246566000983222412209372
2 commentaires
Karan Gill
le 1 Mai 2017
To learn MATLAB, try the doc. There's a nice Getting Started section for every part of MATLAB. Here's the Symbolic toolbox one: https://www.mathworks.com/help/symbolic/getting-started-with-symbolic-math-toolbox.html
About " vpasolve instead of solve", again the doc should tell you the difference between the two. Look at the vpasolve doc page: https://www.mathworks.com/help/symbolic/vpasolve.html
About " And when I tried out your version, I wasn't able to get numerical values ", you need to describe what happened when you tried John's code. Otherwise, it's hard for us to understand the problem.
Voir également
Catégories
En savoir plus sur Assumptions dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!