Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα παιδια

 

Εχω λυσει μια ασκηση σε ματλαμπ, με δυο τροπους.

Θα ηθελα να μου πειτε, αν καποιος ξερει, ποια απ τις δυο λυσεις ειναι σωστη (ή αν ειναι και οι δυο)!

 

Εδω η εκφωνηση:

 

 

Ας υποθέσουμε ότι κάποιος σας προτείνει να παίξετε το εξής παίγνιο. Ρίχνοντας δυο

ζάρια, αν προκύψει και στα δυο άρτιος αριθμός, τότε κερδίζετε ένα ποσό Α. Για κάθε

επανάληψη του παιχνιδιού πρέπει να πληρώσετε το άθροισμα των δυο ζαριών επί 100€. Δηλαδή,

το ελάχιστο που πληρώνετε είναι 200€ και το μέγιστο 1200€. Το παιχνίδι επαναλαμβάνεται

πολλές φορές. Για ποιο ποσό Α είναι συμφέρον να παίξει κανείς το παιχνίδι αυτό;

Για να απαντήσετε, θα πρέπει να υπολογίσετε το προσδοκώμενο κέρδος του παιγνίου. Αν

αυτό είναι αρνητικό, τότε προφανώς δεν αξίζει να παίξετε το παιχνίδι. Για να υπολογίσουμε

το αναμενόμενο κέρδος, προσδιορίζουμε τα πιθανά ενδεχόμενα του παιχνιδιού και για κάθε

ένα από αυτά την αντίστοιχη πιθανότητα. Η ρίψη δυο ζαριών εμφανίζει συνολικά 36 ενδεχόμενα.

Από αυτά, το ένα τέταρτο μόνο αποδίδουν Α, ενώ όλα έχουν κόστος το οποίο προκύπτει από το

άθροισμα των δυο ζαριών επί 100€. Όλα τα ενδεχόμενα είναι ισοπίθανα με πιθανότητα 1/36. Ο

επόμενος πίνακας είναι ο πίνακας πληρωμών (payoff) του παιγνίου.

 

payoff.png Uploaded with ImageShack.us

 

Αν προσομοιώσουμε το παιγνίδι πριν δοκιμάσουμε να το παίξουμε στην πραγματικότητα, τότε

θα πρέπει να εκτελέσουμε το παραπάνω πείραμα χρησιμοποιώντας τον Η/Υ, να συλλέξουμε

δείγμα κερδών από τις εικονικές επαναλήψεις του παιγνίου και στη συνέχεια να υπολογίσουμε το

προσδοκώμενο κέρδος, όπως φαίνεται στο ακόλουθο μοντέλο προσομοίωσης με τη μορφή ενός

απλού διαγράμματος ροής

 

diagrammarohs.png

 

Uploaded with ImageShack.us

 

(Ν: ο αριθμός επαναλήψεων του πειράματος, Υ: η ένδειξη του πρώτου ζαριού, Ζ: η ένδειξη του δεύτερου

ζαριού, mesos: το μέσο κέρδος από την εκτέλεση του παιχνιδιού Ν φορές)

 

 

 

 

Λοιπον, το παραπανω διαγραμμα ροης προσπαθησα να το υλοποιησω στο ματλαμπ, γιατι αυτο ζηταει η ασκηση. Το εκανα με δυο τροπους.

Παρακατω οι κωδικες:

 

1ος Τροπος

 

>A=7000;
N=400;
p=[1/6 1/6 1/6 1/6 1/6 1/6];
q=1/6;
c=(1/6)/q;
Y=[];   Z=[];
i=1;
mesos=0;

while i<=N
   u1=rand;
   w=floor(6*u1)+1;
   u2=rand;
   v1=rand;
   x=floor(6*v1)+1;
   v2=rand;
   if u2<p(w)/(c*q) & v2<p(x)/(c*q)
       Y(i)=w;
       Z(i)=x;
       if mod(Y(i),2)==0 & mod(Z(i),2)==0
          K=A-100*(Y(i)+Z(i));
          mesos=mesos+K;
          i=i+1;
       else
          K=-100*(Y(i)+Z(i));
          mesos=mesos+K;
          i=i+1;
       end
   end
   if i==N
       mesos=mesos/N
   else
       i=i+1;
   end
end

 

 

2ος Τροπος

 

>A=8000
N=200;
mesos=0;

j=1; k=1;
q=1/6;

probs=[1/6 1/6 1/6 1/6 1/6 1/6];
c=(1/6)/q;

Y=[]; Z=[];

i=1;
while i<=N
   
while j<=N
   u1=rand;
   w=floor(6*u1)+1;
   u2=rand;
   if u2<probs(w)/(c*q)
       Y(j)=w;
       j=j+1;
   end
end

while k<=N
   u1=rand;
   w=floor(6*u1)+1;
   u2=rand;
   if u2<probs(w)/(c*q)
       Z(k)=w;
       k=k+1;
   end
end

 if mod(Y(i),2)==0 & mod(Z(i),2)==0
     K=A-100*(Y(i)+Z(i));
     mesos=mesos+k;
     i=i+1;
 else
     K=-100*(Y(i)+Z(i));
     Mesos=mesos+k;
     i=i+1;
 end
end
 
mesos=mesos/N

 

Λοιπον, επειδη αυτη η ασκηση περιλαμβανει παραγωγη τυχαιων αριθμων απο ομοιομορφη κατανομη, να σας δοσω ενα παραδειγμα πανω στο οποιο βασιστηκα για να φτιαξω τον αλγοριθμο που παραγει τους αριθμους απο τη ριψη ζαριων.

 

 

 

Παραδειγμα:

Να παραχθει ενας τυχαιος αριθμος απο την κατανομη με σ.π. pi=P(X=i) , i=1,2,...,10

 

p1=0.11 p2=0.12 p3=0.09 p4=0.08 p5=0.12

p6=0.1 p7=0.09 p8=0.09 p9=0.1 p10=0.1

 

ΛΥΣΗ:

Εστω Υ~U(1,10) με συναρτηση πιθανοτητας (σ.π.) qj=P(Y=j)=1/10=0.1 , j=1,...,10

 

Αλγοριθμος:

βημα 1ο Παραγουμε εναν τυχ αριθμο u1~U(0,1)

 

βημα 2ο Θετουμε Υ=[10*u1]+1 , οπου: [10*u1] = στρογγυλοποιηση προς τα κατω του 10*u1

 

βημα 3ο Παραγουμε εναν τυχ αριθμο u2~U(0,1)

 

βημα 4ο Αν u2<Py/C*qy, τοτε θετουμε Υ=Χ (*)

Διαφορετικα βημα 1ο

 

(*) C>=Pi/qj <=> C>=0.12/0.1 <=> C<=1.2

Αρα, το βημα 4ο παλι θα ειναι: Αν u2<Py/(1.2*qy)<=>u2<Py/0.12

 

 

Και στο ματλαμπ, ο αλγοριθμος υλοποιειται ως εξης:

 

>
probs=[0.11 0.12 0.09 0.08 0.12 0.1 0.09 0.09 0.1 0.1];
akolouthia_X=[];
n=1000;
i=1;
while i<=n
   u1=rand; 
   y=floor(10*u1)+1;
   u2=rand;
   if u2<probs(y)/0.12;
       akolouthia_X(i)=y;
       i=i+1;
   end
end
hist(akolouthia_X)

 

 

 

Σορρυ αν σας κουρασα

Οποιος εχει ορεξη ας ριξει μια ματια

 

Thnx :rolleyes:

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...