Previous Up Next

2.8.7  Continued fraction representation of a real : dfc

dfc takes as argument a real or a rational or a floating point number a and an integer n (or a real epsilon).
dfc returns the list of the continued fraction representation of a of order n (or with precision epsilon i.e. the continued fraction representation which approachs a or evalf(a) with precision epsilon, by default epsilon is the value of the epsilon defined in the cas configuration with the menu CfgCas Configuration).
convert with the option confrac has a similar functionnality: in that case the value of epsilon is the value of the epsilon defined in the cas configuration with the menu CfgCas Configuration (see 2.21.23) and the answer may be stored in an optionnal third argument.

Remarks

If dfc(a)=[a0,a1,a2,[b0,b1] that means :

a=a0+
1
a1+
1
a2+
1
b0+
1
b1+
1
b0+...
 

If dfc(a)=[a0,a1,a2,r] that means :

a=a0+
1
a1+
1
a2+
1
r
 

Input :

dfc(sqrt(2),5)

Output :

[1,2,[2]]

Input :

dfc(evalf(sqrt(2)),1e-9)

Or :

dfc(sqrt(2),1e-9)

Output :

[1,2,2,2,2,2,2,2,2,2,2,2,2]

Input :

convert(sqrt(2),confrac,’dev’

Output (if in the cas configuration epsilon=1e-9) :

[1,2,2,2,2,2,2,2,2,2,2,2,2]

and [1,2,2,2,2,2,2,2,2,2,2,2,2] is stored in dev.
Input :

dfc(9976/6961,5)

Output :

[1,2,3,4,5,43/7]

Input to verify:
1+1/(2+1/(3+1/(4+1/(5+7/43))))
Output :
9976/6961
Input :

convert(9976/6961,confrac,’l’)

Output (if in the cas configuration epsilon=1e-9) :

[1,2,3,4,5,6,7]

and [1,2,3,4,5,6,7] is stored in l
Input :

dfc(pi,5)

Output :

[3,7,15,1,292,(-113*pi+355)/(33102*pi-103993)]

Input :

dfc(evalf(pi),5)

Output (if floats are hardware floats, e.g. for Digits=12) :

[3,7,15,1,292,1.57581843574]

Input :

dfc(evalf(pi),1e-9)

Or :

dfc(pi,1e-9)

Or (if in the cas configuration epsilon=1e-9) :

convert(pi,confrac,’ll’)

Output :

[3,7,15,1,292]

Previous Up Next