【发布时间】:2010-05-26 11:33:35
【问题描述】:
是否有任何库或技术可以简化计算方程?
举以下两个例子:
-
F = B * { [ a * b * sumOf (A / B ''' for all i ''' ) ] / [ sumOf(c * d * j) ] }
地点:
F = 从 i 到 j 的成本
B、a、b、c、d、j 都是格式为 [ [zone_i, zone_j, cost_of_i_to_j], [..]] 的向量
这应该产生一个向量 F [ [1,2, F_1_2], ..., [i,j, F_i_j] ]
-
T_ij = [ P_i * A_i * F_i_j] / [ SumOf [ Aj * F_i_j ] // j = 1 to j = n ]
地点:
n 是区域的数量
T = 向量 [[1, 2, A_1_2, P_1_2], ..., [i, j, A_i_j, P_i_j] ]
F = 向量 [1, 2, F_1_2], ..., [i, j, F_i_j]
所以 P_i 将是所有 P_i_j 对于所有 j 的总和,Aj 将是所有 P_j 对于所有 i 的总和
我不确定我在寻找什么,但也许是这些方程的解析器或处理向量之间的多重乘法和乘积的方法?
计算一些因子,比如A_j,我就是这样用的
from collections import defaultdict
A_j_dict = defaultdict(float)
for A_item in TG: A_j_dict[A_item[1]] += A_item[3]
虽然这很好用,但我真的觉得这是一种蛮力/黑客方法,在我们想要添加更多变量或参数的情况下无法维护。你有什么推荐的数学方程解析器吗?
旁注:这些方程式用于模拟旅行。目前我用excel解决了很多这样的方程;我发现这个过程令人生畏。我宁愿转向python,它直接从我们的数据库(postgres)中提取数据并将结果输出到数据库中。这一切都想通了。我只是在努力评估方程式本身。
谢谢:)
【问题讨论】:
标签: python math numpy equation