- #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]);