Pretty much all of Fall 2024
This commit is contained in:
@ -0,0 +1,33 @@
|
||||
import numpy as np
|
||||
|
||||
f_m = 0.2
|
||||
f_c = 2*f_m
|
||||
A_c = 1
|
||||
a = 1
|
||||
|
||||
def g(t):
|
||||
return A_c*np.cos(2*np.pi*f_m*t) + A_c*np.cos(2*np.pi*f_c*t)
|
||||
|
||||
# first derivative of g(t)
|
||||
def dg_dt(t):
|
||||
return -(2*np.pi*f_m)*A_c*np.sin(2*np.pi*f_m*t) + -(2*np.pi*f_c)*A_c*np.sin(2*np.pi*f_c*t)
|
||||
|
||||
# second derivative of g(t)
|
||||
def ddg_dtt(t):
|
||||
return -(2*np.pi*f_m)**2*A_c*np.cos(2*np.pi*f_m*t) + -(2*np.pi*f_c)**2*A_c*np.cos(2*np.pi*f_c*t)
|
||||
|
||||
# use Newton's method to find the maximum of the function
|
||||
def newton_method(t):
|
||||
for i in range(3):
|
||||
t = t - dg_dt(t)/ddg_dtt(t)
|
||||
print(f"Iteration {i+1}: {t}\t{g(t)}")
|
||||
|
||||
def dc_dt(t):
|
||||
return A_c*a*np.pi*f_c*np.cos(2*np.pi*f_c*t)
|
||||
|
||||
if __name__ == '__main__':
|
||||
T_c = 1/f_c
|
||||
t_min = T_c/2
|
||||
newton_method(t_min)
|
||||
|
||||
newton_method(0)
|
Reference in New Issue
Block a user