Du har tidligere laget en funksjon som estimerer kvadratroten til et tall, og som returnerer en liste av alle estimatene. Du vil nå visualisere hvordan estimatene utvikler seg ved plotte dem i en figur.
Lag en funksjon som tar et tall som parameter, og som lager en figur som viser:
Verdien av tallet vi vil finne kvadratroten av som en horisontal linje.
En linje med de forskjellige kvadratrotestimatene vi får fra vår kvadratrotsfunksjon, med punkt (0, x0), (1, x1), …, (n, xn)
La x-aksen gå fra 0 til n, og y-aksen gå fra 0 til ti prosent mer enn den største y-verdien til linjene.
Utdelt kode
kvadratrot.m
function retur = kvadratrot(tall)
x = 1;
er_over_feilgrense = true;
i = 1;
N = 4;
retur = zeros(1, N);
retur(1) = x;
while er_over_feilgrense
ny_x = x + (tall - x^2)/(2*x);
relativ_endring = abs(ny_x - x)/x;
er_over_feilgrense = relativ_endring >= 1e-9;
x = ny_x;
i = i + 1;
if i > N
N = 2*N;
retur(N) = 0;
end
retur(i) = x;
end
retur = retur(1:i);
end
Videoforklaring (mm:ss)
Løsningsforslag
plott_kvadratrotestimat.m
function plott_kvadratrotestimat(tall)
estimat = kvadratrot(tall);
n = length(estimat) - 1;
plot([0, n], [tall, tall], 0:n, estimat);
y_max_1 = tall;
y_max_2 = max(estimat);
y_max = max(y_max_1, y_max_2);
axis([0, n, 0, 1.1*y_max]);
end