2016-04-24 130 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变量,它会显示与函数中积分点数相等的大小。它还为您提供了集成过程中传递的值。