No BSD License
-
...
sampler - function to sample density and velocities
-
...
sampler - function to sample density and velocities
-
FNewt(x,a)
Function used by the N-variable Newton's method
-
NaiveGE(a,b)
Forward elimination
-
bess(m_max,x)
Function to calculate of Bessel function
-
bess(m_max,x)
Function to calculate of Bessel function
-
colide(v,cell_n,...
colide - Function to process collisions in cells
-
colide(v,cell_n,...
colide - Function to process collisions in cells
-
fnewt(x,a)
Function used by the N-variable Newton's method
-
fund(x,n)
Return function value or derivative
-
fund(x,n)
Return function value or derivative
-
gravrk(s,time,GM)
The time is not used in this version
-
gravrk(s,time,GM)
The time is not used in this version
-
intrpf(xi,x,y)
Function to interpolate between data points
-
intrpf(xi,x,y)
Function to interpolate between data points
-
legndr(n,x)
Legendre polynomials
-
legndr(n,x)
Legendre polynomials
-
linreg(x,y,sigma)
Function to perform linear regression (fit a line)
-
linreg(x,y,sigma)
Function to perform linear regression (fit a line)
-
lorzrk(a,time,param)
Function to define the Lorenz model equations
-
lorzrk(a,time,param)
Function to define the Lorenz model equations
-
mover(x,v,npart, ...
mover - Function to move particles by free flight
-
mover(x,v,npart, ...
mover - Function to move particles by free flight
-
my_f(x,param)
Error function integrand
-
my_f(x,param)
Error function integrand
-
naivege(a,b)
x=naivege(a,b) performs naive (no pivoting) Gaussian elimination
-
pollsf(x, y, sigma, M)
Function to fit a polynomial to data
-
pollsf(x, y, sigma, M)
Function to fit a polynomial to data
-
rk4(x,t,tau,derivsRK,param)
Runge-Kutta integrator (4th order)
-
rk4(x,t,tau,derivsRK,param)
Runge-Kutta integrator (4th order)
-
rkA(x,t,tau,err,derivsRK,para...
Adaptive Runge-Kutta routine
-
rka(x,t,tau,err,derivsRK,para...
Adaptive Runge-Kutta routine
-
rombf(a,b,N,func,param)
Function to compute integrals by Romberg algorithm
-
rombf(a,b,N,func,param)
Function to compute integrals by Romberg algorithm
-
sorter(x,npart,ncell,L)
sorter - Function to sort particles into cells
-
sorter(x,npart,ncell,L)
sorter - Function to sort particles into cells
-
spinview(nviews,wait)
spinview - Routine to rotate a 3D plot
-
sprrk(a,time,param)
Function to compute 3 mass-spring system
-
sprrk(a,time,param)
Function to compute 3 mass-spring system
-
tri_GE(a,b)
Function to solve b = a*x by Gaussian elimination where
-
tri_GE(a,b)
Function to solve b = a*x by Gaussian elimination where
-
yt=sft(y)
Slow Fourier transform function
-
yt=sft(y)
Slow Fourier transform function
-
zeroj(m_order,n_zero)
Function which returns the zeros of the Bessel function J(x)
-
zeroj(m_order,n_zero)
Function which returns the zeros of the Bessel function J(x)
-
aftcs.m
-
aftcs.m
-
aftcs_p.m
-
balle.m
-
balle.m
-
balle_p.m
-
contents.m
-
contents.m
-
contents.m
-
contents.m
-
deriv.m
-
deriv.m
-
deriv_p.m
-
dftcs.m
-
dftcs.m
-
dftcs_p.m
-
dsmceq.m
-
dsmceq.m
-
dsmceq_p.m
-
dsmcne.m
-
dsmcne.m
-
dsmcne_p.m
-
factn.m
-
factn.m
-
facts.m
-
facts.m
-
fftpoi.m
-
fftpoi.m
-
fftpoi_p.m
-
galrkn.m
-
galrkn.m
-
galrkn_p.m
-
interp.m
-
interp.m
-
interp_p.m
-
jacobi.m
-
jacobi.m
-
jacobi_p.m
-
lorenz.m
-
lorenz.m
-
lorenz_p.m
-
lsftest.m
-
lsftest.m
-
lsftst_p.m
-
newtn.m
-
newtn.m
-
newtn_p.m
-
orbe.m
-
orbe.m
-
orbe_p.m
-
orbec.m
-
orbec.m
-
orbrk.m
-
orbrk.m
-
orbrka.m
-
orbrka.m
-
orthog.m
-
orthog.m
-
pendul.m
-
pendul.m
-
pendul_p.m
-
pendulv.m
-
pendulv.m
-
rndoff.m
-
rndoff.m
-
rndoff_p.m
-
schro.m
-
schro.m
-
schro_p.m
-
schrot.m
-
schrot.m
-
sftdem_p.m
-
sftdemo.m
-
sftdemo.m
-
sprfft.m
-
sprfft.m
-
sprfft_p.m
-
traffic.m
-
traffic.m
-
trafic_p.m
-
View all files
|
|
| orbe.m |
% orbe - Program to compute the orbit of a comet
% using the Euler method.
clear; help orbe; % Clear memory and print header
r0 = input('Enter initial radial distance - '); % (au)
r = [r0 0]; % Initial position is on x-axis
v0 = input('Enter initial tangential velocity - '); % (au/yr)
v = [0 v0]; % Initial velocity is in the y-direction
tau = input('Enter time step, tau - '); % (yr)
GM = 4*pi^2; % Grav. const. * Mass of Sun (au^3/yr^2)
mass = 1.; % Mass of projectile
%%%%% MAIN LOOP %%%%%%
time = 0;
nstep = 200; % Number of time steps
for istep=1:nstep
rplot(istep) = norm(r); % Record orbit for polar plot
thplot(istep) = atan2(r(2),r(1));
tplot(istep) = time; % Record time for plot
kinetic(istep) = .5*mass*norm(v)^2; % Record energies
potential(istep) = - GM*mass/norm(r);
% Calculate new position and velocity
accel = -GM*r/norm(r)^3; % Gravity
r = r + tau*v; % Euler step
v = v + tau*accel;
time = time + tau;
end
% Graph the trajectory of the comet
subplot(121)
polar(thplot,rplot,'+') % Polar plot of trajectory
grid % Include a grid on the plot
ylabel('Distance (AU)')
title('Orbital motion')
subplot(122)
totalE = kinetic + potential; % Total energy
plot(tplot,kinetic,'-.',tplot,potential,'--',tplot,totalE,'-')
xlabel('Time (yr)')
ylabel('Energy')
title('KE(dot); PE(dash); Total(solid)')
subplot(111)
|
|
Contact us at files@mathworks.com