Eu tentei:
>> dsolve("Dy=(x+2)/(x*(3-x))","y(1)=2","x")
E recebi esta resposta:
ans = (pi*5*i)/3 - (5*log(x - 3))/3 + (5*log(2))/3 + (2*log(x))/3 + 2
A resposta correta gerada manualmente é:
y = 2/3*log(x) -5/3*log(3-x) + (2+5/3*log(2))
Como faço para eliminar o número complexo na resposta do Matlab?
OK, tentei o seguinte:
>> 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
Respostas:
0 para resposta № 1Se o uso do matlab fornece uma resposta e o trabalho manual dá outra, não seja muito rápido para presumir que o matlab está errado.
Dito isto, é muito fácil obter a parte real de um número, não posso tentar, mas com a caixa de ferramentas simbólica acredito que você pode fazer:
real(y)