Introduction
今日は、変分法の可視化を実装しました。変分法は、汎関数を最小化させるために使われます。汎関数とは、関数の関数のようなものです。変分法については、 [1],[2],[3],[5], [6]などを参考にしてください。
概要
Reference
[1]http://www2.kaiyodai.ac.jp/~takenawa/optimization/resume10-4.pdf
[2]http://hooktail.sub.jp/mathInPhys/brachisto/
[3]http://eman-physics.net/math/differential21.html
[4]http://bicycle1885.hatenablog.com/entry/2014/02/14/023734
[5]http://www2.kaiyodai.ac.jp/~yoshi-s/Lectures/Optimization/2013/lecture_6.pdf
[6]http://www.qi.mp.es.osaka-u.ac.jp/personal/imoto/index-j/jugyou/Kaiseki170427.pdf
今日は、変分法の可視化を実装しました。変分法は、汎関数を最小化させるために使われます。汎関数とは、関数の関数のようなものです。変分法については、 [1],[2],[3],[5], [6]などを参考にしてください。
概要
- 汎関数
- 実装
- 可視化
汎関数
今回は、次のような汎関数を使います。
F(x) = \sqrt{1+(\frac{du}{dx}(x))^2}
l(u) = \int_{0}^{1} \sqrt{1+(\frac{du}{dx}(x))^2} dx
l(u)はu(x)という曲線の長さです。.
u(0)=a and u(1)=bという制約のもと、l(u)を最小化したいといます。
最適なl(u)は
u(x) = (b-a)x+a
となります。
(0,a) から (1,b)への直線になっているのがわかります。
これは、l(u)はuの曲線の長さなので、これを最小化するためには直線が一番であることが直観的にわかります。
変分法での導出は、[5]を参考にしてください。
実装
変分法における最適な曲線とそうでない曲線の違いを可視化する実装をしました。
u_Aを
u_A = (b-a)x+a + A sin(8t)
とします。
とします。
A sin(8t) はuから話す役割を持ちます。. A \in [0,0.5]であり、もしA=0であれば、u_A=uです。
githubでcodeを公開しています。
可視化
上側の画像はu_A(x)を表しています。下側の画像はl(u_A)の値を表しています。
u_A(x)がuに近づくほど、l(u_A)が小さくなることがわかります。
Reference
[1]http://www2.kaiyodai.ac.jp/~takenawa/optimization/resume10-4.pdf
[2]http://hooktail.sub.jp/mathInPhys/brachisto/
[3]http://eman-physics.net/math/differential21.html
[4]http://bicycle1885.hatenablog.com/entry/2014/02/14/023734
[5]http://www2.kaiyodai.ac.jp/~yoshi-s/Lectures/Optimization/2013/lecture_6.pdf
[6]http://www.qi.mp.es.osaka-u.ac.jp/personal/imoto/index-j/jugyou/Kaiseki170427.pdf
コメント
コメントを投稿