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

Input Argument nicht erkannt

 

Pythagoras79
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 67
Anmeldedatum: 31.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.03.2010, 13:14     Titel: Input Argument nicht erkannt
  Antworten mit Zitat      
Hi, warum erkennt Matlab ein gegebenes Input Argument nicht?
Habe:
Code:
S=100;X=90;H=80;T=1;t=0;n=100;r=0.1;q=0.2;sigma=0.2;

vor dem Programmstart gegeben.
Beim Aufruf
Code:
payoff(i,j)=max(SET(i,j)-X,0);
        if and(SET(i,j)<=H , SET(i,j)>0)
           payoff(i,j)=-1;
        end

sagt mir Matlab aber: ??? Undefined function or variable 'H'.
Warum? Im Workspace ist H=80 drin!
Hat jemand ne Idee?
Gruß
Private Nachricht senden Benutzer-Profile anzeigen


Lord nibbler

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.03.2010, 13:18     Titel:
  Antworten mit Zitat      
ist das Programm eine Funktion oder ein Skript?
Wenn es eine Funktion ist muss H im Funktionsworkspace definiert werden.
Falls es ein Skript ist muss dieses auch von dem Workspace aufgerufen werden in dem deine Variablen deklariert sind. Im Normalfall der base-WS

Gruß Lord nibbler
 
Pythagoras79
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 67
Anmeldedatum: 31.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.03.2010, 13:34     Titel: Funktion
  Antworten mit Zitat      
Es ist eine Funktion und bei einem anderen Programm funktioniert es. Hmmm. Hb schon Matlab neu gestartet. Ich stell mal den ganzen Code rein.
Code:
%Stock price evolution in a trinomial tree setting

%Data: S=100;X=90;H=80;T=1;t=0;n=100;r=0.1;q=0.2;sigma=0.2;

% S = current stock price, T = maturity, t = current date, n = number of time intervals, sigma = volatility

function Tree = European_call_trin_doc(S,X,T,t,n,r,q,sigma)
 
%Parameterberechnung
delta_t = (T-t)./n;
u = exp(sigma*sqrt(delta_t));
d = exp(-sigma*sqrt(delta_t));
%p=(exp((r-q)*delta_t)-d)/(u-d); %liegt in der Stock Evolution
m=exp(r*delta_t);
v=m^2*(exp(sigma^2*delta_t)-1);

lambda=2;       %Erklären! Woher, Warum Höhe!

p_up=(((v+m^2-m).*exp(lambda*sigma*sqrt(delta_t)))-(m-1))./(((exp(lambda*sigma*sqrt(delta_t))-1)).*(exp(2*lambda*sigma*sqrt(delta_t))-1));
p_down=((exp(2*lambda*sigma*sqrt(delta_t))*(v+m^2-m))-(exp(3*lambda*sigma*sqrt(delta_t)).*(m-1)))/(((exp(lambda*sigma*sqrt(delta_t))-1))*(exp(2*lambda*sigma*sqrt(delta_t))-1));
p_middle=1-p_up-p_down

%payoff=zeros((2*n+1),n+1);

SET=Stock_Evolution_Trinomial(S,T,t,n,sigma);


for i=1:(2*n+1);
    for    j=1:n+1;
       
        payoff(i,j)=max(SET(i,j)-X,0);
        if and(SET(i,j)<=H , SET(i,j)>0)
           payoff(i,j)=-1;
        end
       
        %if (2*j)-i>=0;
        %payoff(i,j)=max(SET(i,j)-X,0);
        %else payoff(i,j)=0;
        %end
    end
end

Test=payoff;

Ziehe dann die Data rein und lass dann die Funktion laufen, aber er erkennt H=80 nicht in der Schleife!
Private Nachricht senden Benutzer-Profile anzeigen
 
InspectorGadget
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 52
Anmeldedatum: 16.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.03.2010, 14:35     Titel:
  Antworten mit Zitat      
Im Funktionsaufruf fehtl ja auch die Übergabe von H!

Dein Code:
Code:
function Tree = European_call_trin_doc(S,X,T,t,n,r,q,sigma)

Ergänze noch H!!
Code:
function Tree = European_call_trin_doc(S,X,H,T,t,n,r,q,sigma)
Private Nachricht senden Benutzer-Profile anzeigen
 
Pythagoras79
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 67
Anmeldedatum: 31.03.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.03.2010, 14:51     Titel: Danke!
  Antworten mit Zitat      
Wusste doch dass es ein Anfängerfehler ist!
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.