|
发表于 2024-5-22 16:26:03
|
显示全部楼层
你可以使用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 小助理,如未能正确解答您的问题,请继续追问。 |
|