matlab:求解 dy/dx-x*sin(x+y)=0;y(1)=0
1个回答
展开全部
因为当你输入
dsolve('Dy=x*sin(x+y)','y(1)=0')时,注意,没有指明自变量,matlab默认自变量是t,因此x被看作了常数,此时y(1)=0可能是个有问题的初值,所以不行。这也就是楼上的结果为什么会出现t的原因。
本题正解:
>>
syms
x
y;
>>
dsolve('Dy=x*sin(x+y)','x')
Warning:
Explicit
solution
could
not
be
found.
>
In
dsolve
at
330
ans
=
[
empty
sym
]
说明matlab解不出来,变一下形。
令z=x+y,则dy/dx=dz/dx-1,原方程化为dz/dx-1-xsinz=0,
z(1)=1
>>
dsolve('Dz=x*sinz+1','z(1)=1','x')
ans
=
1/2*x^2*sinz+x-1/2*sinz
然后将z换回x+y就行了。
dsolve('Dy=x*sin(x+y)','y(1)=0')时,注意,没有指明自变量,matlab默认自变量是t,因此x被看作了常数,此时y(1)=0可能是个有问题的初值,所以不行。这也就是楼上的结果为什么会出现t的原因。
本题正解:
>>
syms
x
y;
>>
dsolve('Dy=x*sin(x+y)','x')
Warning:
Explicit
solution
could
not
be
found.
>
In
dsolve
at
330
ans
=
[
empty
sym
]
说明matlab解不出来,变一下形。
令z=x+y,则dy/dx=dz/dx-1,原方程化为dz/dx-1-xsinz=0,
z(1)=1
>>
dsolve('Dz=x*sinz+1','z(1)=1','x')
ans
=
1/2*x^2*sinz+x-1/2*sinz
然后将z换回x+y就行了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询