Loops in Python

Exponentials, Primes, and Trigonometric Functions with Loops

Exponentials, Trigonometric Functions, and Prime Numbers Using Loops

We can approximate mathematical functions using summations and loops. These series expansions stop when the added term is smaller than a chosen error limit (e.g. 0.0001).

1) Exponential Function e^x

Expansion: e^x = 1 + x + x²/2! + x³/3! + ...

x = 2
term = 1.0
sum_val = 1.0
n = 1
while term > 0.0001:
    term = term * x / n
    sum_val += term
    n += 1
print(sum_val)  # ≈ e^2

2) Sine Function sin(x)

Expansion: sin(x) = x - x³/3! + x⁵/5! - x⁷/7! + ...

import math
x = math.radians(30)  # convert degrees to radians
term = x
sum_val = x
n = 1
while abs(term) > 0.0001:
    term *= -x*x / ((2*n)*(2*n+1))
    sum_val += term
    n += 1
print(sum_val)  # ≈ sin(30°) = 0.5

3) Cosine Function cos(x)

Expansion: cos(x) = 1 - x²/2! + x⁴/4! - x⁶/6! + ...

x = math.radians(60)
term = 1.0
sum_val = 1.0
n = 1
while abs(term) > 0.0001:
    term *= -x*x / ((2*n-1)*(2*n))
    sum_val += term
    n += 1
print(sum_val)  # ≈ cos(60°) = 0.5

4) Inverse Sine arcsin(x)

Expansion: arcsin(x) = x + (x³)/6 + (3x⁵)/40 + (5x⁷)/112 + ...

x = 0.5
term = x
sum_val = x
n = 1
while abs(term) > 0.0001:
    term *= ( (2*n-1)**2 * x*x ) / ( (2*n)*(2*n+1) )
    sum_val += term
    n += 1
print(sum_val)  # ≈ arcsin(0.5) = 0.523...

5) Inverse Cosine arccos(x)

Since arccos(x) = π/2 - arcsin(x), we reuse arcsin:

y = 0.5
arcsin_val = math.asin(y)  # from expansion or math library
arccos_val = math.pi/2 - arcsin_val
print(arccos_val)  # ≈ arccos(0.5) = 1.047...

6) Prime Numbers with Loops

Checking prime numbers using trial division:

n = 29
is_prime = True
if n < 2:
    is_prime = False
else:
    for i in range(2, int(n**0.5)+1):
        if n % i == 0:
            is_prime = False
            break
print(is_prime)  # True for 29

Generating primes up to 50:

for num in range(2, 51):
    for i in range(2, int(num**0.5)+1):
        if num % i == 0:
            break
    else:
        print(num, end=" ")
# 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47

7) Assignments

Q1: Approximate e^3 using summation until error < 0.0001.

x = 3
term = 1.0
sum_val = 1.0
n = 1
while term > 0.0001:
    term = term * x / n
    sum_val += term
    n += 1
print(sum_val)

Q2: Write a loop to approximate cos(90°).

x = math.radians(90)
term = 1.0
sum_val = 1.0
n = 1
while abs(term) > 0.0001:
    term *= -x*x / ((2*n-1)*(2*n))
    sum_val += term
    n += 1
print(sum_val)  # ~0

© Champak Roy • Python Lesson on Exponentials, Trigonometric Functions, and Primes

Post a Comment

0 Comments

Me