4

我想绘制 Haar 函数,其定义为:

h_1_0 = function(t){
    if ((t >= 0) & (t <= 1/2)){return(1)}
    else if ((t >= 1/2) & (t <= 1)){return(-1)}
    else{return(0)}
}

那么第 k 个 Haar 函数为:

h = function(t,n,k){return(2^((n-1)/2) * h_1_0((2^(n-1)) * t - k))}

例如我想画h(t,1,1),它必须是函数:

 1, if 1<=t<=3/2
-1, if 3/2 <=t<=2
 0, otherwise

那么如何在 R 中绘制具有固定 k 和 n 的第 k 个函数?

4

2 回答 2

2

如果您可以成功地矢量化您的函数,看起来可以,您可以使用curve它来绘制它。

用于Vectorize为您的h函数创建一个包装器,允许您将向量传递给参数t

Vh <- Vectorize(h, "t")

用于curve绘制矢量化函数

curve( Vh(t = x, n = 1, k = 1), from = .5, to = 5)

Vh(t=x,n=1,k=1)的曲线

于 2012-05-05T15:02:11.490 回答
2

为域创建一个序列。根据 k 和 n 使用适当的界限:

x <- seq(.5, 2.5, .001)
plot(x, sapply(x, function(x) h(x,1,1)), pch='.', type='l')
于 2012-05-05T14:41:40.220 回答