I really want to draw the precession of mercury

2 次查看(过去 30 天)
clc;clear all;
a=10;
b=5;
lambda=.5;
v1=1/20;
v2=3;
t=0:.1:40;
x(t)=a.^2+b.^2 +a*cos(2*pi*v1*t)*cos(2*pi*v2*t)-lambda*b*sin(2*pi*v1*t)*sin(2*pi*v2*t);
y(t)=a.^2+b.^2 +a*sin(2*pi*v1*t)*cos(2*pi*v2*t)-lambda.*b*cos(2*pi*v1*t)*sin(2*pi*v2*t);
plot(x(t),y(t))
This is my program. but it's not running cause there is a dimension mismatch. can anybody tell me what did i do wrong?
  1 个评论
Meindert Norg
Meindert Norg 2018-1-9
In case you have not figured it out in the mean time:
  • Remove the element-wise ".^2"
a^2+b^2
  • add element wise multiplication for the vectors where 't' is used:
a*cos(2*pi*v1*t).*cos(2*pi*v2*t)
  • fix the way you plot it:
plot(x,y)
Here is the result:
clc;clear all;
a=10;
b=5;
lambda=.5;
v1=1/20;
v2=3;
t=0:.1:40;
x=a^2+b^2 + a*cos(2*pi*v1*t).*cos(2*pi*v2*t)-
lambda*b*sin(2*pi*v1*t).*sin(2*pi*v2*t);
y=a^2+b^2 + a*sin(2*pi*v1*t).*cos(2*pi*v2*t)-
lambda.*b*cos(2*pi*v1*t).*sin(2*pi*v2*t);
plot(x,y)

请先登录,再进行评论。

采纳的回答

Guillaume
Guillaume 2017-11-10
As the error message says
x(t)
is only valid if t is a real positive integer.
The simplest way to solve your problem is to get rid of the indexing of x and y which is completely meaningless
x = a^2 + b^2 + a*cos(2*pi*v1*t) .* cos(2*pi*v2*t) - ...
y = a^2 + b^2 + ...
plot(x, y)

更多回答(1 个)

M
M 2017-11-10
编辑:M 2017-11-10
First :
a.^2
the dot is useless as a is a scalar
but I think you should add a dot between the cos multiplication :
a*cos(2*pi*v1*t).*cos(2*pi*v2*t)
otherwise you will get an error.
Then, if you start at t=0, you will get an error as you're trying to acces
x(t)=x(0)
but Matlab indices should be positive integers.
  1 个评论
Asir Tushar
Asir Tushar 2017-11-10
x(t)=a^2+b^2 +a*cos(2*pi*v1*t).*cos(2*pi*v2*t)-lambda*b*sin(2*pi*v1*t).*sin(2*pi*v2*t);
y(t)=a^2+b^2 +a*sin(2*pi*v1*t).*cos(2*pi*v2*t)-lambda*b*cos(2*pi*v1*t).*sin(2*pi*v2*t);
i corrected the code like you said. still this message is showing for these two lines "Subscript indices must either be real positive integers or logicals.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by