24.02.2014 Aufrufe

Teilchenbewegungen in el./magn. Feldern (Visualisierung)

Teilchenbewegungen in el./magn. Feldern (Visualisierung)

Teilchenbewegungen in el./magn. Feldern (Visualisierung)

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

MATLAB<br />

und<br />

ẋ n+1 = ẋ n + h<br />

2m [F (x n+1) + F (x n )]<br />

(C.3)<br />

wobei x die Koord<strong>in</strong>ate und ẋ die Geschw<strong>in</strong>dikeit, m die Masse und F(x) die Kraft,<br />

w<strong>el</strong>che auf die Masse m am Punkt x wirkt.<br />

Im ersten Ansche<strong>in</strong> sieht diese Methode wie e<strong>in</strong>e Prädiktormethode aus, weil hier<br />

der Term x n+1 auftaucht. Dieser wird aber nicht wie bei den Prädiktor Methoden<br />

approximativ bestimmt sondern <strong>in</strong> Gleichung (C.2) zunächst bestimmt bevor er <strong>in</strong><br />

Gleichung (C.3) verwendet wird.<br />

Der Vorteil dieses Algorithmusses liegt dar<strong>in</strong>, dass er über lange Zeiträume <strong>in</strong>tegrieren<br />

kann, ohne das der Fehler zu groß wird.<br />

D MATLAB<br />

In diesem Abschnitt s<strong>in</strong>d die MATLAB r○ Dateien abgedruckt. Die Programme sowie<br />

die HTML-Dokumentation bef<strong>in</strong>den sich auf der beigefügten CD-Rom.<br />

D.1 particles<br />

function varargout = particles(vararg<strong>in</strong>)<br />

% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br />

% BEGIN HEAD (nicht aendern)<br />

% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br />

% Initialisierung des GUI und der mit ihm verbundenen Callbacks<br />

gui_S<strong>in</strong>gleton = 1;<br />

gui_State = struct(’gui_Name’, mfilename, ...<br />

’gui_S<strong>in</strong>gleton’, gui_S<strong>in</strong>gleton, ...<br />

’gui_Open<strong>in</strong>gFcn’, @particles_Open<strong>in</strong>gFcn, ...<br />

’gui_OutputFcn’, @particles_OutputFcn, ...<br />

’gui_LayoutFcn’, [] , ...<br />

’gui_Callback’, []);<br />

if narg<strong>in</strong> & isstr(vararg<strong>in</strong>{1})<br />

gui_State.gui_Callback = str2func(vararg<strong>in</strong>{1});<br />

end<br />

if nargout<br />

[varargout{1:nargout}] = gui_ma<strong>in</strong>fcn(gui_State, vararg<strong>in</strong>{:});<br />

<strong>el</strong>se<br />

gui_ma<strong>in</strong>fcn(gui_State, vararg<strong>in</strong>{:});<br />

end<br />

% Hier werden E<strong>in</strong>st<strong>el</strong>lungen getroffen, bevor das GUI sichtbar wird<br />

function particles_Open<strong>in</strong>gFcn(hObject, eventdata, handles, vararg<strong>in</strong>)<br />

handles.output = hObject;<br />

guidata(hObject, handles);<br />

% Anzeige des Tit<strong>el</strong>bildes und des Logos durch Axis-Objekte<br />

axes(handles.logo)<br />

[a,map]=imread(’logo.png’); image(a); colormap(map); axis equal, axis off<br />

axes(handles.plot_axis)<br />

[a,map]=imread(’title.png’); image(a); colormap(map); axis equal, axis off<br />

function varargout = particles_OutputFcn(hObject, eventdata, handles)<br />

61

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!