Matlab κατανομές

Γενικά θέματα για τις γλώσσες προγραμματισμού που δεν καλύπτονται από τις άλλες περιοχές της κατηγορίας.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
katerinaaa
Δημοσιεύσεις: 109
Εγγραφή: 28 Ιαν 2010 12:46

Matlab κατανομές

Δημοσίευση από katerinaaa » 18 Μαρ 2010 18:41

Μήπως υπάρχει κανείς που να μπορεί να με βοηθήσει με Matlab ?
Θέλω να φτιάξω ένα διάνυσμα με 100 σύμβολα που να είναι είτε -1 είτε 0 είτε 1 και να ακολουθούν ομοιόμορφη κατανομή.

Και μετά άλλο ένα διάνυσμα που ακολουθεί κανονική κατανομή με μέση τιμή 0.5 και διασπορά 4.

Μήπως ξέρει κανείς ??
Ευχαριστώ κ των προτέρων

billiaswhs
Δημοσιεύσεις: 346
Εγγραφή: 11 Νοέμ 2004 00:29
Επικοινωνία:

Matlab κατανομές

Δημοσίευση από billiaswhs » 18 Μαρ 2010 22:47

Για την κανονική κατανομή είναι

% x ~ Κανονική κατανομή Ν(0.5 , 2)

n=100

x = ( randn(n,1) * 2 ) + 0.5;

σχετικά με την ομοιόμορφη μήπως έχεις μπερδευτεί και εννοείς ότι η ομοιόμορφη ορίζεται στο διάστημα [-1,1] και η ομοιόμορφη ποια τη συνεχής ή τη διακριτή?

Μήπως από το διάνυσμα της ομοιόρφης το χρειάζεται για να παράγεις το διάνυσμα της κανονικής γιατί τότε είναι αλλιώς τα πράγματα?

katerinaaa
Δημοσιεύσεις: 109
Εγγραφή: 28 Ιαν 2010 12:46

Matlab κατανομές

Δημοσίευση από katerinaaa » 19 Μαρ 2010 01:45

"Ένα αποστολέας κωδικοποιεί μηνύματα χρησιμοποιώντας τρία σύμβολα με τιμές -1, 0, 1
(η τυχαία μεταβλητή Χ ακολουθεί την ομοιόμορφη κατανομή)."

Οπότε, παράγω νούμερα με τη randn στο διάστημα -1, 1 και αν είναι από 0.5 και πάνω τα αντιστοιχώ στο 1, αν είναι από -0.5 έως 0.5 στο 0 και για τα υπόλοιπα στο -1 ??
Τη διακριτή κατανομή θέλω επειδή μετά θέλω να προσθέσω τις δυο κατανομές.

Ευχαριστώ πολύ για την απάντηση

billiaswhs
Δημοσιεύσεις: 346
Εγγραφή: 11 Νοέμ 2004 00:29
Επικοινωνία:

Matlab κατανομές

Δημοσίευση από billiaswhs » 19 Μαρ 2010 03:43

n=100

x = ( randn(n,1) * 2 ) + 0.5;

με τον παραπάνω τύπο φτίαχνεις ένα διάνυσμα χ του οποίου οι τιμές είναι τυχαίοι αριθμοί παράγονται από την κανονική κατανομή με μέση τιμή ο, 5 και διασπορά 4 (δηλαδή τυπική απόκλιση 2) δηλαδή

en.wikipedia.org/wiki/Normal_distribution

για να παράγεις αριθμούς από την ομοιόμορφη κατανομή χρειάζεσαι ένα πεδίο ορισμού.

http://en.wikipedia.org/wiki/Uniform_distribution

Έσυ δίνεις το πεδίο τιμών και θες να βρεί το πεδίο ορισμού?
Τι ακριβώς θες να προσθέσεις?
Αν θες πες ολοκληρωμένο το πρόβλημα για να καταλάβω καλύτερα :wink:

katerinaaa
Δημοσιεύσεις: 109
Εγγραφή: 28 Ιαν 2010 12:46

