Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

Expand
titlekvadratrot.m
Code Block
titlekvadratrot.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)

Del 1 (5mm:34ss)Del 2 (5mm:20ss)
  
Oppgaveintroduksjon, og problemoppdeling.skriving avHvordan generere en tilfeldig kupong.

...

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
Code Block
titlelagfinn_tilfeldig_kupongnullpunkt.m
function retur = lagfinn_tilfeldig_kupong(nullpunkt(f, df)
    returx = false(12, 3)1;
    er_over_feilgrense = true;
    for i = 1:12;
    N = 4;
    tilfeldig_kolonneretur = randi(3);
   zeros(1, N);
    retur(1) = x;
    while er_over_feilgrense
      retur(i, tilfeldigny_kolonne)x = true x - f(x)/df(x);
    end
end
Code Block
titlelag_kupong_histogram.m
treff   relativ_endring = zeros(1, 10000);
for i = 1:10000
abs(ny_x - x)/abs(x);
       er_over_feilgrense = relativ_endring >= 1e-9;
       kupongx = lag_tilfeldig_kupong()ny_x;
    fasit   i = lag_tilfeldig_kupong() i + 1;
    [~, ~, antall_treff] = analyser_tippekupong(kupong, fasit);
    treff   if i > N
           N = 2*N;
           retur(N) = 0;
       end
       retur(i) = antall_treffx;
    end
    retur = retur(1:i);
end
Code Block
titlekvadratrot.m
function retur = kvadratrot(tall)
    f = @(x) tall - x^2;
    df = @(x) -2*x;
    estimat = finn_nullpunkt(f, df);
    retur = estimat(end);
end histogram(treff);
% Man kan lage et histogram hvor y-aksen er prosentandel og ikke antall ved å kalle histogram slik:
% histogram(treff, 'Normalization', 'probability');