続・ニュートン法

ある日の夜のお話なんですけどブログに書いたニュートン法について
某チャットにてid:nyaxtさんid:kareyaさんid:ukstudioさんと
お話をしたので掲載します

<nyaxt> あ、あとニュートン法の話ですけど
<nyaxt> 興味深いですねこれ
<nyaxt> あ、ちなみに
<nyaxt> expmodは以前もいいましたがフェルマーテストとは全く
関係ないですよ
<yukky> えーーーー><
<nyaxt> ニュートン法の項ですが、
「平方根の予測値(y)+数(x)/平方根の予測値(y)/2」
<nyaxt> とあるんですが
<nyaxt> これ平方根の場合には成り立つのはわかるんですが
<nyaxt> 一般で成り立つのかどうかわからないので調べてみてます
<yukky> ありがとー!!!
<yukky> そもそもニュートン法なんか分からなかったから
<yukky> 結構頑張って勉強してみたとこだったの><
<nyaxt> あとニュートン法はいつでも有効ではなくて、2回微分
の符号が重要だったはず
<nyaxt> これ忘れてなんでもニュートン法用いようとするひと
おおいのよね
<yukky> え。。。。。
<yukky> ドコで微分かなぁ?
<nyaxt> 予測値ってありますよね?
yukky> うんうん
<nyaxt> 予測値ってどうやってだしてるか理解してます?
<nyaxt> そこが一番の肝なんだけど
<yukky> 適当とか全ての平方根は1に近づくとかなんとかで
<yukky> とにかく1かなぁとか思ってました><
<nyaxt> ???
<yukky> つまり余り考えずに適当な数値を入れてるんじゃないかと。。。
<yukky> あ。。。。
<nyaxt> 切片とx軸の交点なのですげー収束はえーというのが
ニュートン法です
<yukky> スタートの値とカンガイしてました><
(↑勘違いのミスタイプです)
<nyaxt> あ、やはりそうですね
<yukky> たしかx軸とy軸で
<nyaxt> 「平方根の予測値(y)+数(x)/平方根の予測値(y)/2」 
-> これなりたつの平方根の場合のみです
<yukky> 適当な数値を入れて
<nyaxt> SICPの書き方がわるいなこれ
<yukky> 挟み撃ちして
<yukky> 数値を出すんじゃなかったですっけ?
<nyaxt> んー
<nyaxt> 多分ちがう・・・
<nyaxt> 関数の微分てわかりますか?
<yukky> がーーーん><
<nyaxt> それ2分法だとおもう
<yukky> 微分は概念くらいしか。。。。
<nyaxt> んー
<yukky> では多分ニュートン法本体はとばしたほうがいいんじゃ
ないかなー
<yukky> どんどん数を細かくしていくのが微分
<nyaxt> あれはあくまでSICPのiterative procedureの例として
出てるのであって
<yukky> ココまで来たのにーーー....
<nyaxt> なんというか本質ではないです
<yukky> じゃあやっぱり微分分からないと
<nyaxt> ちょときびしいかな
02:33:30 <#1986@freenode:yukky> 本質分からないのかなぁ?
<nyaxt> とりあえずイメージだけならわかりやすいとおもうので
<nyaxt> いい図をさがしているところ
<yukky> wkwk
<nyaxt> http://animation.yihui.name/compstat:newton_s_method
<nyaxt> こんなかんじかなー
<nyaxt> ちょっと対象関数が微妙だなこれ
<kareya> んー。力学系を見せたらいいんじゃない
<nyaxt> 力学系?
<yukky> 図が。。。。図が出てこない><
<nyaxt> >ボタンをおす
<kareya> 一階微分っていう作業をすると、上に上がってるのか、
下がってるのかが分かる。
それをマップにしたのが力学系と捕らえる。
<nyaxt> あ、いや
<nyaxt> 微分から教えるのはちょっと短時間だと厳しいので
<kareya> あー。なるほど
<nyaxt> とりあえずニュートン法ってどんな感じのものなのか
<nyaxt> わかればいいかなーと
<nyaxt> 別に数学本体を学んでいるわけではないので
<nyaxt> あと実際プログラムやってる人でニュートン法マスターしてる
人ってあんまりいないとおもう
<ukstudio> ニュートン法ってなんぞや
<nyaxt> 知識としてしってても使うような人って実際に
科学技術計算にプログラムを使う人だけだしねー
<yukky> ゆうきたん!
<ukstudio> ゆっきー!
<nyaxt> SICPが書かれた時代背景があるからなーこれ
<nyaxt> 当時は本当に計算機としてコンピュータが使われてたから
<yukky> この図はなんか赤い点がどんどんと増えていってるけど
<nyaxt> 計算物理学的な事柄がおおいよねー
<yukky> これってなんだろう?
<nyaxt> それが予測値ですね
<yukky> へーーー!!!
<nyaxt> ニュートン法は結局曲線と直線(x軸)との交点を求める
アルゴリズムなんです
<nyaxt> で
<nyaxt> びゅんびゅんとびまわりながら
<nyaxt> だんだんと交点に近づいていきますよね?
<nyaxt> こういうiterative processの例を示したかったんだと思う>SICP
<yukky> 青い線が短くなっていって
<yukky> 赤い点がまとまって来てる
<nyaxt> そうそう
<nyaxt> 段階的にね
<nyaxt> 一発でもとめようとしないで
<nyaxt> だんだんよくしていくタイプのプログラムも
<nyaxt> アリですよーとSICPはいいたかった
<yukky> そう書いてくれたらそれで良かったよね。。。(TT^TT)
<nyaxt> その一例にニュートン法という数学的手法が
ありますというはなしです
<yukky> なるほど!
<nyaxt> あくまで例なので全部理解する必要はないかなーと
思ったのですがどうでしょう?
<nyaxt> なっとくいった?
<yukky> 結構納得いった感じ!
<nyaxt> それはよかた!

そういえば以前私ある友人からニュートン法について教わっていたのですが
今考えてみるとちゃんとは理解出来ていなかったのだと思いました
なんか一生懸命に教えてもらったのに申し訳ない気がしました
これというのもやっぱりブログやノートなどにきちんと
記録しておかなかったのが問題だったりするなぁとも思いました
復習をちゃんとする事は大事だしもう一度同じ事を聞かないためには
記録する事も重要です
これからはちゃんとどんな事でも勉強した事はブログに書いていきたいです
結構反省する部分でもありました