Casio fx-CG 100 Python: Infinite Series and Fresnel Integrals
Introduction
Many functions, such as the Fresnel Integrals, the Zeta function, and the error function, can be calculated using infinite polynomials by the sum:
f(x) = Σ( g(x, n) from n = 0 to n = ∞) or
f(x) = Σ( g(x, n) from n = 1 to n = ∞)
where:
f(x): the function to be calculated
g(x, n): the infinite series representative of (x)
g(x, n) often includes the factorial function n!, where n starts at either 0 or 1 to infinity. While I was programming on fx-CG 100, I did not find a factorial function in the math module that is included in the MicroPython. So I included a definition of the factorial function as:
# factorial function
def fact(n):
f=1
if n<=1:
return 1
else:
for i in range(2,n+1):
f*=i
return f
While this function does not check for negative integers, it gives the default values 0! = 1! = 1.
The main program sets up a sum, ask for initial values, and set up a check variable w = g(x,n), with a high initial value to “fail” the loop test. The loop template is set up as:
w=initial value
n=0 (start value of n)
while abs(w)>=1e-20: (1e-20 is a tolerance value, which can be adjusted)
w=g(x,n)
s+=w
n+=1
An Example: Cosine of x Squared
Radians mode is used and is the default angle mode in Python.
cos(x²) = 1 – x^4 ÷ 2 + x^8 ÷ 24 – x^12 ÷ 720 + x^16 ÷ 40320 - …
= Σ( x^(4*n) * (-1)^n ÷ (2n)!, n = 0 to n = ∞)
In this case, g(x,n) = x^(4*n) * (-1)^n ÷ (2 * n)!
I set accuracy tolerance of 1 * 10^-20 but formatted the answer to 12 decimal places.
Casio fx-CG 100 Micropython: cossq.py
# cosine of x squared by series
# template of infinite series
# math module so pi is allowed
from math import *
# factorial function
def fact(n):
f=1
if n<=1:
return 1
else:
for i in range(2,n+1):
f*=i
return f
# main program
# setup sum
s=0
# ask for x
print("cos(x**2) by series")
x=eval(input("x radians: "))
# series
# set term artificially high
w=100
# set counter at beginning
n=0
# series loop
while abs(w)>=1e-20:
w=x**(4*n)*(-1)**(n)/fact(2*n)
s+=w
n+=1
# answer
print("{0:.12f}".format(s))
Examples:
Example 1: Input: x = 0.5, Result: 0.968912421711
Example 2: Input: x = 1.7, Result: -0.968517164228
Fresnel Integrals
There are two Fresnel integrals.
Cosine Fresnel Integral:
C(x) = ∫( cos( t^2) dt, t = 0 to t = x)
This integral is represented by the infinite series:
C(x) = Σ( x^(4*n + 1) * (-1)^n ÷ ((2* n)! * (4 * n + 1)), n = 0 to n = ∞)
Sine Fresnel Integral:
S(x) = ∫( sin( t^2) dt, t = 0 to t = x)
This integral is represented by the infinite series:
S(x) = Σ( x^(4*n + 3) * (-1)^n ÷ ((2* n + 1)! * (4 * n + 3)), n = 0 to n = ∞)
Casio fx-CG 100 Micropython: fresnel.py
# Fresnel Integrals
# template of infinite series
# Eddie W. Shore, 11/23/2025
from math import *
# factorial function
def fact(n):
f=1
if n<=1:
return 1
else:
for i in range(2,n+1):
f*=i
return f
# main program
# c: cosine, s=sine
c=0
s=0
# ask for x
x=eval(input("x radians: "))
# series
# set term artificially high
w=100
# set counter at beginning
n=0
# series loop
while abs(w)>=1e-20:
a=(-1)**n*x**(4*n+1)/(fact(2*n)*(4*n+1))
b=(-1)**n*x**(4*n+3)/(fact(2*n+1)*(4*n+3))
w=max(a,b)
c+=a
s+=b
n+=1
# answer
print("x:{0:.12f}".format(x))
print("Fresnel Cosine:\n{0:.12f}".format(c))
print("Fresnel Sine:\n{0:.12f}".format(s))
Examples:
Example 1: x = 0.4,
C(0.4) ≈ 0.398977212913, S(0.4) ≈ 0.021294355570
Example 2: x = 3.1,
C(3.1) ≈ 0.605132097879, S(3.1) ≈ 0.785491219284
Eddie
All original content copyright, © 2011-2026. Edward Shore. Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited. This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.






