Upload
kazuhiro-hishinuma
View
918
Download
0
Embed Size (px)
DESCRIPTION
再帰でつくる、計算の世界 –最急降下法による最適化シミュレーションを通して– 10LISP'00 LT 発表資料 cf. http://connpass.com/event/2933/
Citation preview
はじめに数値計算と Scheme数値実験とまとめ
.
.
. ..
.
.
再帰でつくる、計算の世界–最急降下法による最適化シミュレーションを通して–
Kaz. Hishinuma ([email protected])
明治大学情報科学科 数理最適化研究室
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
きょうの内容Scheme って、なにが得意?
.
.
きょうの内容
Schemeって、なにが得意?数学とSchemeは仲良しなの?√
2の値を求めてみよう!
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
きょうの内容Scheme って、なにが得意?
.
.
きょうの内容
Schemeって、なにが得意?数学とSchemeは仲良しなの?√
2の値を求めてみよう!
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
きょうの内容Scheme って、なにが得意?
.
.
Schemeが得意なこと
Schemeが得意なことは・・・
再帰プログラミング
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
きょうの内容Scheme って、なにが得意?
.
.
Schemeが得意なこと・・・
Schemeだと、好きなだけ再帰呼び出しができる!!1
1ただし末尾再帰に限るKaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
きょうの内容Scheme って、なにが得意?
.
.
Schemeが得意なこと・・・
\(>ヮ<)/きゃっほぉ♪
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
きょうの内容Scheme って、なにが得意?
.
.
Schemeが得意なこと・・・
( ˘⊖˘ ) 。o(それって、何が嬉しいんだろう・・・)
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数学と Scheme は仲良しなの?√2 の値を求めてみよう! (前編)√2 の値を求めてみよう! (中編)
.
.
きょうの内容
Schemeって、なにが得意?数学とSchemeは仲良しなの?√
2の値を求めてみよう!
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数学と Scheme は仲良しなの?√2 の値を求めてみよう! (前編)√2 の値を求めてみよう! (中編)
.
.
数学と Schemeは仲良しなの?
再帰を書くことが、Schemeと数学を仲良しにするよ!!
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数学と Scheme は仲良しなの?√2 の値を求めてみよう! (前編)√2 の値を求めてみよう! (中編)
.
.
再帰だとどう書く?
xk =
{0 (k = 0)
2xk−1 + 1 (otherwise)
⇒ xn =???
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数学と Scheme は仲良しなの?√2 の値を求めてみよう! (前編)√2 の値を求めてみよう! (中編)
.
.
C言語なら・・・
int x ( int k )
{
int r = 0;
while ( k-- )
r = 2 * r + 1;
return ( r );
}
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数学と Scheme は仲良しなの?√2 の値を求めてみよう! (前編)√2 の値を求めてみよう! (中編)
.
.
Schemeだと・・・
(define (x k)
(cond ((zero? k) 0)
(else (+ (* (x (- k 1))
2)
1))))
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数学と Scheme は仲良しなの?√2 の値を求めてみよう! (前編)√2 の値を求めてみよう! (中編)
.
.
Schemeは、
再帰を使って、数式をそのままプログラムにできるね!!
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数学と Scheme は仲良しなの?√2 の値を求めてみよう! (前編)√2 の値を求めてみよう! (中編)
.
.
ほかにも・・・
正確な数を扱える! (有理数)
複素数や極座標も扱える!λ and λ and λ ...
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数学と Scheme は仲良しなの?√2 の値を求めてみよう! (前編)√2 の値を求めてみよう! (中編)
.
.
数学と Schemeは仲良し!!
これは使うしかないねっ☆(ゝω・)vキャピ
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数学と Scheme は仲良しなの?√2 の値を求めてみよう! (前編)√2 の値を求めてみよう! (中編)
.
.
きょうの内容
Schemeって、なにが得意?数学とSchemeは仲良しなの?√
2の値を求めてみよう!
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数学と Scheme は仲良しなの?√2 の値を求めてみよう! (前編)√2 の値を求めてみよう! (中編)
.
.
制約なし最適化問題
目的関数f : Rn → Rが与えられたとき、
f (x) の値を最小にする
x(∈ Rn)をさがす
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数学と Scheme は仲良しなの?√2 の値を求めてみよう! (前編)√2 の値を求めてみよう! (中編)
.
.
つまり・・・?
y
x
y=f(x)ここを求めたい
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数学と Scheme は仲良しなの?√2 の値を求めてみよう! (前編)√2 の値を求めてみよう! (中編)
.
.
どうすればいいの・・・?
最急降下法を使おう!!
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と 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 ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数学と Scheme は仲良しなの?√2 の値を求めてみよう! (前編)√2 の値を求めてみよう! (中編)
.
.
つまり・・・?
y
x
y=f(x)
適当な場所に玉
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数学と Scheme は仲良しなの?√2 の値を求めてみよう! (前編)√2 の値を求めてみよう! (中編)
.
.
つまり・・・?
y
x
y=f(x)玉転がる
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数学と Scheme は仲良しなの?√2 の値を求めてみよう! (前編)√2 の値を求めてみよう! (中編)
.
.
つまり・・・?
y
x
y=f(x)良い感じに収束する
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数学と Scheme は仲良しなの?√2 の値を求めてみよう! (前編)√2 の値を求めてみよう! (中編)
.
.
そういえば・・・
なんの話してたっけ?!↓√
2の値を求めなきゃ
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数学と Scheme は仲良しなの?√2 の値を求めてみよう! (前編)√2 の値を求めてみよう! (中編)
.
.√
2の値を求めるには?
ある値xと√
2の値との、誤差 ||x −
√2||を2
最小化しよう!!
2実際は (x2 − 2)2 を最小化した方が良いかもKaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と 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(4x3k−1 − 8xk−1) (otherwise)
||4x3k − 8xk|| が良い感じに小さくなる xkが解
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数学と Scheme は仲良しなの?√2 の値を求めてみよう! (前編)√2 の値を求めてみよう! (中編)
.
.
この式・・・
再帰で書きやすい形だ!!
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数値実験結果まとめ
.
.
実験結果
x1000 = 1.4142135623730951
一夜一夜に人見頃!
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数値実験結果まとめ
.
.
値の動き
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
0 2 4 6 8 10 12 14
"expr.out"
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数値実験結果まとめ
.
.
まとめ
.
..
1 Schemeは再帰が得意!
.
.
.
2 再帰は数学を楽しくする!
.
.
.
3 Schemeを楽しく感じたら、Shibuya.lispへ再帰しよう!!
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界
はじめに数値計算と Scheme数値実験とまとめ
数値実験結果まとめ
Thanks forYour Listening!
Kaz. Hishinuma ([email protected]) 再帰でつくる、計算の世界