Previous Up Next

5.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 approximates 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 functionality: in that case the value of epsilon is the value of the epsilon defined in the cas configuration with the menu CfgCas Configuration (see 5.21.24) and the answer may be stored in an optional 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