Ik heb gevonden hoe je in matlab splines berekent, en de grafiek van mijn functie dmv benadering met splines ziet er telkens logisch uit, het is bij de foutenkromme dat het mis gaat.
Ik heb volgend script :
Code: Selecteer alles
function vierkant_spline = oefening6(m)
x = linspace(0, 2*pi);
xx = zeros(1, m+1);
vierkant = f_theta(x);
for i = 1 : m
xx(i) = (2*(i - 1)*pi)/m;
end
xx(m + 1) = 2*pi;
vierkant_spline = spline(x, vierkant, xx);
subplot(1,2,1);
plot(vierkant_spline.*cos(xx), vierkant_spline.*sin(xx));
axis([-3/2, 3/2, -3/2, 3/2]);
title('Het vierkant dmv splines');
subplot(1,2,2);
fout = vierkant - vierkant_spline;
plot(xx, fout);
axis([0, 2*pi, -1/2, 1/2]);
title('De foutenkromme');
Volgende dingen heb ik al geprobeerd, weliswaar zonder juist resultaat :
- x = linspace(0, 2*pi, m + 1) ipv gewoon x = 0 : 2*pi;
- ik heb ook al geprobeerd om de matrix "vierkant" te "herconstrueren" om het zo te noemen, door het grootste en kleinste element te nemen uit de matrix, en hiertussen een interval van m + 1 punten te construeren, dit gaf dus een absurde foutenkromme