求解常微分方程Dy=1/(x*y+x^3*y^3),如果可以的话也请告诉我为何matlab无法算出,这是《常微分方程》习题2.2的15题,请写出必要过程.解如图2另外,我试过用matlab解>> dsolve('Dy=1/(x*y+x^3*y^3)','x')输出结果

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/01 23:41:51

求解常微分方程Dy=1/(x*y+x^3*y^3),如果可以的话也请告诉我为何matlab无法算出,这是《常微分方程》习题2.2的15题,请写出必要过程.解如图2另外,我试过用matlab解>> dsolve('Dy=1/(x*y+x^3*y^3)','x')输出结果
求解常微分方程Dy=1/(x*y+x^3*y^3),如果可以的话也请告诉我为何matlab无法算出,
这是《常微分方程》习题2.2的15题,请写出必要过程.
解如图2
另外,我试过用matlab解
>> dsolve('Dy=1/(x*y+x^3*y^3)','x')
输出结果:
Warning:Explicit solution could not be found.
> In dsolve at 120
ans =
[ empty sym ]

求解常微分方程Dy=1/(x*y+x^3*y^3),如果可以的话也请告诉我为何matlab无法算出,这是《常微分方程》习题2.2的15题,请写出必要过程.解如图2另外,我试过用matlab解>> dsolve('Dy=1/(x*y+x^3*y^3)','x')输出结果
首先告诉你这样一个事实:matlab符号求解功能的工作核心是maple.但,在符号求解方面要比它的核心(maple)弱很多的.这样,当一些复杂的方程能够用maple解出时,但matlab却无能为力了.matlab只能进行一些比较(相对于maple)简单的符号计算;结合此题,是非线性常微分方程,比较复杂,因此,一般地,不能够给出显示解.输出结果中的“Explicit solution”是显示解的意思.但,我经过maple(版本14)求解之后,是可以给出结果的,但,是隐式解(“Implicit solution”),且用了maple自身内定义的函数(LambertW函数),要给出具体的解,还必须有初值条件的.
maple命令如下:
dsolve(diff(y(x),x) = 1/(x*y(x)+x^3*y(x)^3),y(x))
积分结果如下:
y(x) = sqrt(LambertW(exp(1/x^2)*exp(-1)*_C1)*x^2-1+x^2)/x,y(x) = -sqrt(LambertW(exp(1/x^2)*exp(-1)*_C1)*x^2-1+x^2)/x
由结果可以看出,积分结果有两个.
且建议你:如果想学好数学的话,还是学maple比较好,它的符号运算能力很强.matlab在数值计算方面很好.两者可以结合起来.但,如果你既想学好符号计算(数学分析)和数值计算(数值分析),但,又想只学一门数学软件的话,可以考虑mathematica,它两者兼具,且均非常优秀.

syms x y
z=dsolve('Dy=1/(x*y+x^3*y^3)','x')
z =

(lambertw(exp(-1)*exp(1/x^2)*C1)*x^2+x^2-1)^(1/2)/x
-(lambertw(exp(-1)*exp(1/x^2)*C1)*x^2+x^2-1)^(1/2)/x
>> pretty(z)
...

全部展开

syms x y
z=dsolve('Dy=1/(x*y+x^3*y^3)','x')
z =

(lambertw(exp(-1)*exp(1/x^2)*C1)*x^2+x^2-1)^(1/2)/x
-(lambertw(exp(-1)*exp(1/x^2)*C1)*x^2+x^2-1)^(1/2)/x
>> pretty(z)

[ / 1 2 2 \1/2 ]
[ |lambertw(exp(-1) exp(----) C1) x + x - 1| ]
[ | 2 | ]
[ \ x / ]
[ ----------------------------------------------- ]
[ x ]
[ ]
[ / 1 2 2 \1/2]
[ |lambertw(exp(-1) exp(----) C1) x + x - 1| ]
[ | 2 | ]
[ \ x / ]
[- -----------------------------------------------]
[ x ]
>> 估计这种答案拿不出手,自己转换一下那个lambertw吧

收起