Calculus 12: Derivatives Of Trigonometric Functions

Using Python’s sympy library to find numeric & exact solutions
calculus
Author

Tony Phung

Published

January 22, 2025

1. Find x and \(\frac{dx}{dt}\) for \(x=10\cos(t)\)

Let \(x=10\cos(t)\)

  1. Find \(x\)
  2. Find \(\frac{dx}{dt}\) for:
  • \(t=0\)
  • \(t=\frac{\pi}{3}\)
  • \(t=\frac{3\pi}{4}\)

Reference from Ch3-5 Ex-61, Thomas 13e pp.161

2. Hand-Written Solution

3. Python Solution

3.1 numpy solution (numeric only)

import numpy as np
# Let $x=10\cos(t)$. Find $x$ and $\frac{dx}{dt}$ for: 

fn_10cost = lambda t: 10*np.cos(t)
fn_a = fn_10cost(0)
fn_b = fn_10cost(np.pi/3)
fn_c = fn_10cost(3*np.pi/4)

fn_minus_10sint = lambda t: -10*np.sin(t)
dxdt_a = fn_minus_10sint(0)
dxdt_b = fn_minus_10sint(np.pi/3)
dxdt_c = fn_minus_10sint(3*np.pi/4)

print("-"*25)
print("Solutions to a:")
print(fn_a,fn_b,fn_c)
print("-"*25)
print("Solutions to b:")

print(dxdt_a,dxdt_b,dxdt_c)
-------------------------
Solutions to a:
10.0 5.000000000000001 -7.071067811865475
-------------------------
Solutions to b:
-0.0 -8.660254037844386 -7.0710678118654755

3.2 sympy solution (numeric and exact solutions)

from sympy import symbols, diff, sin, cos, pi

x = symbols('x')
t = symbols('t')
# t = 10*np.cos()   # does not work with fns, need to use sympys symbol instead
x = 10*cos(t)
dxdt = diff(x,t)    # calc derv
rl = 10

x_t_0 = str(10*cos(0))
x_t_pi_on_3 = str(10*cos(pi/3))
x_t_3pi_on_4 = str(10*cos(3*pi/4))

print("-"*26)
print("x Equals")
print(f"t = 0: \t\t{x_t_0:>{rl}}")
print(f"t = π/3: \t{x_t_pi_on_3:>{rl}}")
print(f"t = 3π/4: \t{x_t_3pi_on_4:>{rl}}")
print()


value_at_t0 = str(dxdt.subs(t, 0))
value_at_pi_over_3 = dxdt.subs(t, pi / 3)
value_at_3pi_over_4 =dxdt.subs(t, 3 * pi / 4)

print("-"*26)
print("Exact Solutions")
print(f"dxdt: \t\t{str(dxdt):>{rl}}")
print(f"t = 0: \t\t\t{value_at_t0}")
print(f"t = π/3: \t{value_at_pi_over_3}")
print(f"t = 3π/4: \t{value_at_3pi_over_4}")
print()
print("-"*26)
print("Numeric Solutions")
print(f"dxdt: \t\t{str(dxdt):>{rl}}")
print(f"t = 0: \t\t{value_at_t0:>{rl-1}}")
print(f"t = π/3: \t{round(value_at_pi_over_3,1):>{rl-1}}")
print(f"t = 3π/4: \t{round(value_at_3pi_over_4,1):>{rl-1}}")
--------------------------
x Equals
t = 0:              10
t = π/3:             5
t = 3π/4:   -5*sqrt(2)

--------------------------
Exact Solutions
dxdt:       -10*sin(t)
t = 0:          0
t = π/3:    -5*sqrt(3)
t = 3π/4:   -5*sqrt(2)

--------------------------
Numeric Solutions
dxdt:       -10*sin(t)
t = 0:              0
t = π/3:         -8.7
t = 3π/4:        -7.1