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

Auflösen und speichern

 

Rock
Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 14.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2011, 17:51     Titel: Auflösen und speichern
  Antworten mit Zitat      
Hi,

habe hier eine kleine Aufgabe, die ich nicht richtig hinbekomme.

Bin allerdings auch kein Spezi was MATLAB angeht.

Wir haben als Hausaufgabe die Datei im Anhang bekommen.

Wie ich generell Formeln nach bestimmten Variablen auflöse ist mir bekannt, aber irgendwie scheitere ich an der Zusammensetzung der Black-Scholes-Formel.....

Wäre super, wenn mir da einer helfen könnte.

Zu Aufgabe 2 gibt es noch gps-Daten.
aber erstmal zu Aufgabe 1 Wink

schon mal vielen Dank!

matlab_fortgeschrittene.pdf
 Beschreibung:

Download
 Dateiname:  matlab_fortgeschrittene.pdf
 Dateigröße:  88.73 KB
 Heruntergeladen:  3055 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.07.2011, 18:47     Titel:
  Antworten mit Zitat      
Hallo,

beide Aufgaben können mit FSOLVE gelöst werden.

Zur ersten Aufgabe: Betrachte die BS-Formel als eine Funktion der Volatilität v und löse BS(v) = C bzw. BS(V) - C = 0.

Bei konkreten Problemen in der Umsetzung kann man gerne unterstützen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 14.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2011, 20:45     Titel:
  Antworten mit Zitat      
hi,

super das du so schnell geantwortet hast. Very Happy

wie bekomme ich denn die dichtefunktion in die BMS Formel implementiert?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.07.2011, 21:08     Titel:
  Antworten mit Zitat      
Hallo,

mit normcdf.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 14.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.07.2011, 20:09     Titel:
  Antworten mit Zitat      
Hello,

habe im Anhang mal ein Bild von dem gemacht, was ich hinbekommen habe.

Für normcdf fehlen mir Werte oder?

Ich komme an dieser Stelle leider nicht weiter......

Question Question Question Question Embarassed

Versuch Matlab.png
 Beschreibung:

Download
 Dateiname:  Versuch Matlab.png
 Dateigröße:  115.61 KB
 Heruntergeladen:  914 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 15.07.2011, 21:09     Titel:
  Antworten mit Zitat      
Hallo,

die Fehlermeldung ist doch an sich ganz aussagekräftig: die Funktion NORMCDF erwartet double als Input, keine symbolischen Ausdrücke.

Versuchs doch mal mit den von mir vorgeschlagenen Ansätzen, zusammen mit der Hilfe von fsolve.

Code:
f = @(v) [hier kommt BS(v) als lange Formel rein] - C;
fsolve(f, 0.05)


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

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 14.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2011, 19:32     Titel:
  Antworten mit Zitat      
Hi,

weiter geht die wilde Reise.

Ich habe im Editor folgendes geschrieben:
Code:

C=26.53;
S=200;
K=200;
T=1;
r=0.1;

f= @ (sigma) [S*normcdf((log(S/K)+(r+(sigma^2)/2)*T)/(sigma*T^0.5))-K*exp^(-r*T)*normcdf(d1-sigma*T^0.5)]-C;

fsolve (f, 0.05);
 



??? Error using ==> exp
Not enough input arguments.

Error in ==>
@(sigma)[S*normcdf((log(S/K)+(r+(sigma^2)/2)*T)/(sigma*T^0.5))-K*exp^(-r*T)*normcdf(d1-sigma*T^0.5)]-C


Error in ==> fsolve at 254
fuser = feval(funfcn{3},x,varargin{:});

Error in ==> Versuch1 at 8
fsolve (f, 0.05);
Caused by:
Failure in initial user-supplied objective function
evaluation. FSOLVE cannot continue.



Keine Ahnung was an exp an Werten fehlen soll.
und den nächsten Fehler versteh ich mal garnicht!

Wie immer vielen DANK im voraus Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Rock
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 14.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2011, 19:34     Titel:
  Antworten mit Zitat      
ahhhh....

wenn ich um exp komplett ne Klammer setzte ist der Fehler schonmal weg...


jipiiiiii Laughing
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 20.07.2011, 20:07     Titel:
  Antworten mit Zitat      
Hallo,

