アプリ版:「スタンプのみでお礼する」機能のリリースについて

有理数や無理数の連分数展開のやり方が分からないのですが、どうしたらできるのでしょうか?
逆に√2の連分数から√2を求める事には成功しています。
x+1=2+(1/x+1)をときました。
同じ感じで逆に計算していけば連分数が求まると思ったのですが、なかなかそうもいきませんでした。

A 回答 (5件)

A[i]の整数部分をB[i], 小数部分をC[i]としたときに、A[i+1]=1/C[i]とすればOKと考えます。



A[1]=B[1]+1/A[2]
=B[1]+1/(B[2]+1/A[3])
=B[1]+1/(B[2]+1/(B[3]+1/…))

もちろん、C[i]=0になれば、そこで連分数展開は終了。また、A[m]=A[n]の場合は、連分数展開が循環することになります。

√3の連分数展開を考えると、
A[1]=√3, B[1]=1, C[1]=√3-1
A[2]=(√3+1)/2, B[2]=1, C[2]=(√3-1)/2
A[3]=√3+1, B[3]=2, C[3]=√3-1
A[4]=A[2]は明らか。これらから
B[i]は1,1,2,1,2,1,2,...という数列をなす。

したがって、√3="1" + 1/("1" + 1/("2" + 1/("1" + 1/("2" + 1/...))))
となります。
    • good
    • 0

#1です。

補足します。

私の言おうとしてることは、質問にあるやり方だと、

√2 のときは x+1=2+(1/x+1)
√3 のときは x+1=2+(2/x+1)
√4 のときは x+1=2+(3/x+1)
√5 のときは x+1=2+(4/x+1)
√6 のときは x+1=2+(5/x+1)
√7 のときは x+1=2+(6/x+1)
√8 のときは x+1=2+(7/x+1)

としてやるということです。

この回答への補足

たとえば√3 のときは分子が1ではなく2になるんですが・・・

補足日時:2004/08/11 08:33
    • good
    • 0

√2=1.41421356...なので、


まず√2から引ける最大の自然数1を引きます。
√2-1=0.41421356...になるので、この逆数を計算します。
1/(√2-1)=2.41421356...になるので、ここからひける最大の自然数2を引きます。
1/(√2-1)-2=0.41421356...になるので、この逆数を計算します。
以下これを繰り返します。

途中で引き算をした自然数、1,2,2,2,‥
が求めたい連分数に表れる自然数です。

ご存知であるとは思いますが、有理係数の二次式の解
いわゆる√xの連分数展開は巡回しますので、
途中まで計算するだけで連分数展開が完全にもとまりますが、
たとえばπなどの超越数の連分数展開は巡回しませんので、
地道に上記の方法で計算するぐらいだと思います。

コンピュータの電卓をつかえば七段ぐらいまでは
簡単に計算することができますが、それ以上を
求めたいのであれば、プログラムを作って
計算させるのがよいと思います。
計算法自体はガウス記号と逆数演算ぐらいですし。
    • good
    • 0
この回答へのお礼

ユークリッドの互除法に 似ている気がするのですが、気のせいですか?
いろいろ試してみます

お礼日時:2004/08/10 13:51

最大公約数を求めるユークリッドの互除法というのがありますが、あれを応用すると、連分数展開できます。


A[n] = B[n]*Q[n]+R[n]
A[n+1]=B[n]
B[n+1]=R[n]
(ただし、A[n],B[n],Q[n]は整数、R[n]は実数。)
というような漸化式(ユークリッド互助法そのもの)
を書き直すと、A[1]/B[1]の連分数展開が求まります。
A[1]/B[1] = Q[1] + R[1]/B[1]
= Q[1] + 1/(B[1]/R[1])
= Q[1] + 1/(A[2]/B[2])
= Q[1] + 1/(Q[2] + R[2]/B[2])
= Q[1] + 1/(Q[2] + 1/(B[2]/R[2]))
= Q[1] + 1/(Q[2] + 1/(Q[3] + R[3]/B[3]))
...
= [Q[1], Q[2], Q[3], ... ]
みたいな感じです。

具体的に√2の連分数展開を求めたいなら、A[1]=√2、B[1]=1と置いて、漸化式を計算して、Q[n]を並べていけばいいです。

この回答への補足

ユークリッドの互除法による、最大公約数の求め方は知っていますが、
漸化式ってなんですか?

補足日時:2004/08/10 13:47
    • good
    • 0

x=√nとします。



1/(x+1) = (x-1)/(n-1)
(n-1)*{1/(x+1)} = x-1
(n-1)*{1/(x+1)}+2 = x+1
です。
(n-1)を掛けないといけないと思います。

この回答への補足

√3を上のようにしてみたんですが、よくわかりません。

補足日時:2004/08/10 13:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!