0

関数の複雑さ (Θ バージョン) は?

n
∑ = 3 * i 3/2
i=1

n 2は定数または平方根よりも速く成長するため、それは単なる Θ(n 2 ) であると思います。これを正式に証明する方法はありますか?

4

1 に答える 1

1

のより単純なケースを考えてみましょうSum[i=1..n](i^(3/2))

次の積分を考えてみましょうIntegrate[i=(k-0.5)..(k+0.5)](i^(3/2))。ここで、k は正の整数です。

  Integrate[i=(k-0.5)..(k+0.5)](i^(3/2))
= 2/5 * ((k+0.5)^(5/2) - (k-0.5)^(5/2))

すべての正の整数 k に対して、次のことが証明できます。

k^(3/2) < 2/5 * ((k+0.5)^(5/2) - (k-0.5)^(5/2))

平方根がなくなるまで 2 乗、展開、グループ化して解こうとすると、 になりますが40*k^6 - 0.024*k^4 + 0.008*k^2 + 0.0001 = 0、これには明らかに真の解はありません。0 を代入すると、RHS > LHS であることを示します。

(より良い方法があるかどうかはわかりませんが、上記は証明する1つの方法です)。

これは次のことにつながります。

k^(3/2) < Integrate[i=(k-0.5)..(k+0.5)](i^(3/2))

そこから次のことが導き出されます。

Sum[i=1..n](i^(3/2)) < Integrate[i=(0.5)..(n+0.5)](i^(3/2))

すべての正の整数 n に対して。

私たちは知っています:

  Integrate[i=(0.5)..(n+0.5)](i^(3/2))
= 2/5 * ((n+0.5)^(5/2) - 0.5^(5/2))

そう:

Sum[i=1..n](i^(3/2)) < 2/5 * ((n+0.5)^(5/2) - 0.5^(5/2))
Sum[i=1..n](i^(3/2)) = O(n^(5/2))

上記と同じトリックを使用して、積分0.75 * Integrate[i=(k-0.5)..(k+0.5)](i^(3/2))を考えてみましょう。ここで、k は正の整数です。

  0.75 * Integrate[i=(k-0.5)..(k+0.5)](i^(3/2))
= 0.75 * 2/5 * ((k+0.5)^(5/2) - (k-0.5)^(5/2))
= 0.3 * ((k+0.5)^(5/2) - (k-0.5)^(5/2))

すべての正の整数 k に対して、次のことが証明できます。

k^(3/2) > 0.3 * ((k+0.5)^(5/2) - (k-0.5)^(5/2))

証明は、前の部分で示したのと同様の方法で行うことができます。または、単調性を示し、ドメインで許可されている最小の数である k = 1 でテストすることによっても実行できます。

そこから、次のことがわかります。

Sum[i=1..n](i^(3/2)) > 0.75 * Integrate[i=(0.5)..(n+0.5)](i^(3/2))

すべての正の整数 n に対して。

私たちは知っています:

  Integrate[i=(0.5)..(n+0.5)](i^(3/2))
= 0.3 * ((n+0.5)^(5/2) - 0.5^(5/2))

そう:

Sum[i=1..n](i^(3/2)) > 0.3 * ((n+0.5)^(5/2) - 0.5^(5/2))
Sum[i=1..n](i^(3/2)) = Omega(n^(5/2))

したがって、Sum[i=1..n](i^(3/2)) = Theta(n^(5/2))

注:この投稿が移行された場合、証明に問題がある場合は、この投稿を削除してください

于 2013-03-05T16:19:35.897 に答える