MATLAB: Renvoyer une solution spécifique vpasolve

Bonjour,
Pour le code suivant:
 
Q = 4.3; s_0 = 0.003; n = 0.025; L = 30; k_e = 0.5; C_D = 0.65; H = 3.6; g = 9.81;
syms D deltaH
A = pi*D^2/4;
V = Q/A
R_H = D/4;
eqn1 = deltaH == H - D + L*s_0
eqn2 = deltaH == (k_e + (2*g*n^2*L)/(R_H^(4/3)) + 1)*((Q^2)/(2*g*A^2))
[deltaH, D] = vpasolve(eqn1 == eqn2, [deltaH, D],3.5)
 
Résoudre cela donne la mauvaise solution. Lorsque nous représentons graphiquement les deux équations, nous pouvons voir qu’il existe deux solutions. Je veux retourner la première solution et j’ai donc utilisé la supposition initiale de 3,5, mais vpasolve donne toujours l’autre solution.
How can I get the first solution i.e. 1<D<1.5 ?
Merci,
Brian

Meilleure réponse

  • Essaye ça
     

    sol = vpasolve([eqn1, eqn2], [deltaH, D], [0 1.25]) % give two values for initial guess, for [delhaH D]
    %^ use comma. Using == in this context is incorrect.