У меня есть функция плотности f_N
, которая определяется следующим образом (K_nu(z)
является модифицированная функция Бесселя):Интеграция функции на MATLAB
Я хочу, чтобы вычислить следующий интеграл для каждого значения N
:
Ниже приводится реализация выше в MATLAB.
for N=1:100
syms z
f [email protected](z) (1/(gamma(N)*sqrt(pi))*(z/2).^(N-0.5).*besselk(0.5-N,z));
g = @(z) f(z).*log(f(z));
val=integral(g,0,Inf);
Но когда я запускаю приведенный выше код, он всегда возвращался NaN для varoious значений N
со следующим предупреждением:
Warning: Infinite or Not-a-Number value encountered
Может кто-то предложить простой способ сделать это или избежать этой проблемы?
замените '^' на '. ^' И сообщите нам, что произойдет. –
Я получаю эту ошибку: 'Ошибка использования * Размеры внутренней матрицы должны совпадать.' – pikachuchameleon
Вам также нужно заменить '*' на.. * '. Эта точка такова, что операции являются элементарными –