Моделдеу нәтижелері
Көрсетілген
алгоритм
бойынша
есептеу
үшін
MATLAB-та
төмендегідей бағдарлама құрылып, ол m-файл етіп сақтап қойылды. Оны кез
келген кезде MATLAB жұмысшы ортасынан шақыруға болады. Бағдарлама
планеталардың а, е, t
0
орбита элементтері бойынша олардың траекториясын
есептейді және оны анимация түрінде бейнелейді.
Күн жүйесінде 9 ірі планета бар екендігі белгілі (Күннен алыстауы
ретімен): Меркурий, Шолпан, Жер, Марс, Юпитер, Сатурн, Уран, Нептун,
Плутон. Бұл планеталар екі топқа бөлінеді: ішкі және сыртқы планеталар.
Орбиталары Жер орбитасының ішінде жатқандары (Меркурий және Шолпан)
ішкі планеталар, ал орбиталары Жер орбитасының сыртында жатқандары
(Марстан бастап әрі қарай қалғандары) сыртқы планеталар делінеді. Сол
себепті моделдеу үшін 1 ішкі планета (Шолпан), 1 сыртқы планета (Марс)
және Жер қарастырылды. Әрине Шолпан мен Марс орнына кез келген басқа
планеталарды да алуға болады. Жер және бұл екі планетаның орбита
элементтері [5]:
Жер:
a=1 а.б.
e=0.0167
T=365.2422 тәулік
Шолпан: a=0.7233 а.б.
e=0.0068
T=224.7 тәулік
Марс:
a=1.5237 а.б.
e=0.0934
T=686.98 тәулік.
Олардың траекториясын бір-бірінен ажырату үшін Жер орбитасы көк,
Шолпан – қызыл және Марс - қара түстермен сызылған.
Осы бағдарламаны талдап көрелік:
function planeta
a1=1
e1=0.0167
T1=365.2422 % Жер
a2=1.5237
e2=0.0934
T2=686.98 % Марс
a3=0.7233
e3=0.0068
T3=224.7 % Шолпан
%---------------------------------------
t0=0;
% бастапқы уақыт
eps=1.D-11;
nk=5
Nmax=10000;
dt=0.1;
% уақыт қадамы
t=0:dt:nk*T2;
% -------------------
dlt_E1=1;
M1=2*pi*(t-t0)/T1;
% орташа аномалия
E1=M1;
while dlt_E1>eps
dlt1=E1-e1*sin(E1)-M1;
if(abs(dlt1) else
dlt_E1=dlt1/(1-e1*cos(E1));
E1=E1-dlt_E1;
end
end
% -------------------
dlt_E2=1;
M2=2*pi*(t-t0)/T2;
E2=M2;
while dlt_E2>eps
dlt2=E2-e2*sin(E2)-M2;
if(abs(dlt2) else
dlt_E2=dlt2/(1-e2*cos(E2));
E2=E2-dlt_E2;
end
end
% -------------------
dlt_E3=1;
M3=2*pi*(t-t0)/T3;
E3=M3;
while dlt_E3>eps
dlt3=E3-e3*sin(E3)-M3;
if(abs(dlt3) else
dlt_E3=dlt3/(1-e3*cos(E3));
E3=E3-dlt_E3;
end
end
%---------------------------------------
ytg=sqrt(1+e1)*tan(E1/2);
xtg=sqrt(1-e1);
v1=2*atan2(ytg,xtg);
% 3 планета үшін ақиқат аномалия
if abs(v1)<0
v1=v1+2*pi;
end
ytg=sqrt(1+e2)*tan(E2/2);
xtg=sqrt(1-e2);
v2=2*atan2(ytg,xtg);
if abs(v2)<0
v2=v2+2*pi;
end
ytg=sqrt(1+e3)*tan(E3/2);
xtg=sqrt(1-e3);
v3=2*atan2(ytg,xtg);
if abs(v3)<0
v3=v3+2*pi;
end
%---------------------------------------
r1=a1*(1-e1.*cos(E1));
x1=r1.*cos(v1);
y1=r1.*sin(v1);
r2=a2*(1-e2.*cos(E2));
% радиус-вектор
x2=r2.*cos(v2);
y2=r2.*sin(v2);
r3=a3*(1-e3.*cos(E3));
x3=r3.*cos(v3);
y3=r3.*sin(v3);
%---------------------------------------
axis square
%
квадраттық координаттар жүйесін сызу
plot(x1,y1,'b-')
hold on
grid on
plot(x2,y2,'k-')
plot(x3,y3,'r-')
% планета орбиталары
%---------------------------------------
h=plot(0,0,'.y')
set(h,'MarkerSize',60);
h1=plot(x1(1),y1(1),'.b');
set(h1,'EraseMode','xor','MarkerSize',30);
h2=plot(x2(1),y2(1),'.k');
set(h2,'EraseMode','xor','MarkerSize',40);
% Жер белгісі
h3=plot(x3(1),y3(1),'.r');
set(h3,'EraseMode','xor','MarkerSize',20);
%---------------------------------------
axis square
k=0;
while k<=nk*Nmax
k=k+1;
set(h1, 'XData', x1(k), 'Ydata', y1(k));
set(h2, 'XData', x2(k), 'Ydata', y2(k));
set(h3, 'XData', x3(k), 'Ydata', y3(k));
drawnow;
end
Сөйтіп плаенталар қозғалысын моделдеу бағдарламасы аяқталды. Оны
орындау үшін MATLAB жұмысшы ортасынан бағдарлама аты – планета
командасы беріледі. Оның нәтижесінде анимациялық суретті көруге болады
(12-сурет).
Мұнда, сурет ортасындағы үлкен сары дөңгелек Күнді, ал 3 орбита
ортадан шетке қарай сәйкес түрде Шолпан, Жер және Марс орбиталарын
бейнелейді.
Анимацияны тоқтату үшін Ctrl-C немесе Ctrl-Break түймелерін басу
керек. Кез келген уақытта бұл суретті айналтырып, түрлі проекцияларда
көруге болады. MATLAB-тың бұл мүмкіндіктері өз кезегінде түрлі
құбылыстардың моделін жан-жақты көруге, оқушыларға демонстрация
жасауға мүмкіндік береді.
12-сурет. Үш планета анимациясы.
ӘДЕБИЕТТЕР
1. Мартынов Н.Н., Иванов А.П.. MATLAB 5.х. Вычисления, визуализация,
программирование. – М.: Кудриц-Образ, 2000.
2. Потемкин В.Г. MATLAB 5 для студентов. – М.: Диалог-МИФИ, 1998.
3. Дьяконов В.П. MATLAB. Учебный курс/ – СПб.: Питер, 2001.
0>0>0>
Достарыңызбен бөлісу: |