was an Argumenten fehlt? Probier mal exp^1. Selbst das geht ja schon nicht. Etwas mit der Syntax vertraut machen sollte man sich schon.

Und jetzt fehlt ja nur noch, d1 zu ersetzen.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 14.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 20.07.2011, 21:43     Titel:
  Antworten mit Zitat      
Hi Harald,

wie ich oben schon schrieb, kenne ich mich kaum aus.....

Super, dass du dich trotzdem mit mir rumquälst Smile

Meine Antwort nach d1 auflösung und neuer schreibweise für exp ist:


Equation solved.

fsolve completed because the vector of function values is near zero
as measured by the default value of the function tolerance, and
the problem appears regular as measured by the gradient.

<stopping criteria details>


Matlab gibt mir als Antwort 0,1999 unter "ans" im workspace.

Ach noch eine Frage zu Teil 1:
Was sagt fsolve (f, 0.05) die 0.05 aus?

Dann kann man ja zu Aufgabe 2 schreiten.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.07.2011, 07:37     Titel:
  Antworten mit Zitat      
Hallo,

die 0.05 ist der Startwert für die Suche nach einer Lösung der Gleichung.
Das hätte dir aber auch die Doku verraten Wink

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 14.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.07.2011, 21:31     Titel:
  Antworten mit Zitat      
So im anhang mal die Daten als Excel-Sheet.

Dachte eigentlich, dass ich die Sache wie folgt lösen kann:


c=299792.458;
f= @ (x,delta) [(norm(x-satpos)-c*((differenz-delta)+delta))];
fsolve(f, 0.005);

Zunächst wundere ich mich aber über diese Delta geschichte, was haben die sich dabei gedacht, oder bin ich falsch gewickelt.

t-i-dach = t-i - delta
t-i = differenz aus signallaufzeiten2 - signallaufzeiten1

Wenn ich t-i-dach in F(x,delta) einsetzte fällt delta doch weg, oder?


Als Antwort bekomme ich;

??? Input argument "delta" is undefined.

Error in ==> @(x,delta)[(norm(x-satpos)-c*((differenz-delta)+delta))]


Error in ==> fsolve at 254
fuser = feval(funfcn{3},x,varargin{:});

Error in ==> Aufgabe2 at 4
fsolve(f, 0.005);
Caused by:
Failure in initial user-supplied objective function evaluation.
FSOLVE cannot continue.


Kann fsolve keine 2 Variablen bestimmen?

aufgabe2.rar
 Beschreibung:

Download
 Dateiname:  aufgabe2.rar
 Dateigröße:  5.78 KB
 Heruntergeladen:  641 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 21.07.2011, 22:17     Titel:
  Antworten mit Zitat      
Hallo,

natürlich kann es das. Du musst die beiden Variablen allerdings in einen Vektor stecken, z.B. u mit u(1) = x und u(2) = delta. Das ist übrigens auch klar aus der Dokumentation von FSOLVE ersichtlich.

Es ist ja nicht schlimm, wenn du dich nicht auskennst, aber lies doch bitte mal die Hilfe zu dem Befehl durch? Die Hälfte wenn nicht mehr deiner Fragen werden dort beantwortet.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 15
Anmeldedatum: 14.07.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.07.2011, 10:51     Titel:
  Antworten mit Zitat      
Hallo,

Im Editor habe folgendes stehen:

ich c=299792.458;

f = @(x) [norm(x(1)-satpos)-c*(differenz+x(2))];
fsolve(f,0.005);


??? Attempted to access x(2); index out of bounds because numel(x)=1.

Error in ==> @(x)[norm(x(1)-satpos)-c*(differenz+x(2))]


Error in ==> fsolve at 254
fuser = feval(funfcn{3},x,varargin{:});

Error in ==> Aufgabe2 at 4
fsolve(f,0.005);

Caused by:
Failure in initial user-supplied objective function evaluation. FSOLVE cannot
continue.


Ich verstehe leider nur noch bahnhof.....

Ach und so wie die Formel nun angegeben ist, ist es korrekt.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 31.07.2011, 11:11     Titel:
  Antworten mit Zitat      
Hallo,

wenn dein gesuchter Vektor zwei Komponenten hat, solltest du vielleicht auch zwei Startwerte angeben Wink

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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.