You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

完善偏导数计算器代码:实现单变量变动的C值计算

偏导数计算器代码补充实现

以下是完成需求后的完整代码,核心逻辑为针对每个变量单独构造代入参数,计算对应y值后求解C:

equation = input("Enter an equation with variables: ")

variables = set()
for char in equation:
    if char.isalpha():
        variables.add(char)

values = {}
for var in variables:
    values[var] = [float(input(f"Enter a value for {var}: ")) for _ in range(7)]

averages = {}
for var, val_list in values.items():
    averages[var] = sum(val_list) / len(val_list)

uncertainties = {}
for var in variables:
    uncertainties[var] = float(input(f"Enter the uncertainty for {var}: "))

averages_low = {}
averages_high = {}
for var, avg in averages.items():
    averages_low[var] = avg - uncertainties[var]
    averages_high[var] = avg + uncertainties[var]

# 新增:计算每个变量对应的C值
c_values = {}
for target_var in variables:
    # 固定其他变量为平均值,当前变量取低值构造参数
    low_params = averages.copy()
    low_params[target_var] = averages_low[target_var]
    y1 = eval(equation, globals(), low_params)
    
    # 当前变量取高值构造参数
    high_params = averages.copy()
    high_params[target_var] = averages_high[target_var]
    y2 = eval(equation, globals(), high_params)
    
    # 计算C值
    delta_var = averages_high[target_var] - averages_low[target_var]
    c_values[target_var] = (y2 - y1) / delta_var

print("\nResults:")
print("{:<10} {:<10} {:<10} {:<10}".format("Variable", "Average", "Average Low", "Average High"))
for var in variables:
    print("{:<10} {:<10.2f} {:<10.2f} {:<10.2f}".format(var, averages[var], averages_low[var], averages_high[var])) 

# 新增:打印C值结果
print("\nPartial Derivative Approximations (C):")
print("{:<10} {:<15}".format("Variable", "C Value"))
for var, c in c_values.items():
    print("{:<10} {:<15.4f}".format(var, c))

关键说明

  • 使用eval()代入参数计算方程值,该函数仅适用于可信输入场景(自用或已知安全的输入)
  • 对每个目标变量,先复制平均值字典,再替换当前变量的高/低值,确保其他变量固定为平均值
  • 最终计算并存储每个变量对应的C值,统一格式化输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 21:00:00