プログラム > 例: ベクトルの局所最小値/最大値の計算
例: ベクトルの局所最小値/最大値の計算
1. 条件文とループを組み合わせて、データセットの局所最小値を求めるプログラムを作成します。
クリックしてこの式をコピー
関数 locmin は入力ベクトル v の各成分をその両隣の成分と比較します。成分 k が両隣の成分より小さい場合、その成分は局所最小値であり、その値と添字が出力ベクトル m に追加されます。
2. このプログラムを利用して、同じデータセットの最大値を求める 2 つ目のプログラムを作成します。
クリックしてこの式をコピー
関数 locmax では、-v を指定して locmin を呼び出したときの結果が使用されます。-v の局所最小値は、目的のベクトルの局所最大値と同じ位置にあります。つまり前者の添字は、そのまま後者の添字であると見なせます。そして、前者の値の符号を反転させると、後者の値になります。したがって、局所最小値の各値に -1 が掛け合わされます。添字と値のペアが出力ベクトル M に 1 つの成分として保存されます。
3. k の確率密度を返す組み込み関数dbinomを使用する関数 f を定義します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
4. 上記の 2 つの関数をプロットします。
クリックしてこの式をコピー
5. 定義したプログラムに渡せるように g(k,n) の成分を配列に保存します。
クリックしてこの式をコピー
6. 組み込み関数 length を使用して、プログラムによって検出された locminlocmax をとる点の数を調べます。
クリックしてこの式をコピー
クリックしてこの式をコピー
7. プログラムを使用して、この関数の 3 つの局所最小点を求めます。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
8. プログラムを使用して、この関数の 2 つの局所最大点を求めます。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
9. この関数をプロットして 3 つの局所最小点と 2 つの局所最大点を表示します。
クリックしてこの式をコピー
10. プログラムを使用して取得した結果と、組み込み関数localminおよびlocalmax (入力として nx2 の行列が必要) を使用して取得した結果を比較します。
a. augment関数を使用して nx2 入力行列を構築します。
クリックしてこの式をコピー
クリックしてこの式をコピー
クリックしてこの式をコピー
b. 組み込み関数を使用して、局所最小点と局所最大点を取得します。
クリックしてこの式をコピー
クリックしてこの式をコピー
両方の結果は同じになります。
* 
プログラムを新たに作成する前に、使用できる組み込み関数がないか必ず確認してください。
これは役に立ちましたか?