Contenu connexe Similaire à 再帰でつくる、計算の世界 (11) Plus de Kazuhiro Hishinuma (16) 再帰でつくる、計算の世界10. はじめに
数値計算と Scheme
数値実験とまとめ
数学と Scheme は仲良しなの?√
2 の値を求めてみよう! (前編)√
2 の値を求めてみよう! (中編)
再帰だとどう書く?
xk =
{
0 (k = 0)
2xk−1 + 1 (otherwise)
⇒ xn =???
Kaz. Hishinuma (kazh@acm.org) 再帰でつくる、計算の世界
11. はじめに
数値計算と Scheme
数値実験とまとめ
数学と Scheme は仲良しなの?√
2 の値を求めてみよう! (前編)√
2 の値を求めてみよう! (中編)
C 言語なら・・・
int x ( int k )
{
int r = 0;
while ( k-- )
r = 2 * r + 1;
return ( r );
}
Kaz. Hishinuma (kazh@acm.org) 再帰でつくる、計算の世界
12. はじめに
数値計算と Scheme
数値実験とまとめ
数学と Scheme は仲良しなの?√
2 の値を求めてみよう! (前編)√
2 の値を求めてみよう! (中編)
Scheme だと・・・
(define (x k)
(cond ((zero? k) 0)
(else (+ (* (x (- k 1))
2)
1))))
Kaz. Hishinuma (kazh@acm.org) 再帰でつくる、計算の世界
17. はじめに
数値計算と Scheme
数値実験とまとめ
数学と Scheme は仲良しなの?√
2 の値を求めてみよう! (前編)√
2 の値を求めてみよう! (中編)
制約なし最適化問題
目的関数f : Rn
→ R
が与えられたとき、
f(x) の値
を最小にする
x(∈ Rn
)をさがす
Kaz. Hishinuma (kazh@acm.org) 再帰でつくる、計算の世界
20. はじめに
数値計算と Scheme
数値実験とまとめ
数学と Scheme は仲良しなの?√
2 の値を求めてみよう! (前編)√
2 の値を求めてみよう! (中編)
最急降下法
.
1 適当な初期点 x(0)
∈ Rn
を選ぶ
.
2 x(k+1)
= x(k)
− t∇f(x(k)
) を計算する
.
3 ||∇f(x(k)
)|| の値が良い感じに
小さくなったら終了
たったの3ステップで
とっても簡単だね
Kaz. Hishinuma (kazh@acm.org) 再帰でつくる、計算の世界
25. はじめに
数値計算と Scheme
数値実験とまとめ
数学と Scheme は仲良しなの?√
2 の値を求めてみよう! (前編)√
2 の値を求めてみよう! (中編)
√
2 の値を求めるには?
ある値xと
√
2の値との、
誤差||x −
√
2||を2
最小化しよう!!
2
実際は (x2
− 2)2
を最小化した方が良いかも
Kaz. Hishinuma (kazh@acm.org) 再帰でつくる、計算の世界
26. はじめに
数値計算と Scheme
数値実験とまとめ
数学と Scheme は仲良しなの?√
2 の値を求めてみよう! (前編)√
2 の値を求めてみよう! (中編)
√
2 の値を求めるには?
最急降下法の定義は、
xk =
{
x0 (k = 0)
xk−1 − t∇f(xk−1) (otherwise)
f(x) := (x2
− 2)2
とすると、
xk =
{
2 (k = 0)
xk−1 − t(4x3
k−1 − 8xk−1) (otherwise)
||4x3
k − 8xk|| が良い感じに小さくなる xk が解
Kaz. Hishinuma (kazh@acm.org) 再帰でつくる、計算の世界