He intentado:
>> dsolve("Dy=(x+2)/(x*(3-x))","y(1)=2","x")
Y obtuve esta respuesta:
ans = (pi*5*i)/3 - (5*log(x - 3))/3 + (5*log(2))/3 + (2*log(x))/3 + 2
La respuesta correcta generada a mano es:
y = 2/3*log(x) -5/3*log(3-x) + (2+5/3*log(2))
¿Cómo elimino el número complejo en la respuesta de Matlab?
OK, probé esto:
>> dsolve(diff(y)==(x+2)/(x*(3-x)),y(1)==2,x)
ans =
(pi*5*i)/3 - (5*log(x - 3))/3 + (5*log(2))/3 + (2*log(x))/3 + 2
>> real(ans)
ans =
(2*log(abs(x)))/3 + (5*log(2))/3 - (5*log(abs(x - 3)))/3 + 2
>> pretty(ans)
2 log(|x|) 5 log(2) 5 log(|x - 3|)
---------- + -------- - -------------- + 2
3 3 3
Respuestas
0 para la respuesta № 1Si su uso de matlab le da una respuesta y su trabajo manual le da otra, no se apresure a suponer que es culpa de matlab.
Dicho esto, obtener la parte real de un número es muy fácil, no puedo probarlo, pero con la caja de herramientas simbólica creo que puedes hacer lo siguiente:
real(y)