Matlab κατανομές

Δημοσίευση από katerinaaa » 19 Μαρ 2010 10:45

Είναι ένα υποερώτημα από άσκηση (μάθημα τηλεπικοινωνίες)

" Ένα αποστολέας κωδικοποιεί μηνύματα χρησιμοποιώντας τρία σύμβολα με τιμές -1, 0, 1
(Θα πρέπει να θεωρήσετε ότι η τυχαία μεταβλητή Χ ακολουθεί την ομοιόμορφη κατανομή), τα οποία στέλνονται δια μέσω ενός ενθόρυβου τηλεπικοινωνιακού καναλιού. Όταν ο αποστολέας
στέλνει το Χ, ο παραλήπτης λαμβάνει Υ=Χ+Ν, όπου η τ.μ. Ν αναπαριστά το θόρυβο που
ακολουθεί τη κανονική κατανομή με μέση τιμή 0.5 και διασπορά 2.
Ο δέκτης αποφασίζει για το αν στάλθηκε το σωστό σύμβολο. "

billiaswhs
Δημοσιεύσεις: 346
Εγγραφή: 11 Νοέμ 2004 00:29
Επικοινωνία:

Matlab κατανομές

Δημοσίευση από billiaswhs » 19 Μαρ 2010 14:48

αν και δεν γνωρίζω απο τηλεπικοινωνίες αλλα θεωρία πιθανοτήτων το παραπάνω πρόβλημα
θα έγρφα

n=100

την ομοιόμορφη στο διάστημα [-1,1]

Χ = -1 + rand(n,1) * ( 1 - (-1) );

διάνυσμα με τους θορύβους απο την κανονική κατανομή όπου 2 είναι τυπική αποκλιση παρακάτω (αν διασπορά είναι 4)

Ν = ( randn(n,1) * 2 ) + 0.5;

Y = X + N

katerinaaa
Δημοσιεύσεις: 109
Εγγραφή: 28 Ιαν 2010 12:46

Matlab κατανομές

Δημοσίευση από katerinaaa » 19 Μαρ 2010 17:51

Ευχαριστώ για όλα!!

hks
Δημοσιεύσεις: 1
Εγγραφή: 03 Μάιος 2010 21:14

Matlab κατανομές

Δημοσίευση από hks » 03 Μάιος 2010 21:24

Γειά μια μικρή βοήθεια και από εδώ όποιος μπορεί

θέλω να δημιουργήσω ένα διάνυσμα Χ (έστω 50 στοιχείων) που να αποτελείται από +1 , -1 και κάθε Χn να παίρνει την τιμή +1 ή -1 με πιθανότητα 0.5 .

αυτό έχω φτιάξει :-? καμία πρόταση να το βελτιώσω;;;

n=50;
x=randn(1,n);
for i=1:n
if x(i)>0
a3(i)=+1;
else
a3(i)=-1;
end;
end;

billiaswhs
Δημοσιεύσεις: 346
Εγγραφή: 11 Νοέμ 2004 00:29
Επικοινωνία:

Matlab κατανομές

Δημοσίευση από billiaswhs » 04 Μάιος 2010 01:48

n=50;

x=rand(n,1);

for i=1:n

if x(i)<0.5

y(i)= 1;

else

y(i) =-1;

end;
end;

η λογική βασικά είναι παίρνεις την rand η οποία παράγει τυχαίους αριθμούς από την ομοιόμορφη κατανομή στο διάστημα [0,1] και το διαχωρίζειw στη μέση αφού η πιθανότητα
είναι 50% και όποιοι αριθμοί πέφτουν στο [0, 0.5) τους βαζεις -1 καί όσοι στο [0.5 ,1]
οπότε τους βάζεις 1.

Ενώ εσύ πάνω βλέπως έχει την randn (randnormal) η οποία παράγει αριθμούς
κανονική κατανομή, δες τα παραπάνω link στη wikipedia για κατανομές πιθανοτήτων.

Απάντηση

Επιστροφή στο “γλώσσες προγραμματισμού - γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης