如何解决使用 numpy 进行更快的详尽研究
我正在尝试使用详尽的研究来最大化两个函数之间的最小值,此解决方案有效,但 python 中的循环消耗了大量计算时间。有没有有效的方法使用 numpy(网格或矢量化)来解决这个问题?
代码:
try (CSVReader reader = new CSVReader(new FileReader(file))) {
List<String[]> r = reader.readAll();
r.forEach(x -> System.out.println(Arrays.toString(x)));
}
详尽的研究方法采用 6 个参数(标量或一维数组)。目前我只想在标量上计算我的代码,然后我可以使用另一个函数来浏览这些参数,如果它们是一维数组。
import numpy as np
def F1(x):
return (x/11)**10
def F2(x,y,z):
return z+x/y
def F3(x,z,a,b,c):
return ((x+y)**z)/((a-b)**c)
解决方法
你可以这样做:
A,B,C = np.meshgrid(a,b,c)
mask = P1*C+P2*B+2*(A*B*C) <= F1(P3)
A = A[mask]
B = B[mask]
C = C[mask]
f_1 = F2(A,C,P6)
f_2 = F3(A,10,P4,P5)
min_f = np.minimum(f_1,f_2)
ind = np.argmax(min_f)
obj_opt,a_Opt,b_opt,c_opt = min_f[ind],A[ind],B[ind],C[ind]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。