Modeling Motion of Earth with Matlab using ODE45

  • Thread starter PhysSci1
  • Start date
  • #1
1
0

Homework Statement


So I am trying to model the motion of the Earth around the Sun using ode45. I modeled this using an euler-cromer scheme, but I would like to get familiar with using a solver. I wrote the code for an Euler-cromer and it worked just fine. However, when I try to use the same equation that I derived for acceleration in the Euler scheme in the ODE, I get errors. I think it is because I am not quite sure how the inputs work for ODE. I have tried to figure it out by looking through resources on the internet, but I just can't figure it out.

Homework Equations


The equation I used was the vector form of acceleration of a mass due to another mass. This equation in matlab is

-G * Msun * R / (sum(R.*R)^(3/2)) where R = Psun - Current position (as vectors, [x y] - [x y]).

The Attempt at a Solution



This is my attempt, which provides this error:

In an assignment A(:) = B, the number of elements in A and B
must be the same.

Error in orbit (line 10)
dp(2) = -G * Msun * R / (sum(R.*R)^(3/2));

My function:
G = 6.673E-11/(1000^3);

Psun = [0 0];

Msun=1.988e30;

R = Psun - P(2);

M = 1.98892E30;

dp = zeros(2,2);

dp(1)= P(2);

dp(2) = -G * Msun * R / (sum(R.*R)^(3/2));

How I call it:

[T,Y] = ode45(@Orbit,[0, 3.15581e7],[1.5e8, 0, 0, 29.75]);
 

Answers and Replies

  • #2
DrClaude
Mentor
7,341
3,527
The problem you have has for degrees of freedom: ##x, y, \dot{x}, \dot{y}##. Your function is set up with only 2. It need to be able to take in a vector y of length 4, containing the 4 dof, and return a vector y' of length 4 also.
 

Related Threads on Modeling Motion of Earth with Matlab using ODE45

  • Last Post
Replies
2
Views
3K
  • Last Post
Replies
3
Views
2K
Replies
1
Views
2K
  • Last Post
Replies
5
Views
2K
  • Last Post
Replies
1
Views
8K
  • Last Post
Replies
2
Views
2K
Replies
0
Views
3K
Replies
1
Views
462
  • Last Post
Replies
5
Views
4K
  • Last Post
Replies
12
Views
5K
Top