12.02.2014 Aufrufe

Mathematik für Physiker - Numerische Physik: Modellierung

Mathematik für Physiker - Numerische Physik: Modellierung

Mathematik für Physiker - Numerische Physik: Modellierung

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.

496 ANHANG B. MATLAB: THE BASICS<br />

polyval<br />

roots<br />

§ 1835 Da die Struktur des Polynoms vorgegeben ist, sind die Koeffizienten die einzigen<br />

Größen, die zu seiner Beschreibung notwendig sind. In MatLab lässt sich ein Polynom daher<br />

durch einen Vektor beschreiben, der die Koeffizienten in absteigender Ordnung enthält: das<br />

Polynom x 5 + 2x 3 + 3x 2 + 4 lässt sich durch den Vektor p = [1 0 2 3 0 4] darstellen.<br />

Zur Auswertung dieses Polynoms an verschiedenen Stellen x werden diese in einem Vektor<br />

definiert, die Auswertung des Polynoms erfolgt mit Hilfe der Funktion polyval:<br />

>> p=[1 0 2 3 0 4];x=[0:1:8];y=polyval(p,x) ←↪<br />

y =<br />

Columns 1 through 6<br />

4 10 64 328 1204 3454<br />

Columns 7 through 9<br />

8320 17644 33988<br />

§ 1836 Auch die Nullstellen eines Polynoms lassen sich mit MatLab bestimmen, allerdings<br />

wie die gewöhnlichen Nullstellen nur näherungsweise. Dazu dient der Befehl roots. Für das<br />

relativ einfache Polynom x 3 − 6x 2 + 11x − 6 liefert MatLab<br />

>> p=[1 -6 11 -6]; r = roots(p) ←↪<br />

r =<br />

3.0000<br />

2.0000<br />

1.0000<br />

Diese Werte sind mit großer Genauigkeit bestimmt, auch bei der Umstellung auf format<br />

long ergeben sich keine Abweichungen von den erwarteten Werten. Betrachten wir dagegen<br />

ein Polynom der Form (x − 1) 5 mit den Nullstellen bei x n = 1, so findet MatLab fünf<br />

verschiedenen Wurzeln, die auch alle von 1 verschieden sind:<br />

>> p=[1 -5 10 -10 5 -1]; r = roots(p) ←↪<br />

r =<br />

1.0010 + 0.0007i<br />

1.0010 − 0.0007i<br />

0.9996 + 0.0012i<br />

0.9996 − 0.0012i<br />

0.9987<br />

Die Ungenauigkeit entsteht nicht durch das wechselnde Vorzeichen der Koeffizienten des Polynoms.<br />

Davon kann man sich leicht durch Verwendung des Polynoms (x+1) 5 überzeugen: bis<br />

auf das Vorzeichen stimmen die Ergebnisse mit den oben gegebenen überein. Die Ungenauigkeit<br />

ist vielmehr ein allgemeines Problem numerischer Verfahren. Eine Möglichkeit zumindest<br />

zur optischen Korrektur ist die Reduktion auf eine Darstellung mit zwei Nachkommastellen<br />

(format bank).<br />

conv<br />

§ 1838 Bei der Polynomdivision deconf wird entsprechend verfahren, allerdings besteht das<br />

Ergebnis [q,r] = deconv(p1,p2) aus zwei Polynomen: einem Polynom q, das den Quotien-<br />

ten enthält, sowie einem zweiten Polynom r. das den Rest enthält. Für diese Polynome gilt:<br />

p1 = conv(p2,q)+r.<br />

deconv<br />

§ 1837 Nützliche Tools in MatLab sind ferner die Multiplikation von Polynomen mit conv<br />

sowie die Polynomdivision mit deconv. Bei der Multiplikation P (x) = P 1 (x) P 2 (x) werden<br />

beide Polynome als Vektoren p1 und p2 an die Funktion conv(p1,p2) übergeben, das Ergebnis<br />

ist ein Vektor, der die Koeffizienten des Ergebnis enthält.<br />

Beispiel 4 Für die beiden Polynome p 1 = 5x 8 + 2x 2 + x − 1 und p 2 = x 4 + 3x −<br />

6 erhalten wir >> p1=[5 0 0 0 0 0 2 1 -1]; p2=[1 0 0 3 -6]; conv(p1,p2)<br />

←↪<br />

ans =<br />

13. März 2007 c○ M.-B. Kallenrode

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!