在python中使用max获取函数的最大值

时间:2015-04-23 16:19:34

标签: python max odeint

我正在尝试使用函数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))

0 个答案:

没有答案