8.1 Grundlagen

se:polynome_grundlagen

In MATLAB werden Polynome durch ihren Koeffizientenvektor repräsentiert, d.h. der Vektor p=[p1,p2,...,pn] stellt das Polynom,

$\displaystyle p_{1}x^{n-1} + p_{2}x^{n-2} + p_{3}x^{n-3} + \dots + p_{n} \; ,$ (8.1)

dar. Für ein Polynom vom Grad $ n-1$ braucht man daher einen Vektor der Länge $ n$. Für die Auswertung ein solchen Polynoms für verschiedene Werte von $ x$,

$\displaystyle y_{i}=p_{1}x_{i}^{n-1}+p_{2}x_{i}^{n-2}+p_{3}x_{i}^{n-3} +\dots +p_{n} \; ,$ (8.2)

stellt MATLAB die Funktion y=polyval(p,x) zur Verfügung. Die Variable $ x$ kann dabei ein Skalar, ein Vektor, bzw. eine Matrix sein, $ y$ hat dann immmer die gleiche Größe wie $ x$.

Will man also z.B. das Polynom

$\displaystyle y_{i}= x_{i}^{3}+ 2 x_{i}^{2}+ x_{i} + 3 \; ,$ (8.3)

darstellen, kann man Folgendes tun:
 p = [1,2,1,3];
 x = linspace(-2,2,30); y = polyval(p,x);
 plot(x,y,'b');
Die Auswertung erfolgt natürlich mit dem Horner-Schema, das hier am Beispiel eines Polynomes dritten Grades demonstriert wird,

$\displaystyle y_{i} = \left( \left( p_{1} x + p_{2} \right) x + p_{3} \right) x + p_{4}\;,$ (8.4)

wobei die Anzahl der Multiplikationen pro $ x$-Wert von $ m(m+1)/2$ auf $ m$ reduziert wird, die Anzahl der Additionen bleibt mit $ m$ gleich. Daraus folgt, dass das Horner-Schema viel effizienter ist.

Es gibt auch eine Auswertung für $ n \times n$ Matrizen, polyvalm, wobei alle Multiplikationen als Matrixmultiplikationen aufgefasst werden.

Winfried Kernbichler 2005-04-26