ニュートン法とその改良版
wikipedia:ニュートン法のところに改良版が載ってるのでやってみた。
newton =: 1 : '- (u % u d. 1)' NB. そのまま newton2=: 1 : '- (*:@u % (u d. 1 * (u - u@(-(u % u d. 1)))))' NB. 改良版 f =: _2+*: NB. f(x) = x^2 - 2 NB. 2の平方根が求まる f newton^:_ ] 2 1.41421 f newton2^:_ ] 2 1.41421 NB. 収束の早さを確認 f newton^:(i.10) 2000 2000 1000 500.001 250.003 125.005 62.5107 31.2713 15.6676 7.89765 4.07544 f newton2^:(i.10) 2000 2000 666.668 222.225 74.0831 24.7183 8.31129 2.98229 1.54864 1.41448 1.41421
収束のようすをグラフで確認する。