Schreiben Sie ein Programm spline_plot, das einen
kubischen Spline mit Knoten , Werten und Ableitungen durch
Auswertung an Punkten in jedem Intervall
graphisch darstellt.
function spline_plot(x,f,d,n)
% spline_plot(x,f,d,n)
% Plot eines Splines mit Knoten x
% Funktionswerten f, Ableitungen d
% mit n Punkten pro Intervall
% Vektoren zu Zeilen wandeln
x=x(:)';f=f(:)';d=d(:)';
% Auswertungspunkte auf Standardintervall in Spalte
s=linspace(0,1,n+1)';
% Auswertung der Lagrange-Polynome (Spalten)
ua=(1+2*s).*(1-s).^2;
va=s.*(1-s).^2;
ub=(3-2.*s).*s.^2;
vb=-s.^2.*(1-s);
% Vorfaktoren (Zeilen)
f_ua=f(1:end-1);
f_ub=f(2:end);
f_va=diff(x).*d(1:end-1);
f_vb=diff(x).*d(2:end);
% Auswertungspunkte (jedes Teilinterval eine Spalte)
X=repmat(x(1:end-1),n+1,1)+s*diff(x);
% Splinewerte (jedes Teilinterval eine Spalte)
F=ua*f_ua+ub*f_ub+va*f_va+vb*f_vb;
% plot (jedes Intervall seperate Kurve)
plot(X,F);
% plot (nur eine Kurve)
figure;
plot(X(:),F(:));
|
automatisch erstellt
am 10. 12. 2007 |