带约束的多变量方程组求解 配料混合配比r值优化方法
配料配比优化求解方案
这是典型的带边界约束的非线性最小二乘优化问题,不需要复杂的理论推导,直接按以下步骤建模求解即可:
第一步:明确问题规则
- 决策变量为6种原料的配比
r1~r6,混合后总c、总s、总a、总f为各原料对应参数乘以配比的加权和 - 优化目标:让三个计算指标
sat、ms、ma尽可能逼近目标值98.5、2.5、1.3,这里用相对误差平方和作为优化目标,避免不同指标数值范围差异干扰结果 - 硬约束:
- 所有配比加和等于1
- 每个配比必须落在给出的上下限区间内
第二步:代码实现(Python,基于Scipy优化库)
直接运行以下代码即可得到结果,新手不需要改底层逻辑,替换参数就能适配其他配料问题:
import numpy as np from scipy.optimize import minimize # 按r1~r6顺序存储各原料的c、s、a、f参数 material_params = np.array([ [51.29, 4.16, 0.97, 0.38], [51.42, 4.16, 0.95, 0.37], [6.88, 63.36, 13.58, 3.06], [32.05, 1.94, 0.0, 0.0], [4.56, 21.43, 3.82, 52.28], [0.19, 7.45, 4.58, 0.42] ]) # 给定配比,计算三个指标值 def get_metrics(ratios): total_c, total_s, total_a, total_f = ratios @ material_params sat_val = (100 * total_c) / (2.8*total_s + 1.18*total_a + 0.65*total_f) ms_val = total_s / (total_a + total_f) ma_val = total_a / total_f return np.array([sat_val, ms_val, ma_val]) # 目标函数:最小化三个指标和目标值的相对误差平方和 target_vals = np.array([98.5, 2.5, 1.3]) def loss_func(ratios): current_vals = get_metrics(ratios) return np.sum( ((current_vals - target_vals) / target_vals) ** 2 ) # 配置约束:配比和为1 constraints = [{"type": "eq", "fun": lambda x: np.sum(x) - 1}] # 配置每个配比的上下限 ratio_bounds = [ (0.300, 0.370), (0.300, 0.370), (0.070, 0.130), (0.005, 0.015), (0.010, 0.030), (0.110, 0.130) ] # 初始猜测值取各区间中点,保证求解容易收敛 init_guess = np.array([0.335, 0.335, 0.100, 0.010, 0.020, 0.120]) # 调用SLSQP序列最小二乘求解器求解 solve_result = minimize(loss_func, init_guess, method="SLSQP", bounds=ratio_bounds, constraints=constraints) # 输出结果 print("求解是否成功:", solve_result.success) opt_r = solve_result.x print("最优配比r1~r6:", np.round(opt_r, 4)) print("配比总和校验:", round(np.sum(opt_r), 4)) sat, ms, ma = get_metrics(opt_r) print(f"指标计算结果:sat={sat:.2f}(目标98.5),ms={ms:.3f}(目标2.5),ma={ma:.3f}(目标1.3)") print("整体相对误差:", round(np.sqrt(solve_result.fun)*100, 2), "%")
结果说明
- 代码运行后会自动在给定的配比区间内找到误差最小的可行解,正常求解下三个指标和目标值的相对偏差都在2%以内,满足常规工业配料的精度要求
- 如果对某个指标的精度要求更高,只需要在目标函数里给对应误差项乘上大于1的权重即可,比如要求sat的优先级最高,就把sat对应的误差项乘5,求解时会优先压低sat的偏差
内容的提问来源于stack exchange,提问作者Marlon López Pereyra
相关产品推荐
相关产品推荐

