Matlab - Por favor necesito resolver esta ecuación no lineal urgente, el "solve" arroja un resultado malo

   
Vista:

Por favor necesito resolver esta ecuación no lineal urgente, el "solve" arroja un resultado malo

Publicado por Rodolfo Rojas M. junkhead.lzp@gmail.com (3 intervenciones) el 13/09/2012 19:29:53
Esta es la ecuación:

H1==H2+8*(1/(1.8*log10(((E1/D1)/3.7)^1.11+6.9/(4*Q/(pi*D1*1.004*10^-6))))^2)*L1*Q^2/(pi^2*D1^5*9.8)

Se ve super fea pero la resolví con la calculadora usando solve y me tira el resultado correcto que es 0.0011, pero con matlab no hay caso no he podido me tira un resultado incorrecto (-0.000876). Por favor ayuda necesito urgente saber como resolver esta ecuación con matlab.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO

Por favor necesito resolver esta ecuación no lineal urgente, el

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3439 intervenciones) el 13/09/2012 20:10:49
Mejorar la pregunta.
Cuales son las variales?.
Cuales son los datos?.
Y las variables q son datos, cuales son sus valores numericos?.


Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion Matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com
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

Por favor necesito resolver esta ecuación no lineal urgente, el

Publicado por Rodolfo Rojas M. (3 intervenciones) el 13/09/2012 20:18:25
Disculpa, estos son los datos y sus valores:

>> syms Q
>>
>> L1=4500;
>> D1=4*10^-2;
>> E1=0.4*10^-3;
>> H1=250;
>> H2=150;

La variable es Q; me corrijo el valor encontrado con la calculadora es 0.0008285. Con matlab no logro resolverla.

Agradecería tu ayuda, Saludos.
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

Por favor necesito resolver esta ecuación no lineal urgente, el

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3439 intervenciones) el 13/09/2012 22:41:36
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
clear all
%http://www.lawebdelprogramador.com/foros/Matlab/1349185-Por_favor_necesito_resolver_esta_ecuacion_no_lineal_urgente%2c_el_%22solve%22_arroja_un_resultado_malo.html
L1=4500;
D1=4*10^(-2);
E1=0.4*10^(-3);
H1=250;
H2=150;
syms Q;
fun=H1-(H2+8*(1/(1.8*log10(((E1/D1)/3.7)^1.11+6.9/(4*Q/(pi*D1*1.004*10^-6))))^2)*L1*Q^2/(pi^2*D1^5*9.8));
%pretty(fun)
Q=solve(fun)
f=inline(fun);
imagenMatlab=f(Q)
imagenCalculadora=f(0.0011)
q=linspace(-0.002,0.002,100);
figure(gcf)
plot(q,f(q))
text(double(Q),double(f(Q)),'*- Matlab')
 
text(0.0011,f(0.0011),'o Calculadora')
hold on
plot(q,zeros(1,length(q)),'r')
t=axis;
plot([0 0],[t(3) t(4)],'r')
display('Como la funcion es una parabola y cruza eje X dos veces')
display('el primer cruce lo hace en el segundo cuadrante');
display('el segundo cruce lo hace en el primer cuadrante');
display('por lo tanto tienes dos raices, uno positivo y otro negativo');
display('la calculadora halla la raiz positiva')
display('Matlab halla la raiz negativa con la funcion solve')
display('Pero con la funcion fzero de Matlab hallamos los 2 raices')
 
b='100 - (29514790517935282585600000*x^2*log(10)^2)/(26309221195639329*log(65776738890907749/(302231454903657293676544*x) + 3251814938179753/2305843009213693952)^2)';
format long
raiz_negativa_con_Matlab=fzero(b,[-0.001 0])
raiz_positiva_con_Matlab=fzero(b,[0 0.001])
text(raiz_positiva_con_Matlab,f(raiz_positiva_con_Matlab),'*+ Matlab')
hold off



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
>> dsolve2
 
Q =
 
-0.00087623148212959325139144009381258
 
 
imagenMatlab =
 
-0.000000000000008443482716549040807151970389789
 
 
imagenCalculadora =
 
 -73.924895102073435
 
Como la funcion es una parabola y cruza eje X dos veces
el primer cruce lo hace en el segundo cuadrante
el segundo cruce lo hace en el primer cuadrante
por lo tanto tienes dos raices, uno positivo y otro negativo
la calculadora halla la raiz positiva
Matlab halla la raiz negativa con la funcion solve
Pero con la funcion fzero de Matlab hallamos los 2 raices
 
raiz_negativa_con_Matlab =
 
    -8.762314821295931e-04
 
 
raiz_positiva_con_Matlab =
 
     8.289743292721008e-04




Saludos.
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
programador en matlab
Servicios de programacion Matlab
jjcc94@hotmail.com

http://matlabcaballero.blogspot.com
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

Por favor necesito resolver esta ecuación no lineal urgente, el

Publicado por Rodolfo Rojas M. (3 intervenciones) el 17/09/2012 20:50:09
Gracias man.
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