13.01.2014 Aufrufe

Link - Hochschule Ulm

Link - Hochschule Ulm

Link - Hochschule Ulm

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

10<br />

100<br />

9<br />

8<br />

Polynom<br />

Daten<br />

Spline<br />

80<br />

Interpolationsfunktion<br />

Punkte<br />

humps<br />

7<br />

60<br />

6<br />

5<br />

40<br />

4<br />

3<br />

20<br />

2<br />

0<br />

1<br />

0<br />

0 10 20 30 40 50 60<br />

Abbildung 35: Kubische Splineinterpolation<br />

ner stückweisen (affin) linearen Interpolationsfunktion.<br />

Mithilfe der Funktion interp1 kann<br />

man stückweise lineare Interpolationsfunktionen<br />

berechnen. Wir zeigen dies an einen Beispiel.<br />

Angenommen es soll die stückweise lineare<br />

Interpolationsfunktion zu den Punkten<br />

(t i , y i ) mit t = linspace(0,3,10) und y =<br />

humps(t) berechnet werden, so kann man das<br />

mit den folgenden Zeilen erreichen. Beachten<br />

Sie, dass humps eine eingebaute Matlab-<br />

Funktion ist, deren Funktionsterm gegeben ist<br />

durch hums(t) = 1/ ( (t − 0.3) 2 + 0.01 ) + 1/ ( (t −<br />

0.9) 2 + 0.04 ) − 6.<br />

1 t = linspace(0,3,10);<br />

2 y = humps(t);<br />

3 tt = linspace(min(t),max(t));<br />

4 yi = interp1(t,y,tt);<br />

5 plot(tt,yi,t,y,’ro’,tt,humps(tt)),<br />

6 grid on,<br />

7 legend(’Interpolationsfunktion’,’<br />

Punkte’,’humps’),<br />

−20<br />

0 0.5 1 1.5 2 2.5 3<br />

Abbildung 36: Lineare Interpolation<br />

58. Nichtlineare Gleichungen (1)<br />

In Matlab gibt es die eingebaute Funktion<br />

fzero zur Lösung einer nichtlinearen Gleichung<br />

in einer Variablen. Der Algorithmus<br />

ist eine Kombination aus dem Intervallhalbierungsverfahren,<br />

der Sekantenmethode und<br />

der inversen quadratischen Interpolation. Dieses<br />

hybride Verfahren hat eine lange und interessante<br />

Geschichte, siehe [6]. Es ist ein guter<br />

Algorithmus, aber leider nur für skalarwertige<br />

Funktionen mit einer skalaren Variablen einsetzbar.<br />

Den m-File fzero findet man im Verzeichnis<br />

Toolbox/MATLAB/funfun.<br />

Die Buckelfunktion humps hat zwei Nullstellen,<br />

siehe Abbildung 14. Wir berechnen diese<br />

mit fzero.<br />

1 >> fzero(@humps,1)<br />

2 ans =<br />

3 1.2995<br />

4 >> fzero(@humps,0)<br />

5 ans =<br />

6 -0.1316<br />

Das zweite Argument des Funktionsaufrufes<br />

118 Copyright c○ G. Gramlich

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!