2016-04-24 13 views
1

Ich verwende "Integral" Subroutine in MATLAB, um einige Integrale zu bewerten. Wir wissen, dass "Integral" auf einer adaptiven Quadraturregel beruht.
Ist es möglich und wie wird die Anzahl der Funktionsauswertungen in "integral" zurückgegeben?Auswertung Anzahl in Matlab integrale Funktion

+0

fügen Sie bitte weitere Details für Ihre Frage hinzu. Zum Beispiel: Wie sieht die Eingabe aus und was ist die gewünschte Ausgabe? – drorco

+0

Vielleicht schauen Sie einfach in den MATLAB-Anwendungsordner "integral.m" (oft werden MATLAB-Funktionen selbst in MATLAB-Code geschrieben). Vielleicht können Sie den Code ändern oder in 'integralFctCount' kopieren und dann einen Zähler für Funktionsauswertungen in ihn einfügen. – tim

+0

@drorco Zum Beispiel möchte ich "[S, n] = Integral (f, a, b)", wobei "S" der Wert des Integrals und "n" die Anzahl der Funktionsbewertungen ist. Hier verwenden wir die Standardfehlertoleranz im "Integral" -Unterprogramm. – booksee

Antwort

0

JA!
Ich musste dies leider nur tun, um einen MATLAB mit Python-Implementierung zu vergleichen. Sagen Sie Ihre MATLAB-Funktion ist:

function value = integrand(x, flag, F,K,vol,T2,T1) 
value = (log(x ./ (x+K)) + 0.5 .* (vol.^2) .* (T2-T1)) ./ (vol .* sqrt(T2 - T1));end 

Und Ihre Aufruf der Funktion ist:

quadgk(@(x) integrand(x, flag, F, K, vol, T2, T1), -K, Inf, 'AbsTol',tolerance); 

einen Haltepunkt an der Funktion Einstiegspunkt anlegen (indem Sie auf der linken Seite der Funktion klicken, value in diesem Beispiel), führen Sie die Funktion mit ihren Eingängen aus und klicken Sie dann auf die Variable x im Arbeitsbereich und es wird Ihnen die Größe angezeigt, die der Anzahl der Integrationspunkte in der Funktion entspricht. Es gibt Ihnen auch die Werte, die während der Integration übergeben wurden.