• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mの平方根の連分数展開なのですがうまく動きません。)

連分数展開の問題について

このQ&Aのポイント
  • 連分数展開の問題について調べている際、mの平方根に関するサブルーチンがうまく動作しないことに悩んでいます。
  • サブルーチン内の計算で何か問題があるのか、または別の方法で連分数展開を実装する必要があるのか、アドバイスをいただきたいです。
  • 連分数展開の計算を行う際に正しい結果が得られないため、問題が何なのか理解したいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

なんで、こんな難しくなるの? 一番単純な形だと、         1 √m = a1 + ──         X で、a1 は、√mの整数部。で、この X は、√m-a1 の逆数で、 それを又、この形にしてゆく、の繰返しでしょ。    subroutine keisan(m)    integer i,m,a;    double x;       x = sqrt(real(m))    a = int(x);       write(*,*) 'a=',a       do 10 i = 1, 20     if (x .eq. a) return;     x = 1.0 / (x - a)     a = int(x)     write(*,*) 'a=',a  10 continue    return    end # fortran は、ずいぶん久しぶりなので、文法間違いがあったらごめんなさい

chikako-imagawa
質問者

お礼

無事にプログラム完成致しました。ありがとうございました♪

chikako-imagawa
質問者

補足

ありがとうございます・・・でも、「誤差なく」値を出せということだったんでこんなに複雑になったんです。 ヒントとして“X=(X+Y√m)/Zのカタチで書けることが帰納法で証明出来る”というのがあったんで・・・・・