TakaPの数学日記

数学を教えていて感じたことや日常の感想などを記録しました。

収束の速さ比べ

2010年07月01日 11時00分34秒 | 数学
gbさんからの質問3に答えることにする。
それは  x1=1, xn+1=(axn+b)/(cxn+d) という漸化式で,
x1=1, xn+1=(3xn+4)/(2xn+3) よりも
  √2 にもっと速く収束するものを求める、というものだった。
結果を示す。
fn(xn)=(axn+b)/(cxn+d)
f1(xn)=(xn+2)/(xn+1)
f2(xn)=(3xn+4)/(2xn+3)
f3(xn)=(7n+10)/(5xn+7)
f4(xn)=(17xn+24)/(12xn+17)
f5(xn)=(41n+58)/(29xn+41)
f6(xn)=(99xn+140)/(70xn+99)
f7(xn)=(239xn+338)/(169xn+239)
各函数の作り方は
f2(xn)=f1((f1(xn))=f1((xn+2)/(xn+1))
f3(xn)=f2((f1(xn))=f2((xn+2)/(xn+1))
・・・・・・・・・・・・・
それぞれの収束の様子を表にすると
数は計算回数
すなわちnの値
2 =1.414213562373095048801 で小数点以下20桁。
「小数点以下一致桁数」は x20 の値。
「10桁一致」は 1.4142135623 に一致するまでのnの値
「20桁一致」は 1.414213562373095048801に一致するまでのnの値

函数小数点以下一致桁数10桁一致 20桁一致
(xn+2)/(xn+1)  14 14 ×
(3xn+4)/(2xn+3)  30 7 14
(7xn+10)/(5xn+7)  46 5 9
(17xn+24)/(12xn+17)  61 4 7
(41xn+58)/(29xn+41)  75 3 6
(99xn+140)/(70xn+99)  92 3 5
(239xn+338)/(169xn+239)  107 2 4

取り急ぎ作成したので、数に多少のずれがあっても勘弁願いたい。
下の函数ほど収束が速いことが分かる。
各関数はf1(xn)=(xn+2)/(xn+1)から導かれるが
関数f1の導き方については後日アップする。
コメント (2)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする