Python3中固定权重下优化字典数值实现加权和舍入为零的通用方法
线性方程约束下的字典值调整需求
示例场景
给定Python字典:
d = {'C1': 0.68759, 'C2': -0.21432, 'H1': 0.49062, 'H2': -0.13267, 'H3': 0.08092, 'O1': -0.8604}
存在线性方程:
n1d['C1'] + n2d['H2'] + n3d['C2'] + n4d['H3'] + n5d['O1'] + n6d['H1'] = small_number
示例中标量取值为:
n1, n2, n3, n4, n5, n6 = 2, 2, 2, 4, 4, 2
核心需求
- 调整每个
d[key]的值(四舍五入到5位小数),使得方程结果为0 - 每个字典值的调整幅度不得超过±0.0005
- 标量n均为固定正整数,不可修改
- 通用适配:字典键值对数量、标量n的取值均可变化;
small_number量级约为1e-5,必要时可将舍入位数调整至±1位
已尝试思路
- 尝试将方程的非零部分从单个字典键值中扣除,但当不存在取值为1的标量n时无法实现
- 考虑使用
scipy.optimize.minimize工具,但不确定如何基于字典d和标量n正确定义目标函数
内容的提问来源于stack exchange,提问作者scaldedolive
相关产品推荐
相关产品推荐

