文档详情

MATLAB行星运动仿真程序.docx

发布:2019-01-27约2.03千字共3页下载文档
文本预览下载声明
clear all; close all; G=6.67*10^-11; % The universal gravitational constant m = [1.989e30,3.5844e23,4.89868e24,5.974e24,6.5714e23,1.89854e27,5.68725e26,8.72204e25,1.02753e26]; % An array of masses n = length(m); Number_of_planets = n % The number of masses x_p = [0,58340100000,1.07705e11,1.4959e11,2.27377e11,7.77868e11,1.42709e12,2.87512e12,4.49668e12]; % An array of x positions y_p= [0,0,0,0,0,0,0,0,0]; % An array of y positions x_v = [0,0,0,0,0,0,0,0,0]; % An array of x velocities y_v = [0,47856.46,34961.72,29780,23883.56,12924.52,9618.94,6789.84,5419.96]; % An array of y velocities T= 365*24*60*60;%(2*pi*G*m(1))/(x_v(1)^3); dt=360*60*60*10; colordef black; ph = plot(x_p,y_p,.,MarkerSize,30); xlabel(distance(km)); ylabel(distance(km)); title(Planetary motion); for a=0:dt:1000*T %loop for all masses with respect to time for k=1:n %loop for individual masses calculating neccessary quantities dx = x_p - x_p(k); % difference in x positions dy = y_p - y_p(k); % difference in y positions mag = (dx.^2 + dy.^2).^0.5; % magnitude of the distance between the 2 masses f = ((G*m(k)*m)./(mag.^2)); % total force fx_old =(f.*dx./mag); fx_old(k)= 0; fx = sum (fx_old); %Summing the total force in x direction for each planet fy_old =(f.*dy./mag); fy_old(k)= 0; fy = sum (fy_old); %Summing the total force in y direction for each planet a_x = fx/m(k); % calculating acceleration change in x direction a_y = fy/m(k); % calculating acceleration change in y direction x_v(k) = x_v(k) + dt*a_x; % calculating velocity change in x direction y_v(k) = y_v(k) + dt*a_y; % calculating velocity change in y direction x_p_new(k)= x_p(k)+dt*x_v(k); % calculating new x positions y_p_new(k)= y_p(k)+dt*y_v(k); % calculating new y positions end x_p=x_p_new; y_p=y_p_new; % overwriting old positions with new positions pause(0.1) plot(x_p,y_p,.,MarkerSize,30) axis([-(10^15) 10^15 -(10^15) 10^15]) xlabel(distance(km)); ylabel(distance(km)); title(Planetary motion); drawnow % Plotting graph
显示全部
相似文档