Есть ли способ интегрировать журнал функции f (x) в Matlab без определения, например, l = log (f (x)? - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть следующий код:

x = 0:0.001:2.5;
gamma_l = @(x) 2*x;

И я хочу интегрировать следующее:

integral( log(gamma_l), 0 , 0.6 )

Но это дает мне ошибку:

Неопределенная функция 'log' для входных аргументов типа 'function_handle'.

Я знаю, что могу просто определить:

gamma_l_l = @(x) log(2*x);
integral( gamma_l_l, 0 , 0.6 )

Потому что это работает таким образом.Тем не менее, я хотел бы знать, почему первый случай не работает.И если есть способ интегрировать функцию без определения новой функции.

1 Ответ

0 голосов
/ 13 ноября 2018

Ваша переменная gamma_l является анонимной функцией , а функция log не предназначена для приема дескрипторов функций в качестве входных данных.Вместо этого вам нужно определить вторую анонимную функцию, которая оценивает gamma_l для данного значения, а затем передает числовой результат в log, например, так:

result = integral(@(x) log(gamma_l(x)), 0, 0.6);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...