Aufgabe
schreibe eine funktion in matlab, die die koeffizienten des interpolationspolynoms in der newton-basis über den algorithmus der dividierenden differenzen bestimmt.
dabei sollen stützstellen xi=(xi(1)...xi(n)) und y=(y(1)...y(n)) vertoriell übergeben werden.
sooo ich bin bis jetzt so weit gekommen:
function d = divdiff(x,y)
% Dividierte Differenzen
% Eingabeparameter:
% x x-Koordinaten der Stuetzstellen
% y y-Koordinaten der Stuetzstellen
% Ausgabeparameter:
% d Polynomkoeffizienten
Ly=length(y);
k(1,: )=y;
for j=2:Ly
for i=j:Ly;
k(j,i-j+1)=(k(j-1,i-j+2)-k(j-1,i-j+1))/(x(i)-x(i-j+1));
end
end
um das polynom jetzt zu bestimmen, muss ich
k(1,1)+k(2,2)*(x-xi(1))+k(3,3)*(x-xi(1))*(x-xi(2))+k(4,4)*(x-xi(1))*(x-xi(2))*(x-xi(3))+k(5,5)...
berechen. das ergebnis ist dann ein zeilenvektor, der aus den koeffizienten des polynoms besteht.(wobei k(j,j) faktoren sind, die ich oben schon berechnet habe)
polynommultiplikation funktioniert in mtlab glaube ich mit conv(x,y)
mein problem ist jetzt die umsetzung dieser berechnung im matlab, weil das programm mir dann sagt, dass die dimensionen beim multiplizieren nicht passen:/
wäre suuper nett, wenn mir jemand helfen könnte
Zuletzt bearbeitet von Cyraxx am 06.05.2008, 14:31, insgesamt 2-mal bearbeitet
ich vermute, dass das mit einer for.schleife gemacht werden muss. am ende muss ein vektor herauskommen, der aus den koeffizienten des polynoms besteht
(in mathlab sieht das dann zb für n=2 so aus
polynom=f(1)+conv(f(2),[1 -xi(1)]
% Dividierte Differenzen % Eingabeparameter: % x x-Koordinaten der Stuetzstellen % y y-Koordinaten der Stuetzstellen % Ausgabeparameter: % d Polynomkoeffizienten
Lx=length(x);
Ly=length(y);
k(1,:)=y;
for j=2:Ly
for i=j:Ly;
k(j,i-j+1)=(k(j-1,i-j+2)-k(j-1,i-j+1))/(x(i)-x(i-j+1));
end end for l=1:Ly
fak(l)=k(l,1);
end
fak
p(1,:)=fak(1) for(l=2:Ly)
p(l,:)=conv(p(l-1,:),[1 -x(i)])
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.