8.3 Addition von Polynomen

se:polynome_addition MATLAB stellt keinen Befehl für die Addition von Polynomen bereit. Eine solche Routine muss man sich als kleine Übungsaufgabe selbst erstellen. Da es sich bei der Addition von Polynomen um die Addition von Vektoren unterschiedlicher Länge handelt, kann nicht einfach der Befehl plus verwendet werden. Man muss also vorher den kürzeren der beiden Vektoren am Beginn mit Nullen auffüllen, um die gleiche Länge bei der Verwendung von plus zu gewährleisten.

Die Ergänzung mit Nullen kann man durch Zusammenhängen von Vektoren erreichen. Der Befehl zeros(1,l) erzeugt einen Zeilenvektor der der Länge $ l$ für $ l>0$ und ein leeres Array für $ l \leq 0$. Dies kann man sich in diesem Fall zu Nutze machen.

Ausserdem eignet sich dieses Beispiel bestens für die Verwendung variabler Inputlisten. Dies hat den Vorteil, dass man dann beliebig viele Polynome mit einem Aufruf addieren kann. Dafür sind die Variablen nargin und varargin bestens geeignet:

 function p = polyadd(varargin)
 p = [];          
 for k = 1:nargin
    p1 = varargin{k}; p1 = p1(:).';  % k-tes Polynom, Zeilenvektor
    l  = length(p); l1 = length(p1); % Längen
    p  = ...
 end

Schön ist natürlich auch, wenn man alle führenden Nullen beseitigt, so dass maximal eine überbleibt, wenn das Ergebnis das Polynom p=[0] ist. Dazu kann man sich des Befehls find bedienen und nach dem ersten Element von $ p$ suchen, das ungleich Null ist (min(find(p~=0))).

Winfried Kernbichler 2005-04-26