作业帮 > 综合 > 作业

matlab解决微分方程问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/10/04 19:38:52
matlab解决微分方程问题

1、楼主确定这是Apollo的方程吗?请参考百度知道问题503781491、504869729(把网址中question后面的那一串数字换成给的这两个数).
 
2、按现有方程编写的参考代码如下:
function zd681023787504628332
% 参考百度知道问题503781491、504869729
options = odeset('RelTol',1e-4);
[t,x] = ode45(@Apollo,[0 4.5],[1.2;0;0;-1.04935751],options);
plot(x(:,1),x(:,2))%绘制x1和x3,也就是x和y的图形
title('Apollo卫星运动轨迹')
xlabel('X')
ylabel('Y')
 
function dx=Apollo(t,x)
% x(1)=x; x(2)=dx; x(3)=y; x(4)=dy;
% dx(1)=x(2)=dx; dx(3)=x(4)=dy;
% dx(2)=ddx;     dx(4)=ddy;
dx = zeros(4,1);
dx(1) = x(2);
dx(2) = ( 2*x(3)+10-2*x(1)*x(4)-6*x(1)*x(2)*x(4) ) / ( 2*x(4)+3*x(2) );
dx(3) = x(4);
dx(4) = ( x(3)+5-x(1)*x(4)+2*x(1)*x(4)^2 ) / ( 2*x(4)+3*x(2) );

仿真时间我设为4.5,时间稍长一些之后,速度非常慢,原因不明.
再问: 如果只进行数值求解呢?不绘制曲线 最好有图给参考一下,谢谢啦~
再答: 没看明白你的要求。【如果只进行数值求解呢?】上面我给的程序不就是数值求解吗?只是顺便画出了曲线而已。【不绘制曲线  最好有图给参考一下】,这句话让我感觉很晕。。。。。
再问: 我用了你给的步骤,但是可能自己有地方没对,还是得不出来。有图参考一下,就是如果你有matlab的截图- - 谢谢啦

再答: 我没给你步骤,原以为你知道该怎么运行程序呢。直接把标成红色的那部分代码保存成文件,然后运行就可以了,不知道你为什么这样运行。现在把m文件直接传给你(纠正一处小错误),请自行下载吧。 我上面说了,怀疑你的方程组有问题,所以就不贴图了。