# minte9 LearnRemember

### Increments method

Instant speed at time = 4 is the limit as dt approaches 0
$$s_4(t) = 16*t^2 \enspace then \enspace \lim_{\Delta t \to 0} \frac{\Delta s} {\Delta t} = 128$$
$$s_4'(t) = 128$$

""" Devivatives / Increments method

An average speed of 30 mi/hr does not necessary means an
exact speed for 3 hours.

In the case of a ball droped near the surface of the earth,
the formula for distance traveled is:
s = 16t^2 ft/sec

The instant speed is not the quontient of distance and time,
it is the limit of average speeds at exactly t=4.

Using increments method, the numbers seem getting closer to:
s4 = 128 ft/sec
"""

# Average speed aproximation
s1 = 16*5**2 - 16*4**2               # from 4 to 5 seconds
s2 = (16*4.1**2 - 16*4**2) / 0.1    # from 4 to 4.1 seconds
s3 = (16*4.1**2 - 16*4**2) / 0.01  # from 4 to 4.01 seconds

# -------------------------------------------------------------------

def speed(t1, rate=1):
t2 = t1 + rate
s = 16 * (t2**2 - t1**2) / rate # The method of increments
s = round(s, 1)
return (t1, t2, s)

# -------------------------------------------------------------------

print("Manual aproximation:")
print("4 to 5s: speed =", s1)
print("4 to 4.1s: speed =", s2)
print("4 to 4.01s: speed = ", s3, "\n")

print("Increment method speed() function:")
print('%s to %ss: %s ft/sec' % speed(4, 1))
print('%s to %ss: %s ft/sec' % speed(4, 0.1))
print('%s to %ss: %s ft/sec' % speed(4, 0.01))
print('%s to %ss: %s ft/sec' % speed(4, 0.001))
print('%s to %ss: %s ft/sec' % speed(4, 0.0001))
print('%s to %ss: %s ft/sec' % speed(4, 0.00001))

"""
Manual aproximation:
4 to 5s: speed = 144
4 to 4.1s: speed = 129.5999999999998
4 to 4.01s: speed =  1295.999999999998

Increment method speed() function:
4 to 5s: 144.0 ft/sec
4 to 4.1s: 129.6 ft/sec
4 to 4.01s: 128.2 ft/sec
4 to 4.001s: 128.0 ft/sec
4 to 4.0001s: 128.0 ft/sec
4 to 4.00001s: 128.0 ft/sec
"""


### Differentiation

The process of using increment method to get the derivative is called differentiation.
$$f(x) = ax^2 \enspace then \enspace \lim_{\Delta x \to 0} \frac{\Delta y} {\Delta x} = 2ax$$
$$f'(x) = 2ax$$

""" Derivatives / Differentiation

The process of using increment method to get the derivative
is called differentiation.

Derived function for f(x) = ax^2 is f'(x) and is pronounced "f prime of x"
It means instantaneous rate of change of y with respect to x at value x1

Increment method:
y + Dy = a(x + Dx)^2
y + Dy = ax^2 + 2axDx + a(Dx^2)
Dy = 2axDx + a(Dx^2)

As Dx approaches the limit Dx -> 0, the derived is:
f'(x) = 2ax
"""

from sympy import *

t = Symbol('t')
s = 16*t**2 # Speed of a falling object
s_derivative = s.diff(t)

r = Symbol('r')
A  = pi*r**2 # Circle area
A_derivative = A.diff(r)

x = Symbol('x')
f  = x**2 # Function f(x)
f_derivative = f.diff(x)

assert 32*t == s_derivative
assert 2*pi*r == A_derivative
assert 2*x == f_derivative

print(f"Falling speed: s = {s}  s' = {s_derivative}")
print(f"Circle area:   A = {A}  A' = {A_derivative}")
print(f"Function:      f ={f}   f' = {f_derivative}")

"""
Falling speed: s = 16*t**2  s' = 32*t
Circle area:   A = pi*r**2  A' = 2*pi*r
Function:      f =x**2      f' = 2*x
"""


### Polynomials

Functions that are a sum or difference of two or more monomials.
$$f(x) = ax^2 + bx + c \enspace then \enspace \lim_{\Delta x \to 0} \frac{\Delta y} {\Delta x} = 2ax + b$$
$$f'(x) = 2ax + b$$

""" Devivatives / Polynomials Differentiation

Differentiation of simple polynomials takes into account
each term:
y   = ax^2 + bx + c
y'  = 2ax + b
y'' = 2a
"""

from sympy import *

x = Symbol('x')
a = Symbol('a')
b = Symbol('b')
c = Symbol('c')

y = a*x**2 + b*x + c
y_derivative = y.diff(x)
y_derivative_2 = y_derivative.diff(x)

assert 2*a*x + b == y_derivative
assert 2*a == y_derivative_2

print("Function:", y)
print("First derivative:", y_derivative)
print("Second derivative:", y_derivative_2)

"""
Function: a*x**2 + b*x + c
First derivative: 2*a*x + b
Second derivative: 2*a
"""


### The Slope

The slope or gradient of a function in (x,y) point is the derivative.

""" Derivatives / Slope

Plot instant speeds (sloe or gradients) for different params.
Falling object speed:
s(t) = 16t^2
"""

import numpy as np
import matplotlib.pyplot as plt

a = 16
X = np.arange(-5, 5, 0.1)
Y = a*(X**2)

for t in range(2, 6):
y = a*(t**2)
m = 2*a*t
b = y - m*t
T = np.arange(t, t+2, 0.1) # 20 values sequence

plt.plot(t, y, 'rx') # points
plt.plot(T, m*T + b, label=f"s({t}) = {m}") # gradients
print(f"Instant speed for t = {t} is {m}")

plt.title('s(t) = 16t^2')
plt.xlabel('t (seconds)')
plt.ylabel('s(t)')
plt.grid(True)
plt.plot(X, Y) # function line
plt.legend(loc='upper left')
plt.show()


Last update: 183 days ago