gpt4 book ai didi

r - 如何在 R 中定义常量

转载 作者:行者123 更新时间:2023-12-02 04:58:05 25 4
gpt4 key购买 nike

让我描述一下问题设置。我描述的函数是一个概率函数,在积分时它的值必须等于 1。所以我将积分的结果除以 1 得到 C 的值。所以我不能给 C 赋值.

看看下面的代码和错误信息-

> f <- function(x) (C*x*(exp(-x)))
> z=integrate(f, lower = 0, upper=Inf)
Error in C * x : non-numeric argument to binary operator

我应该如何在这里定义 C


第二个问题 - 有人能猜出 z 的值有什么问题吗?

> f <- function(x) (x*(exp(-x)))
> z=integrate(f, lower = 0, upper=Inf)
> z
1 with absolute error < 6.4e-06
> 1/z
Error in 1/z : non-numeric argument to binary operator

最佳答案

当您计算函数的积分时,使 C = 1。为此,您可以使用默认值将其作为函数的可选参数:

f <- function(x, C = 1) C * x * exp(-x)

然后,计算:

z <- integrate(f, lower = 0, upper = Inf)

要使 1 的积​​分为 Creal 值,您需要 C * z == 1,即:

C <- 1 / z$value
C
# [1] 1

事实证明,积分 z 已经等于 1 所以选择 C = 1 是一个幸运的选择。您无事可做,可以按原样开始使用 f。如果不是这样,我会建议重新定义 f:

f_final <- function(x) f(x, C = 1 / z$value)

(关于您的第二个问题,您只需查看 ?integrate 的文档并引用“值”部分。)

关于r - 如何在 R 中定义常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19613777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com