.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 
  • No labels