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

Monte Carlo Simulation

 

Sören
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 09.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2008, 14:54     Titel: Monte Carlo Simulation
  Antworten mit Zitat      
Hallo,

ich habe erst mit Matlab neu angefangen und muss eine Monte Carlo Simulation programmieren! Ich möchte die Fläche unter einer Gaußverteilung in einem bestimmten Intervall berechnen!

Also ich habe mir das erstmal grob überlegt, dass ich das Problem in mehrere Sachen aufteile!

1) Eine for-Schleife mit n-Wiederholungen
2)Punkt mit zufälligen Koordinaten
3)Gucken, ob Punkt im Intervall liegt
4)Fläche berechnen

Ist das so möglich? Also zu Punkt 2) mit rand() erzeugt man ja Zufallszahlen, aber wie kann man eine Koordinate daraus machen? Einfach:
x=rand();
y=rand();
plot(x,y)

Würde gern erstmal die zufälligen Punkte erzeugen und darstellen !

MFG Sören
Private Nachricht senden Benutzer-Profile anzeigen


steffi
Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 07.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2008, 15:26     Titel:
  Antworten mit Zitat      
Hallo Sören,

generell sollte es so funktionieren, wie du dir es ausgedacht hast. Allerdings verstehe ich deine Frage nicht?

Beachte bitte, dass rand() Werte im Bereich 0 bis 1 liefert. Ggf. musst du daher entweder diese Werte anpassen oder deine Gaußkurve normieren, sonst erhälst du zwar Werte unterhalb der Kurve, aber diese häufen sich innerhalb eines bestimmten Bereiches....
_________________

Wenn ich bei der Arbeit mit Computern eins gelernt habe dann das ich einem Computer nur soweit traue wie ich ihn werfen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
Sören
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 09.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2008, 15:55     Titel:
  Antworten mit Zitat      
Hallo,

danke für die Antwort. Kann man nicht Zufallszahlen generieren, die nicht nur zwischen 0 und 1 liegen?

Also ich möchte eine Schleife, die von 0 bis 5 läuft und zufällige Koordinaten(x,y) in ein Diagramm plottet! Wie bekomme ich das denn hin, dass er an einer zufälligen Stelle x, einen zufälligen Wert y setzt?
Die Schleife soll einmal durchlaufen und einen zufälligen Punkt setzen(zeichnen), dann das zweite Mal durchlaufen und Punkt in die gleiche Graphik setzen usw..

MFG
Private Nachricht senden Benutzer-Profile anzeigen
 
Maddy
Ehrenmitglied

Ehrenmitglied



Beiträge: 494
Anmeldedatum: 02.10.08
Wohnort: Greifswald
Version: ---
     Beitrag Verfasst am: 09.10.2008, 17:07     Titel:
  Antworten mit Zitat      
da rand() zahlen von 0 bis 1 generiert, kannst du einfach mit dem entsprechenden Faktor multiplizieren der das Maximum deines Wertebereichs ist. In deinem Fall also 5. Smile
_________________

>> why
The computer did it.
Private Nachricht senden Benutzer-Profile anzeigen
 
steffi
Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 07.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2008, 17:07     Titel:
  Antworten mit Zitat      
Zu Frage 1 findest du Antwort hier im Forum, einfach nach "Zufallszahlen" suchen

Du könntest z.B. auch randn() nehmen, dann generierst du normalverteilte Zufallszahlen, die können dann im Prinzip "jede Zahl" annehmen. Dann erhälst du aber keine gleichverteilte Verteilung deiner Punkte unter der Gaußkurve.

Ich glaube du muss dir zunächst Gedanken machen, welche Verteilung der Punkte du willst, innerhalb welchen Bereichs sie liegen sollen usw....

Hier ein kleines Beispiel als Anhaltspunkt:

Code:
for i=1:1000
    x=rand(1,1);
    x2=randn(1,1);
    y=rand(1,1);
    y2=randn(1,1);
    figure(1)
    plot(x,y,'*r')
    drawnow
    hold on
    plot(x2,y2,'b*')
    pause(0.2)
end
 


das kannst du dir mal anschauen und siehst den Unterschied in der Verteilung der roten und blauen Punkte!
_________________

Wenn ich bei der Arbeit mit Computern eins gelernt habe dann das ich einem Computer nur soweit traue wie ich ihn werfen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
Sören
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 09.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.10.2008, 14:33     Titel:
  Antworten mit Zitat      
Hallo,

also ich würde denken, dass randn() gut ist, oder? Wieso sollte denn am besten eine gleichverteilte Verteilung deiner Punkte unter der Gaußkurve herauskommen?

detlef
Private Nachricht senden Benutzer-Profile anzeigen
 
steffi
Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 07.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.10.2008, 14:36     Titel:
  Antworten mit Zitat      
Ich hab ja bereits geschrieben, dass du wissen mußt welche Verteilung gut für dein Problem ist. So ohne detaillierte Informationen welches System du abbilden willst, kann man dir schlecht sagen, welche Verteilung besser ist.
_________________

Wenn ich bei der Arbeit mit Computern eins gelernt habe dann das ich einem Computer nur soweit traue wie ich ihn werfen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
Sören
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 09.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.10.2008, 18:31     Titel:
  Antworten mit Zitat      
hallo,

mir ist das noch nicht ganz klar, welche Verteilung gut ist! Also ich möchte die Fläche unter einer Glockenkurve in einem bestimmten Intervall berechnen! Das randn() gefällt mir da ganz gut!

WIe kann man denn untersuchen, ob der Punkt im Intervall liegt?

MFG
Private Nachricht senden Benutzer-Profile anzeigen
 
Sören
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 09.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.10.2008, 16:04     Titel:
  Antworten mit Zitat      
hallo,

also bei einem Kreis weiss ich nun, wie man guckt, ob der Punkt im Kreis liegt oder nicht, aber wie macht man das bei einer beliebigen Funktion?

MFG
Private Nachricht senden Benutzer-Profile anzeigen
 
steffi
Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 07.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2008, 09:36     Titel:
  Antworten mit Zitat      
Du könntest z.B. nachdem du deinen x-Wert gewürfelt hast, schauen, was der Funktionswert an diesem x-Wert ist (Einsetzen in die Funktion), wenn dann dein gewürfelter y-Wert größer als der Funktionswert ist, ist der Punkt außerhalb der Kurve!
_________________

Wenn ich bei der Arbeit mit Computern eins gelernt habe dann das ich einem Computer nur soweit traue wie ich ihn werfen kann.
Private Nachricht senden Benutzer-Profile anzeigen
 
Sören
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 09.10.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.10.2008, 13:36     Titel:
  Antworten mit Zitat      
danke schön!

Es läuft!


MFG
Private Nachricht senden Benutzer-Profile anzeigen
 
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.