Matlab Code Vektorisieren < Mathe-Software < Mathe < Vorhilfe
|
Hi ich habe folgenden Matlab Code geschrieben um Elliptische Bahnen zu berechnen:
function out = OrbitalPlane(t)
[mm] M_0 [/mm] = -.176639230099;
ecc = .158626304474E-01;
sqrta = .515375770378E+04;
t_oe = .2016E+06;
GM = 3.986005E+14;
err = 7.2921151467E-05;
[mm] t_i [/mm] = t - t_oe;
[mm] M_i [/mm] = [mm] M_0 [/mm] + [mm] (sqrt(GM/sqrta^6))*t_i;
[/mm]
[mm] E_i1=M_i;
[/mm]
[mm] E_i=0;
[/mm]
while [mm] (abs(E_i-E_i1)> [/mm] 1e-13); %loop for [mm] E_i%
[/mm]
[mm] E_i=E_i1;
[/mm]
E_i1 = [mm] M_i [/mm] + ecc * [mm] sin(E_i);
[/mm]
end
[mm] f_i [/mm] = [mm] atan(sqrt(1-ecc^2) [/mm] * [mm] sin(E_i)/(cos(E_i) [/mm] - ecc));
[mm] r_i [/mm] = [mm] sqrta^2 [/mm] * (1 - ecc * [mm] cos(E_i));
[/mm]
[mm] x_1 [/mm] = [mm] r_i [/mm] * [mm] cos(f_i);
[/mm]
[mm] x_2 [/mm] = [mm] r_i [/mm] * [mm] sin(f_i);
[/mm]
[mm] display(x_1);
[/mm]
[mm] display(x_2);
[/mm]
[mm] display(r_i);
[/mm]
[mm] out=[x_1;x_2];
[/mm]
end
Wenn die Eingabe Variable eine einzelne Variable ist dann kommt was vernünftiges Raus wenn ich jetzt aber die Eingabe Variable t = 187560:230040 vektorisiere (wie in der Matlab Dokumentation empfohlen) laufen lassen dann hat die Outvariable keine vernünftigen Werte mehr und wenn ich sie transponiere und plotte kommt ein Linearer verlauf raus. Aber eigentlich erwarte ich eine Ellipse. Kann mir jemand sagen was ich falsch mache? Vielen Dank.
Dateianhänge: Anhang Nr. 1 (Typ: m) [nicht öffentlich]
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:21 Sa 04.03.2017 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|