Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用dsolve和Matlab消除答案中的复数_Matlab_Differential Equations - Fatal编程技术网

用dsolve和Matlab消除答案中的复数

用dsolve和Matlab消除答案中的复数,matlab,differential-equations,Matlab,Differential Equations,我试过: >> dsolve('Dy=(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 正确的答案是: y = 2/3*log(x) -5/3*log(3-x) + (2+5/3*log(2)) 如何消除Matlab答案中的复数 好的,试过这个: >> dsolve(diff(y)==(x+2)/(x*(3

我试过:

>> dsolve('Dy=(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
正确的答案是:

y = 2/3*log(x) -5/3*log(3-x) + (2+5/3*log(2))
如何消除Matlab答案中的复数

好的,试过这个:

>> 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

如果您使用matlab给出了一个答案,而您的手工劳动给出了另一个答案,那么不要太快地认为matlab是错误的

也就是说,获取数字的真实部分非常容易,我无法尝试,但使用符号工具箱,我相信您可以做到:

real(y)

看看上面我得到了什么。看来是解决问题的办法。