You need to enable JavaScript to run this app. Python如何计算多参数组合下两个自定义函数的全部可能输出值
优惠活动
大模型
产品
解决方案
定价
更多

Python如何计算多参数组合下两个自定义函数的全部可能输出值

实现方案

1. 全参数组合遍历与结果计算

直接用Python标准库itertools.product生成四个参数的所有笛卡尔积组合,遍历计算两个函数的输出即可,完整代码如下:

import itertools
import pandas as pd
import matplotlib.pyplot as plt

# 原有函数保留
def BIC (x1, x2, x3, x4):
    return (75 / x1) + (85 / x2) + (55 / x3) + (12 * x4)
    
def TOjuli(x1, x2, x3, x4):
    # 可直接复用BIC结果简化计算:return 400*1000 / BIC(x1,x2,x3,x4)
    return ((400 * 1000) / ((75 / x1) + (85 / x2) + (55 / x3) + (12 * x4)))

# 原有参数选项保留
x1_options = [6, 7, 8]
x2_options = [4, 5, 6]
x3_options = [2, 3, 5]
x4_options = [0.5, 0.4, 0.6]

# 生成所有参数组合
all_params = list(itertools.product(x1_options, x2_options, x3_options, x4_options))
# 初始化结果存储
result_df = pd.DataFrame(all_params, columns=['x1', 'x2', 'x3', 'x4'])
bic_list = []
tojuli_list = []

# 遍历计算所有结果
for x1, x2, x3, x4 in all_params:
    bic_val = BIC(x1, x2, x3, x4)
    tojuli_val = TOjuli(x1, x2, x3, x4)
    bic_list.append(bic_val)
    tojuli_list.append(tojuli_val)

# 写入DataFrame方便后续查询分析
result_df['BIC'] = bic_list
result_df['TOjuli'] = tojuli_list

# 可打印查看所有结果
print(result_df)

2. 散点图绘制

以BIC为横轴、TOjuli为纵轴的散点图实现代码如下:

plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文显示问题
plt.rcParams['axes.unicode_minus'] = False

plt.figure(figsize=(9, 5))
plt.scatter(result_df['BIC'], result_df['TOjuli'], color='steelblue', alpha=0.7, s=60)
plt.xlabel('BIC计算值', fontsize=12)
plt.ylabel('TOjuli计算值', fontsize=12)
plt.title('全参数组合下BIC与TOjuli对应关系散点图', fontsize=14)
plt.grid(linestyle='--', alpha=0.3)
plt.show()

补充说明

  • 本次参数总组合数为333*3=81组,计算无性能压力
  • 若需要绘制单个参数与函数输出的对应关系,只需修改scatter的x轴为对应参数列即可,比如plt.scatter(result_df['x1'], result_df['BIC'])即可查看x1对BIC的影响
  • TOjuli函数可直接复用BIC的计算结果,无需重复计算表达式,提升运行效率

内容的提问来源于stack exchange,提问作者Bots

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 14:45:04