2016-04-24 4 views
1

Я использую «интегральную» подпрограмму в MATLAB для оценки некоторых интегралов. Мы знаем, что «интеграл» основан на адаптивном квадратурном правиле.
Возможно ли и как вернуть число функций в «интегральной»?оценка count в функции интегральной функции Matlab

+0

, пожалуйста, добавьте более подробную информацию по вашему вопросу. Например: как выглядит вход и каков желаемый результат? – drorco

+0

Возможно, просто посмотрите на 'integral.m' в папке приложения MATLAB (довольно часто функции 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 в рабочей области, и она покажет вам размер, равный числу точек интеграции в этой функции. Он также дает вам значения, полученные во время интеграции.