Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2008-03-19, 13:25   #1
huangboat
初级会员
 
注册日期: 2007-05-08
帖子: 5
声望力: 0
huangboat 正向着好的方向发展
默认 [分享]三体问题_无聊写的

function r=sky(t,x)
M=1000;
m1=1;
m2=0.05;
r1=(x(1).^2+x(2).^2+x(3).^2).^1.5;
r2=(x(7).^2+x(8).^2+x(9).^2).^1.5;
r12=((x(1)-x(7)).^2+(x(2)-x(8)).^2+(x(3)-x(9)).^2).^1.5;
r=[x(4);x(5);x(6);-x(1)*M./r1+(x(7)-x(1))*m2./r12;-x(2)*M./r1+(x(8)-x(2))*m2./r12;-x(3)*M./r1+(x(9)-x(3))*m2./r12;...
x(10);x(11);x(12);-x(7)*M./r2+(x(1)-x(7))*m1./r12;-x(8)*M./r2+(x(2)-x(8))*m1./r12;-x(9)*M./r2+(x(3)-x(9))*m1./r12];


clc
clear
w=1e-9*ones(1,12);
q= odeset('RelTol',1e-7,'AbsTol',w);
x0=[2.93;0;0;0;18.45;0;3.1;0;0;0.5;18.70;1];
x1=[2;0;0;0;10;0;10;0;0;0;8;0];
[t,x]=ode45('sky',[0 50],x0,q);
figure(1)
mm=plot3(x(:,1),x(:,2),x(:,3),'r',x(:,7),x(:,8),x(:,9),'b','LineWidth',1)
axis([-5 5 -5 5 -1 1]*2)
xlabel('x')
ylabel('y')
zlabel('z')


figure(2)
r1=(x(:,1).^2+x(:,2).^2+x(:,3).^2).^0.5;
plot(t,r1,'.','MarkerSize',1)
title('m1')


figure(3)
r2=(x(:,7).^2+x(:,8).^2+x(:,9).^2).^0.5;
plot(t,r2,'.','MarkerSize',1)
title('m2')





n=length(t);

mm=plot3(x(:,1),x(:,2),x(:,3),'r.',x(:,7),x(:,8),x(:,9),'b.','LineWidth',1,'MarkerSize',10)
axis([-5 5 -5 5 -1 1])
xlabel('x')
ylabel('y')
zlabel('z')
r1=x(:,1);
r2=x(:,2);
r3=x(:,3);
h1=x(:,7);
h2=x(:,8);
h3=x(:,9);
echo on
set(mm,'erasemode','none'); % none normal xor background
for i=1:n
set(mm,'xdata',r1(i),'ydata',r2(i),'zdata',r3(i),'Color','b','MarkerSize',1)
set(mm,'xdata',h1(i),'ydata',h2(i),'zdata',h3(i),'Color','r','MarkerSize',1)
drawnow;
end
echo off
huangboat 当前离线   回复时引用此帖
 

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 21:34


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.