Esercizio matlab calcolo delle probabilità

Messaggioda paolo1712 » 22/11/2023, 10:16

Salve a tutti, spero sia la sezione giusta.
Ho da poco iniziato a svolgere esercizi con matlab (/studiare) e stavo decifrando il seguente esercizio fatto dal professore:
Si vogliono stimare le probabilità di uscita nel lancio di due dadi. Per questo motivo si ripete tante volte l’esperimento considerando ogni volta la somma di due numeri compresi tra 1 e 6:

risultato = zeros(1,12); % inizializzazione
n = 1e5;
for i = 1:n
lancio = randi(6,1,2);
k = lancio(1)+lancio(2);
risultato(k) = risultato(k)+1;
end
stima = risultato/n;
disp(stima) % stima calcolata delle probabilita’
probabilita = [0:6 5:-1:1]/36;
if norm(stima-probabilita)>1e-3
disp(’forse servirebbero piu’’ lanci’)
end

Diciamo che mi è tutto chiaro fino a "stima". Quello che non capisco è:
1) La divisione (0 1 2 3 4 5 6 5 4 3 2 1) /36 è per calcolare la probabilità che un numero da 1 a 12 esca con un singolo lancio di dadi?
1)Perché $"probabilita"$ è formata da un vettore che parte da 0 a sinistra e arriva a 1 a destra e non da 1? è un errore? o è dato dal fatto che nel vettore $"risultato"$ la posizione k= 1 non può essere occupata da nessun numero dato che la somma di due dadi sarà sempre maggiore di 1? e quindi il calcolo seguente non avrebbe senso?
2) Quel $"norm()"$ della terzultima riga cos'è? Perché sottrae il valore della stima da quello della probabilità?
3) La scelta di verificare norm per numeri più grandi di $10^-3$ è del tutto arbitraria?

Ne approfitto anche per chiedervi qual è la differenza tra & e && su matlab :D

Spero di essere stato chiaro, vi chiedo scusa per eventuali errori
Vi ringrazio anticipatamente per il vostro aiuto!
paolo1712
Junior Member
Junior Member
 
Messaggio: 119 di 186
Iscritto il: 08/05/2022, 17:29

Re: Esercizio matlab calcolo delle probabilità

Messaggioda apatriarca » 22/11/2023, 12:58

\( (k-1,1) \)Sappiamo che esistono \(6^2 = 36\) combinazioni di coppie di valori compresi tra \(1\) e \(6\). Se consideriamo la somma tra i due valori di ogni coppia osserviamo le seguenti cose.
  • Non ci sono modi per ottenere \(1\).
  • Per \(k \leq 7\) abbiamo che il numero di coppie è uguale a \(k-1\). Le coppie saranno infatti uguali a \((1,k-1)\), \((2,k-2)\), ..., \((k-1,1)\).
  • Per \(k > 7\) abbiamo invece che il numero è uguale a \(12 - k + 1\). Le coppie saranno infatti uguali a \((k-6, 6)\), \((k-5, 5)\), ..., \((6, k-6)\).

1. Come vedi la divisione di cui hai chiesto al punto 1 è esattamente la probabilità di ottenere un particolare valore tra \(1\) e \(12\) come somma di due valori casuali presi tra \(1\) e \(6\).
2. Con l'aumentare del numero di esperimenti/lanci il tuo istogramma converge alla probabilità. In questo caso sta quindi calcolando quanta differenza ci sia tra l'esperimento e la probabilità teorica.
3. È del tutto arbitraria.
4. La differenza tra & e && si ha quando le espressioni di cui stai calcolando la congiunzione logica hanno degli effetti visibili (per esempio stampano dei valori). Supponiamo che tu abbia una funzione f che stampa un valore prima di restituirlo. In questo caso avrai che A & f() stamperà sempre il valore indipendentemente dal valore di A mentre A && f() lo farà solo se il valore di A è non zero. Se A è zero allora il risultato di f() non è necessario per calcolare il risultato dell'espressione finale. Qui puoi trovare un numero maggiore di esempi e informazioni.
apatriarca
Moderatore
Moderatore
 
Messaggio: 5780 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid

Re: Esercizio matlab calcolo delle probabilità

Messaggioda paolo1712 » 23/11/2023, 17:35

Ciao @apatriarca, ti ringrazio per la risposta. Perdonami se ti rispondo con così tanto ritardo. Ora mi è più chiaro!

Perché si valuta la norma e non la semplice differenza?

apatriarca ha scritto: Se A è zero allora il risultato di f() non è necessario per calcolare il risultato dell'espressione finale[...]

Quando dici che A è 0 intendi dire che quando A è falsa, non valuta il valore di f() ?
paolo1712
Junior Member
Junior Member
 
Messaggio: 120 di 186
Iscritto il: 08/05/2022, 17:29

Re: Esercizio matlab calcolo delle probabilità

Messaggioda apatriarca » 26/11/2023, 00:21

Si usa la norma perché la differenza tra due vettori è a sua volta un vettore per cui non può essere usato per prendere una decisione. Per quanto riguarda l'altro dubbio è corretto.
apatriarca
Moderatore
Moderatore
 
Messaggio: 5781 di 10436
Iscritto il: 08/12/2008, 20:37
Località: Madrid


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite