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

Erwartungswert beschnittene Logarithmische Normalverteilung

 

becher
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 06.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2012, 12:40     Titel: Erwartungswert beschnittene Logarithmische Normalverteilung
  Antworten mit Zitat      
Hallo,

ich muss ein nichtlineares Gleichungssystem lösen.

Das Problem an der Geschichte:

In einer Gleichung ist der Erwartungswert einer beschnittenen LogNormalverteilung enthalten (mean of a truncated lognormal distribution). Die untere Grenze ist dabei eine Variable aus dem Gleichungssystem.

Hat jemand ne Idee wie ich Matlab überzeugen kann das zu machen?

Viele Grüße

becher
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.03.2012, 12:43     Titel:
  Antworten mit Zitat      
Hallo,

für nichtlineare Gleichungssysteme würde ich grundsätzlich erstmal FSOLVE versuchen.

Wenn das nicht klappt oder du da Probleme hast, müsstest du etwas konkreter werden.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
becher
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 06.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2012, 12:49     Titel:
  Antworten mit Zitat      
Vielen Dank für die umgehende Antwort.

ich benutze FSolve. Hier eine stark vereinfachte Variante des Problems:

Code:
y=b+c*x.^2;
 


wobei y und x variablen sind und b und c Parameter.

x Soll dabei der Erwartungswert der gestutzten LogNormal Verteilung sein (Parameter der Verteilung sind bekannt). Dabei wird die Verteilung durch eine aus dem Gleichungssystem stammende Variable gestutzt.

Ich hoffe, dass erhöht das Verständniss!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.03.2012, 13:05     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Ich hoffe, dass erhöht das Verständnis!

Für mich nicht wirklich. Das Problem bei starken Vereinfachungen ist, dass man eben das vereinfachte Problem löst und nicht das echte.

Vorschlag:
Fang doch mal mit fsolve an und schau, wie du klarkommst. Wenn du dann bei der Umsetzung konkrete Probleme hast, melde dich nochmal mit dem, was du bisher geschafft hast.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
becher
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 06.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2012, 13:21     Titel:
  Antworten mit Zitat      
Okay, dann hier die 2 Gleichungen aus dem eigentlichen Problem:

Code:

steady(7)=epsilon*A*alphatilde-b-(eta/(1-eta))*c*theta+(1-zeta)*T+beta*(1-rho_ex)*epsilon*A*(H-alphatilde);
steady(8)=H-Erwartungswert...
 


Dabei sind jede Menge Variabeln (die durch andere Gleichungen bestimmt werden) und Parameter enthalten.
Ich weiß nicht wie ich den Erwartungswert der gestutzten LogNormalverteilung ausdrücken soll. Der Support ist definiert von alphatilde bis Inf. Alphatilde wird durch steady(7) ausgedrückt.

Wenn ich H als Parameter deklariere, Anfangswerte für die Variabeln festlege gibt mir Matlab brauchbare Ergebnisse. Nur ist H kein Parameter sondern eine Variable.

Erstmal vielen Dank für die schnelle Hilfe! Ich hoffe es ist nun klarer.

Viele Grüße

becher
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.03.2012, 14:00     Titel:
  Antworten mit Zitat      
Hallo,

das mindeste, was man zusätzlich braucht, ist:
- der Aufruf von FSOLVE
- die Deklarationszeile der Funktion, die aufgerufen wird.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
becher
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 06.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2012, 14:26     Titel:
  Antworten mit Zitat      
Hallo,

hier die Deklaration der Funktion:
Code:


function f=eq(x)

alphatilde=x(1)
H=x(2)

%Parameter Deklaration


f(1)=epsilon*alphatilde-b-*c*theta+(1-zeta)*T+beta*(1-rho_ex)*epsilon*A*(H-alphatilde);

f(2)=Erwartungswert...;

end

guess=[2.16 4.26]
result=fsolve(@eq,guess)

 


Das Problem ist also das ich nicht weiß wie ich f(2) ausdrücken soll. Wenn ich H in die Parameter deklaration aufnehme und den Anfangswert (4.26) zuweise, passt das ergebniss ungefähr. Hab Matlab vorher noch nicht benutzt, deswegen weiß ich nicht ganz genau welche Informationen gebraucht werden und welche nicht Smile

Viele Grüße

becher
Private Nachricht senden Benutzer-Profile anzeigen
 
becher
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 06.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2012, 16:44     Titel:
  Antworten mit Zitat      
Ich hoffe, das Problem ist jetzt erkennbar geworden.

Viele Grüße

becher
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.03.2012, 16:50     Titel:
  Antworten mit Zitat      
Hallo,

leider habe ich auch noch andere Verpflichtungen als das Forum Wink

Wenn ich das richtig verstehe, dann hat das Problem weniger mit dem Lösen der Gleichungen als mit der Bestimmung des Erwartungswerts bei vorgegebenen Parametern zu tun?

Im Zweifelsfall würde ich 100000 (oder mehr) Zufallszahlen von der Verteilung erzeugen und schauen, was der Mittelwert ist. Eleganter sieht anders aus, aber sollte hinkommen. Nach Möglichkeit über RNG sicherstellen, dass immer dieselben Zufallszahlen genommen werden, sonst könnte es zu unschönen Effekten kommen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
becher
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 06.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2012, 17:20     Titel:
  Antworten mit Zitat      
Hallo Harald,

möchte mich erstmal für deinen unermüdlichen Einsatz bedanken! Es ist völlig richtig, dass das Gleichungen lösen nicht das Problem ist

Ich weiß nicht ob das mit den Zufallszahlen funktioniert, da die Verteilung ja nicht den vollen Support hat. Ich wüsste auch ehrlich gesagt überhaupt nicht, wie ich diese Lösungen implmentieren sollte. Der Erwartungswert sowie die Standardabweichungen der kompletten Verteilung ist mir bekannt.

Grundsätzlich ist die Formel für den Erwartungswert einer gestutzten Verteilung:



<br />
\frac{1}{1-F(\tilde\alpha)}\int_{\tilde\alpha}^{\infty}\alpha f(\alpha)d \alpha
<br />

<br />

In Mathematica gibt es die Möglichkeit, die Formel so zu schreiben und die PDF und CDF zu definieren. Ohne einen Wert für alpha wird dann für ein beliebiges alphatilde der bedingte Erwartungswert numerisch ausgegeben.

Nun würde ich das gerne in mein Problem implementieren.

Viele Grüße

becher
Private Nachricht senden Benutzer-Profile anzeigen
 
becher
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 06.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.03.2012, 17:52     Titel:
  Antworten mit Zitat      
Um den Thread abzuschließen, hier die Lösung:

quadgk(@(x) x.*normpdf(x)./(1-normcdf(0)), 0, 10)

siehe

http://www.mathworks.de/support/sol.....=ML&solution=1-79H6QB
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 - 2025 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.