有没有一种方法可以在不定义例如l = log(f(x))的情况下在Matlab中集成函数f(x)的对数?

时间:2018-11-13 16:05:01

标签: matlab integration

我有以下代码:

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 :(得分:5)

您的变量gamma_lanonymous function,并且log函数的设计目的不是接受function handles作为输入。相反,您需要定义第二个匿名函数,该函数对给定值进行计算 gamma_l,然后将数字结果传递给log,如下所示:

result = integral(@(x) log(gamma_l(x)), 0, 0.6);