作业帮 > 数学 > 作业

微分方程组matlab

来源:学生作业帮 编辑:拍题作业网作业帮 分类:数学作业 时间:2024/04/30 06:16:08
微分方程组matlab
m*y''=a+b*f*x'+c*sqrt(x'^2+y'^2)*y'
m*x''=b*f*y'+c*sqrt(x'^2+y'^2)*x'
(符号表示不规范,sqrt(x'^2+y'^2)表示x,y的平方开根号)
dsolve('m*D2y-a-b*f*Dx-sqrt(Dx*Dx+Dy*Dy)*Dy','m*D2x-b*f*Dy-c*sqrt(Dx*Dx+Dy*Dy)*Dx')
正常情况使用上面的命令就可以解决问题
但是很惋惜的时,该题Matalb无能为力
下面时该题的数值解法代码,有很详细的注释,并且运行通过
%取a=1;b=1;f=1;c=1;
%假设初值条件都为0
%取状态变量x1=x,x2=x',x3=y,x4=y'
% x1'=x2
% x2'=(b*f*x4+c*sqrt(x2^2+y'^2)*x2)/m
% x3'=x4
% x4'=(a+b*f*x2+c*sqrt(x2^2+y'^2)*x4)/m
%by dynamic
%2009.1.31
a=1;b=1;f=1;c=1;m=1;
odefun=@(t,x)[x(2)
(b*f*x(4)+c*sqrt(x(2)^2+x(4)^2)*x(2))/m
x(4)
(a+b*f*x(2)+c*sqrt(x(2)^2+x(4)^2)*x(4))/m]
[t,y]=ode45(odefun,[0 10],[0 0 0 0])