2016-04-24 127 views
1

我在MATLAB中使用「積分」子程序來評估一些積分。我們知道「積分」是基於自適應正交規則。
是否有可能以及如何返回「積分」中的函數評估數?matlab積分函數中的評估計數

+0

請爲您的問題添加更多細節。例如:輸入是怎樣的以及期望的輸出是什麼? – drorco

+0

也許只是看看MATLAB應用程序文件夾中的'integral.m'(通常MATLAB函數本身是用MATLAB代碼編寫的)。也許你可以修改代碼或將其複製到'integralFctCount'中,然後在其中引入一個用於函數評估的計數器。 – tim

+0

@drorco例如,我想要「[S,n] =積分(f,a,b)」,其中「S」是積分值,「n」是函數評估的數量。這裏我們在「積分」子程序中使用默認容錯。 – booksee

回答

0

是的!
我只是不幸的不得不做這個來比較一個MATLAB到Python的實現。說你的MATLAB的功能是:

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 

和你的函數調用:

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

在函數入口點放置一個斷點(在這個例子中點擊功能的左側,value ),使用其輸入運行函數,然後在工作區中單擊x變量,它會顯示與函數中積分點數相等的大小。它還爲您提供了集成過程中傳遞的值。