【问题标题】:Define a function in MATLAB在 MATLAB 中定义一个函数
【发布时间】:2016-12-02 22:19:09
【问题描述】:

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

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 的情况下计算积分?我该怎么做?

【问题讨论】:

    标签: error-handling undefined integration


    【解决方案1】:

    我认为您混淆了符号积分和数字积分。 我无法检查 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)
    

    我希望它有效, 迈克尔

    【讨论】:

    • 谢谢。但是数值模拟给出了同样的错误。至于符号积分,我不想替换函数。
    • 你好,我希望它仍然相关。我检查了数字,我认为将 J 替换为 ParEaa 更好。这样,函数只依赖于一个变量。对于象征性的,你为什么不想替代呢?一般来说,您想要只有一个“值”还是想要整个表达式?米查
    • 嘿,我终于有机会使用 Matlab 进行检查了。以下代码在我的机器上运行:Laa = 0.01; ja = 1; De = 0.001; J = @(Oma) ja.* Oma.*exp(-Oma./Laa); ParEaa = @(Oma) pi^(-1).*J(Oma)./(Oma.*(Oma + De)); IParEaa = integral(ParEaa, 0, inf)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-18
    相关资源
    最近更新 更多