有没有办法在 Matlab 中集成函数的对数 f(x) 而无需定义例如 l = log(f(x)?
Is there a way to integrate the log of a function, f(x) in Matlab without defining eg l = log(f(x)?
我有以下代码:
x = 0:0.001:2.5;
gamma_l = @(x) 2*x;
我想整合以下内容:
integral( log(gamma_l), 0 , 0.6 )
但它给了我错误:
Undefined function 'log' for input arguments of type
'function_handle'.
我知道我可以定义:
gamma_l_l = @(x) log(2*x);
integral( gamma_l_l, 0 , 0.6 )
因为它是这样工作的。但是,我想知道为什么第一种情况不起作用。以及是否有一种方法可以在不定义新函数的情况下集成该函数。
您的变量 gamma_l
是一个 anonymous function, and the log
function is not designed to accept function handles 作为输入。相反,您需要定义第二个匿名函数,该函数 计算 gamma_l
给定值,然后将数值结果传递给 log
,如下所示:
result = integral(@(x) log(gamma_l(x)), 0, 0.6);
我有以下代码:
x = 0:0.001:2.5;
gamma_l = @(x) 2*x;
我想整合以下内容:
integral( log(gamma_l), 0 , 0.6 )
但它给了我错误:
Undefined function 'log' for input arguments of type 'function_handle'.
我知道我可以定义:
gamma_l_l = @(x) log(2*x);
integral( gamma_l_l, 0 , 0.6 )
因为它是这样工作的。但是,我想知道为什么第一种情况不起作用。以及是否有一种方法可以在不定义新函数的情况下集成该函数。
您的变量 gamma_l
是一个 anonymous function, and the log
function is not designed to accept function handles 作为输入。相反,您需要定义第二个匿名函数,该函数 计算 gamma_l
给定值,然后将数值结果传递给 log
,如下所示:
result = integral(@(x) log(gamma_l(x)), 0, 0.6);