печатать значение переменной для каждой итерации в течение l oop? - PullRequest
0 голосов
/ 09 февраля 2020

У меня есть код, который работает так, как я хочу, но с одной стороны: печать коэффициентов печатает только значения для первой итерации (n = 2), а не для других (n = 5 и 20) даже для тех итераций. Я запутался, потому что код на самом деле вычисляет различные значения и строит их правильно для каждой итерации.

import warnings
warnings.filterwarnings("ignore")  #ignore warnings
import numpy as np
from matplotlib import pyplot as plt
import scipy.integrate as integrate
from scipy.integrate import quad

#unique depending on the problem

y = lambda t: 3*t   
T = 4      #period
w = 2*np.pi/T #angular frequency
print('Angular Frequency [rad]:',w)
n_list = np.array([2,5,20])

#for loop for multiple n values:
for n in n_list:

    Bn = (2/T)*quad(lambda t: y(t)*np.sin(n*w*t), -T/2, T/2)[0]  #for odd functions  
    An = (2/T)*quad(lambda t: y(t)*np.cos(n*w*t), -T/2, T/2)[0]  #for even
    A0 = (1/T)*quad(lambda t: y(t), -T/2, T/2)[0]   #vertical shift
    print('Coefficients [V]:', 'Bn:',Bn, 'An:', An,'A0:', A0)
    y = lambda t: A0+An*np.cos(n*w*t)+Bn*np.sin(n*w*t) #total equation

    t = np.linspace(-6, 6)
    plt.plot(t,y(t))
    plt.show() 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...