Created by Unknown User (benjambj), last modified on 09.10.2016
.Du lager et program for å håndtere tippingkuponger for fotballresultat. Du har tidligere laget en funksjon som analyserer en tippekupong. Du ønsker nå å bruke funksjonen til å få en oversikt over vinneroddsen i fotballtipping.
Lag et script som genererer 10000 tilfeldige tippekuponger og resultat, for hver av dem regner ut hvor mange korrekte gjetninger det var i kupongen, og som til slutt lager et histogram som viser fordelingen av antall korrekte resultat i tippekupongene.
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 (12:06)
Del 1 (7:18)
Del 2 (4:48)
Oppgaveintroduksjon, og skriving av funksjon som bruker funksjonsvariabler.
Bruk av generisk funksjon vha anonyme funksjoner og andre funksjonsvariabler..
Løsningsforslag
finn_nullpunkt.m
function retur = finn_nullpunkt(f, df)
x = 1;
er_over_feilgrense = true;
i = 1;
N = 4;
retur = zeros(1, N);
retur(1) = x;
while er_over_feilgrense
ny_x = x - f(x)/df(x);
relativ_endring = abs(ny_x - x)/abs(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
kvadratrot.m
function retur = kvadratrot(tall)
f = @(x) tall - x^2;
df = @(x) -2*x;
estimat = finn_nullpunkt(f, df);
retur = estimat(end);
end