WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Problem mit gleichverteilten Wahrscheinlichkeiten

 

Janno

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.08.2012, 19:03     Titel: Problem mit gleichverteilten Wahrscheinlichkeiten
  Antworten mit Zitat      
Hallo,

für mein Studium muss ich eine Ausarbeitung mit MATLAB erstellen. Dabei habe ich ein Problem.

Ich habe ein Ereignis A, welches mit der Wahrscheinlichkeit  p_{A1} auftritt.

Es gilt:  0 \leq p_{AX} \leq 1 . X sei eine beliebige Ziffer.

Insbesondere ist aus meiner Literatur bekannt, dass  p_{A1} im Bereich  10^{-6} \dots 10^{-4} liegt.

Wenn  p_{A1} in einem Durchlauf nicht eintritt, so kann nur noch EINMAL das Ereignis A eintreten. Dabei gilt hierfür die Wahrscheinlichkeit  p_{A2} .  p_{A2} liegt im Bereich  10^{-8} \dots 10^{-5} .

Mein Programm lautet wie folgt:

Code:
% Hier sei p_A1 wie im obigen Text definiert worden
% Hier sei p_A2 wie im obigen Text definiert worden

for k=1:50^6     % für die statistische Auflösung
Ereignis_A_zaehler = 0;   % zaehler zuruecksetzen
    for l = 1:1000
        fehler = rand(1,1);
        if(p_A1> fehler)     % Es tritt Ereignis A beim ersten Durchgang auf          
            Ereignis_A_zaehler = Ereignis_A_zaehler+1;

        else  % Es kann noch Ereignis A im zwieten Durchgang auftreten

% neue Randomzahl, da Ereigniswahrscheinlichkeiten unkorreliert sind.
            fehler = rand(1,1);

            if(p_A2> fehler)
                Ereignis_A_zaehler = Ereignis_A_zaehler+1;
            end

        end;
        %Ende äußere if/else-Bedingung
               
    end
    % Ende l-Schleife
stat_Ereignis_A(k) = Ereignis_A_zaehler/1000;
% <- 1000 Durchläufer der l-forschleife
end
p_A_experiment = mean (stat_Ereignis_A)
 


Ist meine Implementierung fehlerhaft?

Ich bekomme immer experimentelle Wahrscheinlichkeiten um 0,4 raus. Das kann es nicht sein.

Gibt es einen geschickteren Weg das Problem zu lösen?

cu
Jan


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 23.08.2012, 20:55     Titel: Re: Problem mit gleichverteilten Wahrscheinlichkeiten
  Antworten mit Zitat      
Hallo Jan,

Ich habe die Tags in Deiner Nachricht verbessert: Abschließende Tags werden mit / geschrieben, nicht mit \.

Code:
for k=1:50^6     % 50^6 ist 1.5625e+010
  Ereignis_A_zaehler = 0;   % zaehler zuruecksetzen
  ...
  stat_Ereignis_A(k) = Ereignis_A_zaehler/1000;
end

Da "stat_Ereignis" nicht pre-alloziert wird, muss es in jeder Iteration wachsen. Matlab 2012a versucht dies einigermaßen gut abzufangen, in anderen Versionen wird aber jedesmal ein neues Array alloziert und das alte kopiert. Insgesamt benötigt man also eine Reservierung von SUM(1:50^6)*8 Bytes. Das sind unlockere 9.8*10^5 PetaByte.

Was möchtest Du also genau berechnen?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Janno

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.08.2012, 08:35     Titel:
  Antworten mit Zitat      
Hallo,

danke.

Dann versuche ich es mal mit weniger maximalen Durchläufen, dafür aber mit mehr Ergebnissen.


Ich möchte/muss die Wahrscheinlichkeit für das Ergebnis A experimentell verifizieren.
Das Ereignis A kann wie in meinem ersten Post beschrieben eintreten.


cu

Jan
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.08.2012, 20:35     Titel:
  Antworten mit Zitat      
Hallo Janno,

Zitat:
Ich bekomme immer experimentelle Wahrscheinlichkeiten um 0,4 raus. Das kann es nicht sein.

Wie hast Du denn die 0.4 herausbekommen??
Bitte poste lauffähigen Code und stelle eine konkrete Frage. Dann ist eine Antwort wesentlich einfacher. Z.B. ist die Angaben "p_A1 ist im Bereich 1e-6 bis 1e-4" nicht direkt in Code umsetzbar.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Janno

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.08.2012, 07:54     Titel: Problem gelöst
  Antworten mit Zitat      
Hallo,

der von mir gepostete Code ist für dieses Problem richtig gewesen. Meine Annahme zu den erwarteten Fehler sind falsch gewesen. Laughing Laughing


Danke für eure Hilfe

cu

Janno
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.