#运用python实现差分进化算法计算函数最大值
import random
import math
import numpy as np
import random
cr = 0.6
Population = np.random.rand(100,2)
cycle = 500
hig , low = math.pi , 0
def eval(x):
y = 2*math.sin(x[0])+math.cos(x[1])
return y
def main():
f
定义
返回单值
def my_abs(x):
if x >= 0:
return x
else:
return -x
返回多值
返回多值就是返回一个tuple
import math
def move(x, y, step, angle=0):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
空函数
def nop():
pa
下面是python中的一个函数计算代码:
loops=25000000
from math import*
a=range(1,loops)
def f(x):
return 3*cos(x)+4*sin(x)**2
%timeit r=(f(x) for x in a)
效率:
1000000 loops, best of 3: 552 ns per loop
下面我们就来看一下提高计算速度的方法:
1、使用数组
import numpy as np
a = np.arange(1