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

Hilfe bei einer Monte Carlo Simulation

 

akzenta

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.01.2009, 11:38     Titel: Hilfe bei einer Monte Carlo Simulation
  Antworten mit Zitat      
Hallo Matlab Forum,
ich habe gesehen, dass ihr gerne konstruktive Hilfe anbietet. Die ich gerne in Anspruch nehmen würde. Ich soll mich zur Zeit in Matlab einarbeiten, um eine Monte Carlo Simulation zu verstehen und evtl. zu verbessern.
Jedoch ist das Programm nicht direkt der leichtetste Einstieg in matlab.
Ich hab mir schon einiges erklären können, jedoch wäre ich sehr dankbar wenn ihr mir eine Programmstellen erklären könntet.

Monte Carlo (non gaussian)

1. Call to MCS_NG
Code:

P = [150 30; 100 30];
Typ = {`Ext_Typ.I`, `Ext_Typ.I`};
GFct = @Failurecond_Ex1_1;
N = 1e5;
MCS_NG (GFct, P, Typ);
 

[ Hier fängt es schon an, P und N sind soweit klar, Jedoch was sagen Tap und GFct aus ? MCS_NG ist dies eine Funktion oder eine Matrix die von den Variablen abhängt ?]
Code:

2. MCS_NG subroutine
Function MCS_NG (G, P, Typ, N, Nbins)
% MCS_NG (G, P, Typ)
% Compute the probability density function of the scalar result of G
% G is a function of several random variables described by their own
% distribution ( Typ) and Parameters ( P)
% MCS_NG (G, P, Typ, N)
% The size of the samples can be given. Default value:=10000
% MCS_NG (G, P, Typ, N, Nbins)
% The number of bins can be given. Default value:=sqrt(N)/10
If nargin <4 then N = 100000; end
If nargin <5 then Nbins =  floor(sqrt(N)/10); end

Nvar:=length(Typ);
 

[Soweit klar nur wie kann Nvar length von `Typ`sein ? da ich nicht verstanden habe wie Typ überhaupt definiert ist]
Code:

If isa(G,  `function_handle`) % Verify that g is a function handle.
   
   x=rand(N,Nvar); X=zeros(N,Nvar);
   for t=1:Nvar
      switch char(Typ(t))
         case  `Ext_Typ.I`
            mu=P(t,1); sigma = P(t,2);
            X(:,t)=evinv(x(:,t),mu,sigma);
         case `uniform`
            a=P(t,1); b=P(t,2);
            X(:,t)=unifinv(x(:,t),a,b) ;
         case `Normal`
            moy=P(t,1) ; sig=P(t,1) ;
            X( :,t)=norminv(x( :,t),moy,sig) ;
         case `beta`
            p1=(t,1) ; p2=P(t,1) ;
            X(:,t)=betainv(x(:,t),p1,p2);
 

[diesen Teil hab ich ansich auch noch nicht verstanden, jedoch ist einiges plausibel und benötigt einfach mehr Routine. Jedoch was sind diese Cases und wie nutze ich den Befehl ? Außerdem was machen die inv Befehle und wie unterscheiden sie sich ? Waas fürht der Switch char Befehl aus ? ]
Code:

      end
   end
g = G(X);

figure;
[nn,xx] = histv(g,nbins);
Subplot(1,2,1); plot(xx,nn); title (´pdf of MCS variable`); grid on;
[n,x]=histv(g,nbins);
F_g = cumtrapz(x,n); F_g = F_g / max(F_g);
Subplot(1,2,2); plot(x,F_g); title (´cdf of MCS variable`); grid on;

else
   disp (`G is not a function handle`)
end
 

[Dies sollte ja die Funktion ansich nur Zeichnen daher irrelevant ][/code][/i][/b]


steffi
Forum-Century

Forum-Century



Beiträge: 149
Anmeldedatum: 07.03.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.01.2009, 14:37     Titel:
  Antworten mit Zitat      
Zu den "Cases":

wenn die Funktion aufgerufen wird dann wird dort "Typ" definiert, anhand der Codeschnipsel gehe ich davon aus, dass der Verteilungstyp gemeint ist, also z.B. Normalverteilung, Gleichverteilung

Für Typ würdest du also je nach Problemstellung
Code:
z.B. für die Normalverteilung annehmen, dann "springt" MATLAB an der Switch-Stelle an die Position `Normal` und führt nur diese Zeile aus!

Was in der Zeile ausgeführt wird schaust du dir über
Code:
help norminv
z.B. für die Normalverteilung an, das wird dort sehr gut erläutert und du kannst diese Erläuterungen als Referenzen verwenden.

Char sorgt dafür, dass Typ(t) in eine char-Variable gewandelt wird, auch dazu sollte

Code:
weiterhelfen.

soviel erst mal von meiner Seite...
_________________

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
 
akzenta

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.01.2009, 12:53     Titel:
  Antworten mit Zitat      
Problem hat sich gelöst. Das Programm habe ich mittlerweile verstanden. Ich bitte den Beitrag zu löschen.
 
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.