【问题标题】:How to fix the weird result of integral? [duplicate]如何解决积分的奇怪结果? [复制]
【发布时间】:2018-05-03 09:40:44
【问题描述】:

我想计算积分(@(v)v^46*exp(-v^2),0,inf)。从数学上讲,它是可以计算出来的。但是,当我在 matlab 中运行时,它会给出 NaN。是不是电脑精度的问题?如果是,我该如何解决?我还尝试将 inf 更改为一个很大的不,比如从 10000,100000,1000000,... 值增加然后下降到接近 0 的非常小的不。

在极端情况下,我需要计算积分(@(v)(v-a)^200*exp(-v^2),0,inf),所以我很欣赏基于最后一个积分的任何校正。

【问题讨论】:

    标签: matlab integral


    【解决方案1】:

    根本问题是不可能通过替换浮点数inf 来积分到无穷大。 integral 函数是纯数字的。

    q = integral(fun,xmin,xmax) 对函数 fun 进行数值积分 使用全局自适应正交和默认误差的 xmin 到 xmax 公差。

    您将需要使用符号工具箱,它处理符号而不是浮点值as per this answer

    【讨论】:

    • 如果您认为该答案解决了问题,请将问题标记为重复。
    • @Adriaan 我不认为它是重复的,因为 OP 使用了错误的函数,并且混淆了数字集成和符号操作。可能缺少syms 命令。
    • 我建议的可能有明确的结果。积分(@(v)(v-a)^200*exp(-v^2),0,inf) 怎么样?使用符号时,我该怎么做?它可能没有明确的公式。使用符号工具箱没有帮助。
    • @will_cheuk 你需要使用int 命令
    • 我试过了。见下文: syms u int(exp(-u*u)*(u-10)^46, u, 0, inf) ans = int(exp(-u^2)*(u - 10)^46, u , 0, Inf)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-07
    • 2022-08-17
    • 2013-10-21
    • 2023-01-27
    • 2021-02-13
    • 1970-01-01
    • 2020-06-09
    相关资源
    最近更新 更多