Teilchenbewegungen in el./magn. Feldern (Visualisierung)
Teilchenbewegungen in el./magn. Feldern (Visualisierung)
Teilchenbewegungen in el./magn. Feldern (Visualisierung)
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