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

ドメインのシーケンスを作成します。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 に答える
2

curve関数のベクトル化に成功した場合は、それを描画するために使用できます。

引数にベクトルを渡すことができる関数Vectorizeへのラッパーを作成するために使用します。ht

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 に答える