y*****w 发帖数: 1350 | 1 就是如何写iterations。比如我需要得到如下function的运算结果:
f(x) = p*f(x-1), x>=1, p=constant
到最下面时比如x=1, 则f()有固定的distribution或者直接f(0)=constant。
如果我直接在R中输入如上f(x) = p*f(x-1)运行,R会告诉我“could not find
function f”。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~
上面是一个parameter的情况。如果我有两个parameters,比如下面这个recursive
function,应该如何表达呢?是不是必须用到matrix?
f(s,d) = p*f(s-1,d) + q*f(s,d-1), s>=0, d>=0, p=constant, q=constant, f(0,0)
=constant | w*******9 发帖数: 1433 | 2 # one parameter: const =3; p=4
f <- function(x) ifelse(x==0, 3, 4*f(x-1))
In the case of two parameters, the formula f(s,d) = p*f(s-1,d) + q*f(s,d-1)
does not specify the function f(s,d). You need stronger boundary conditions
like f(0, d) for any d and f(s, 0) for any s. | y*****w 发帖数: 1350 | 3 谢谢楼上提供思路,说得很对。two parameters的情况下,需要定义stronger
boundary conditions like f(0, d) for any d and f(s, 0) for any s。但是即使定
义了,比如f(0, d) = 2d and f(s, 0) = 2s,问题还是两个:
1)如何将f(s,d)写入ifelse。在one parameter的情况下,是x==0。在two parameters
的情况下,该如何写f(s,0) and/or f(0,d)呢?
2)如何在R中表达formula f(s,d) = p*f(s-1,d) + q*f(s,d-1)?
)
conditions
【在 w*******9 的大作中提到】 : # one parameter: const =3; p=4 : f <- function(x) ifelse(x==0, 3, 4*f(x-1)) : In the case of two parameters, the formula f(s,d) = p*f(s-1,d) + q*f(s,d-1) : does not specify the function f(s,d). You need stronger boundary conditions : like f(0, d) for any d and f(s, 0) for any s.
| y*****w 发帖数: 1350 | 4 试了一下,好像work了,但是用的是d==0或者s==0而不是f(s,0) and/or f(0,d). R
code如下 (p=q=3):
f <- function(s,d) {
x <- ifelse(d==0, 2s, 3*f(s,d-1))
y <- ifelse(s==0, 2d, 3*f(s-1,d))
z <- x + y
c(x,y,z)
}
parameters
【在 y*****w 的大作中提到】 : 谢谢楼上提供思路,说得很对。two parameters的情况下,需要定义stronger : boundary conditions like f(0, d) for any d and f(s, 0) for any s。但是即使定 : 义了,比如f(0, d) = 2d and f(s, 0) = 2s,问题还是两个: : 1)如何将f(s,d)写入ifelse。在one parameter的情况下,是x==0。在two parameters : 的情况下,该如何写f(s,0) and/or f(0,d)呢? : 2)如何在R中表达formula f(s,d) = p*f(s-1,d) + q*f(s,d-1)? : : ) : conditions
| EM 发帖数: 715 | 5 用recall这个function
0)
【在 y*****w 的大作中提到】 : 就是如何写iterations。比如我需要得到如下function的运算结果: : f(x) = p*f(x-1), x>=1, p=constant : 到最下面时比如x=1, 则f()有固定的distribution或者直接f(0)=constant。 : 如果我直接在R中输入如上f(x) = p*f(x-1)运行,R会告诉我“could not find : function f”。 : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : ~~~~~~~ : 上面是一个parameter的情况。如果我有两个parameters,比如下面这个recursive : function,应该如何表达呢?是不是必须用到matrix? : f(s,d) = p*f(s-1,d) + q*f(s,d-1), s>=0, d>=0, p=constant, q=constant, f(0,0)
|
|