在MATLAB中定义一个函数

时间:2016-12-02 12:46:26

标签: error-handling undefined integration

我写下了一个代码,用函数ParEa来计算积分J,如下所示:

Laa = 0.01;
ja = 1;
De = 0.001;
J = @(Oma) ja.* Oma .*exp(-Oma/Laa);
ParEaa = @(Oma) pi.^(-1).*J./(Oma.*(Oma + De));
IParEaa = integral(ParEaa, 0, inf)

但它给出了错误:

  

未定义的功能或方法'积分'输入参数     输入' function_handle'。

     

==>中的错误样品在9点   IParEaa =积分(ParEaa,0,inf)

我想在不将J的显式表达式替换为ParEa的情况下计算积分?我该怎么办?

1 个答案:

答案 0 :(得分:0)

我认为你正在混淆符号和数字整合。 我不能用Matlab检查,但我建议如下:

用于数值模拟:

J = @(Oma) ja.* Oma .*exp(-Oma/Laa);
ParEaa = @(Oma,J) pi.^(-1).*J./(Oma.*(Oma + De));
IParEaa = integral(ParEaa, 0, inf)

对于符号集成:

syms oma
expr = pi^(-1)*(ja*Oma*exp(-Oma/Laa))/(Oma*(Oma + De));
int(expr,oma,0,inf)

我希望它有效, 迈克尔