Mo Logo [Home] [Lexikon] [Aufgaben] [Tests] [Kurse] [Begleitmaterial] [Hinweise] [Mitwirkende] [Publikationen]

Mathematik-Online-Aufgabensammlung: Lösung zu

Aufgabe 1541: Programm zur Bestimmung der Koeffizienten der Legendre-Polynome


A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Schreiben Sie ein MATLAB-Programm a=legendre_coefficients(n), das die Koeffizienten der ersten $ n+1$ Legendre Polynome berechnet.

Der Rückgabewert soll ein Cell-Array sein, dessen $ k$-tes Element den Koeffizientenvektor des $ k$-ten Polynoms enthält.


Für die Berechnung wird die Drei-Term-Rekursion

$\displaystyle (n+1)p_{n+1} = (2n+1)x p_n -n p_{n-1}
$

verwendet. Dabei ist zu berücksichtigen, dass MATLAB ab 1 indiziert, also ein entsprechender Shift bei den Polynomnummern einzufügen. Damit erhält man das Programm:


function a=legendre_coefficients(n)
% a=legendre_coefficients(n)
% Berechnet die Legendre-Polynome p_0,...,p_n

% Drei-Term-Rekursion, Indexshift bei Polynomnummern
a{1}=[1];
if (n==0) 
  return;
end;
a{2} = [1,0];

for k=1:n-1
  a{k+2}=((2*k+1)*[a{k+1},0]-k*[0,0,a{k}])/(k+1);
end

[Aufgabe]

  automatisch erstellt am 27. 11. 2007