How could I make a script for this ecuation where i can solve for f?

28 Ansichten (letzte 30 Tage)
Jorge
Jorge am 20 Nov. 2024 um 21:39
Kommentiert: Torsten vor etwa 22 Stunden
  5 Kommentare
Walter Roberson
Walter Roberson vor etwa 22 Stunden
Bearbeitet: Walter Roberson vor etwa 22 Stunden
rng(655321)
epsilon = rand
epsilon = 0.3140
D = rand
D = 0.3864
Re = rand
Re = 0.1855
eqn = @(x) x + 2*log10(epsilon/D/3.7+2.51*x/Re);
X = fzero(eqn, [0 1e5])
X = 0.0533

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Walter Roberson
Walter Roberson vor etwa 24 Stunden
Bearbeitet: Walter Roberson vor etwa 22 Stunden
syms f epsilon D Re
Q = @(v) sym(v);
eqn = 1/sqrt(f) == -Q(2.0) * log(epsilon/D/Q(3.7) + Q(2.51)/(Re*sqrt(f)))
F = solve(eqn, f)
Warning: Solutions are only valid under certain conditions. To include parameters and conditions in the solution, specify the 'ReturnConditions' value as 'true'.
disp(char(F))
(86248369*D^2)/(1000*Re*epsilon - 18574*wrightOmega((500*Re*epsilon)/(9287*D) - log(251/(50*Re)))*D)^2
wrightOmega is a function in the Symbolic Toolbox
rng(655321)
epsilon = rand
epsilon = 0.3140
D = rand
D = 0.3864
Re = rand
Re = 0.1855
f = subs(F)
disp(char(vpa(f)))
322.8497917132456879511724468922
subs(eqn)
disp(char(vpa(ans)))
0.055654430712142653567619972363646 == 0.055654430712142653567619972363646

Community Treasure Hunt

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

Start Hunting!

Translated by