在R中绘制并计算具有误差函数的表达式

时间:2013-03-30 23:34:51

标签: r function

大家好我有函数/表达式和补充错误函数。我想找到不同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)

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

感谢您的帮助。

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:1)

正如here所指出的那样,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()的这些定义。