0

大家好,我有具有互补误差函数的函数/表达式。我想找到不同 x 值的解决方案。互补误差函数可以写为

erfc(x)=1-erf(x)

我的表达是

erfc(\frac{x-Ut}{\sqrt{4Dt}})

我已经用 Latex 语法编写了表达式。怎么样,你会明白的。U 和 D 是上述表达式中的常数。现在,我将使用以下代码分配 x 的值:

x <- seq(from=0,by=0.5,length=500)

现在我想在一个函数上定义上面的表达式,这样我就有了不同 x 值的值。

以下示例演示了我想要的一个简单示例。

x <- seq(from=0,by=0.5,length=500) 
y <- function(x){
  x^2+2*x+1
}
z = y(x) 
plot(x,z)

上面的例子和我想要的不同的是函数的定义。如何在函数上使用带有错误函数的表达式?有没有处理错误功能的特殊包?

谢谢你的帮助。

4

2 回答 2

4

误差函数由基数 R 处理,因为它可以根据正态分布的 CDF 来定义;请参阅以下示例:

http://stat.ethz.ch/R-manual/R-patched/library/stats/html/Normal.html

您所要做的就是定义以下函数:

f <- function(x) 2-2*pnorm(sqrt(2)*(x-Ut)/sqrt(4*Dt))

因为erf(y) = 2*pnorm(sqrt(2)*y)-1.

然后使用

z = y(x) 
plot(x,z)

或者,或者,使用

plot(f, from=0, to=250)
于 2013-03-31T00:29:03.177 回答
2

正如这里所指出的,文档pnorm()说:

## if you want the so-called 'error function'
erf <- function(x) 2 * pnorm(x * sqrt(2)) - 1
## (see Abramowitz and Stegun 29.2.29)
## and the so-called 'complementary error function'
erfc <- function(x) 2 * pnorm(x * sqrt(2), lower = FALSE)

erf()因此,您可以erfc()在函数中使用这些定义。

于 2013-03-31T00:31:00.970 回答