我正在尝试使用函数max。
获取不同频率的函数的最大值#coding: UTF-8
import numpy as np
from numpy import *
import matplotlib.pyplot as plt
from math import pi, sin
from scipy.integrate import odeint
Vi=10.0 #V
C=2. #F
R=10. #Ohmios
fc=1/(2*pi*R*C)
print 'La frecuencia de corte es', '%4.5f' %fc, 'Hz'
nf=10
f=np.linspace(0.2*fc,10*fc,nf)
T=1.0/f
w=2*pi*f #kHz
def der (q,t,w):
I=((Vi/R)*sin(w*t))-(q/(R*C))
return I
a, b, ni = 0.0, 3*T[0], 10000
resultados=zeros((nf, ni, 1))
l=[]
for i in range(len(w)):
tp=np.linspace(a, 5*T[0], ni)
resultados[i]=odeint(der, 0, tp, args=(w[i],))
Vc=resultados[i]/C
plt.plot(tp[-500:],Vc[-500:])
plt.title(u'Filtro pasa baja')
plt.xlabel('X')
plt.ylabel('Y')
l.append('w=%.2f'%w[i])
plt.legend(l)
plt.show()
Imax=resultados.max(axis=0)
我认为我获得所有频率的最大值,但我想获得每个频率的最大值,然后将最大值保存到resultados =零((nf,ni,1))。
抱歉,我不会说英语,我不知道如何解释。我想为每个频率获得最大Vc。有10个频率,所以我需要10个频率的最大Vc。
确定。我有那个for循环
for i in range(len(w)):
tp=np.linspace(a, 5*T[0], ni)
resultados[i]=odeint(der, 0, tp, args=(w[i],))
Vc=resultados[i]/C
在循环中我得到每个频率的Vc。现在我想为每个频率获得每个Vc的最大值。
Imax=resultados.max(axis=0)
然后将所有数据保存在
中 resultados=zeros((nf, ni, 1))