Matlab - Colebrook-White phenomenological equation

 
Vista:
Imágen de perfil de Jon
Val: 354
Ha aumentado 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Colebrook-White phenomenological equation

Publicado por Jon (161 intervenciones) el 14/01/2021 10:03:01
Buenos días Bernardo,

Efectivamente, el resultado dado por Jose es correcto. Para obtener el resultado, hay que plantear una iteración.

Aquí tienes mi solución, donde podrás identificar una estructura general para resolver iteraciones.

Espero que te sirva de ayuda. Si tienes cualquier duda, me dices.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
%% Datos
% Constantes
epsilon = 1.5e-4;       % [m]
Dh      = 0.1;          % [m]
Re      = 5000;         % [-]
 
% Ecuaciones como simbólicos
syms f;
eq1 = 1 / sqrt(f);
eq2 = -2 * log10(epsilon/(3.71*Dh) + 2.51/(Re*sqrt(f)));
 
%% Iteración
i       = 1;            % Inicialización del contador para el bucle
x       = 0.1;          % Valor de x inicial para empezar el bucle
error	= 0.2;          % Error absoluto inicial para entrar en el bucle
 
while error > 0.1
    % Calcular f
    f = 1 / x^2;
 
    % Evaluar parte izquierda
    eq1_sol = double (subs(eq1, f));
 
    % Evaluar parte derecha
    eq2_sol = double (subs(eq2, f));
    % Calcular error
 
    error = abs(eq1_sol - eq2_sol);
 
    % Aumentar x
    x = x + 0.1;
 
    % Aumentar contador
    i = i + 1;
end
 
%% Resultado
fprintf('f = %.3f (%d iteraciones)\n\n',f,i);

Un saludo,

Jon
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Colebrook-White phenomenological equation

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 14/01/2021 16:39:41
1
2
3
4
5
syms f positive
e=0.00015;  dh=0.10; re=5000;
g= sqrt(1/f)+2*log10(e/(3.71*dh)+2.51/(re*sqrt(f)));
fplot(g,[0.01 0.1])
raiz=fzero(@(f)sqrt(1/f)+2*log10(e/(3.71*dh)+2.51/(re*sqrt(f)))  ,[0.000001  100])

1
2
3
4
5
>> raizces_de_una_funcion_14_01_21_foro
 
raiz =
 
    0.0390

Saludos
JOSE JEREMIAS CABALLERO
Asesoría Online en Matlab
Asesorías online en Métodos Numéricos con Matlab, Octave, Java, Freemat, Scilab , Python y Excel.
[email protected]


https://programacioncaballero.blogspot.com
https://www.facebook.com/programacioncaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar