你可以使用np.where函数来根据订单数量选择使用哪个profit函数。下面是修改后的代码:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
# 参数设置
initial_margin = 2000 - 1300 - 100 # 增量利润 = 单价-原变动成本-增量成本
additional_cost = 5 # 每递增100台订单增加的成本
initial_order = 5000 # 初始订单量
# 定义profit函数
def profit_function1(order_quantity):
return (initial_margin+100) * order_quantity
def profit_function2(order_quantity):
return initial_margin * order_quantity
def profit_function3(order_quantity):
return initial_margin * order_quantity - additional_cost * ((order_quantity - initial_order) / 100) * order_quantity
# 生成一系列订单量
order_quantities = np.arange(0, 20000, 1)
# 根据订单数量选择使用哪个profit函数
profits = np.where(order_quantities == initial_order, profit_function3(order_quantities), np.where(order_quantities > initial_order, profit_function2(order_quantities), profit_function1(order_quantities)))
# 绘制结果
plt.plot(order_quantities, profits)
plt.xlabel('Order Quantity')
plt.ylabel('Profit')
plt.title('Profit vs Order Quantity')
plt.show()
# 将结果保存到Excel文件
dic = {"新增订单量":order_quantities,
"利润额":profits}
df = pd.DataFrame(dic)
df.to_excel('testname2.xlsx', index=False)
这样修改后,当订单数量等于初始订单量initial_order时,将使用profit_function3计算利润;当订单数量大于初始订单量initial_order时,将使用profit_function2计算利润;否则,将使用profit_function1计算利润。同时,修改了代码最后一部分,将结果保存到名为'testname2.xlsx'的Excel文件中。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |