- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mの平方根の連分数展開なのですがうまく動きません。)
連分数展開の問題について
このQ&Aのポイント
- 連分数展開の問題について調べている際、mの平方根に関するサブルーチンがうまく動作しないことに悩んでいます。
- サブルーチン内の計算で何か問題があるのか、または別の方法で連分数展開を実装する必要があるのか、アドバイスをいただきたいです。
- 連分数展開の計算を行う際に正しい結果が得られないため、問題が何なのか理解したいです。
- みんなの回答 (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 は、ずいぶん久しぶりなので、文法間違いがあったらごめんなさい
お礼
無事にプログラム完成致しました。ありがとうございました♪
補足
ありがとうございます・・・でも、「誤差なく」値を出せということだったんでこんなに複雑になったんです。 ヒントとして“X=(X+Y√m)/Zのカタチで書けることが帰納法で証明出来る”というのがあったんで・・・・・