Python 一个简单方程的快速求解
对于Python 一个简单方程的快速求解,python,numpy,scipy,Python,Numpy,Scipy,对于[0,1]中的q(质量),我们知道最大化的质量是1。现在的问题是,我怎样才能解出这样一个方程?我一直得到一个错误,要么是q尚未定义(这是我们寻找它时很自然的),要么是一些参数是错误的 def profits(q): range_price = range_p(q) range_profits = [(x-c(q))*demand(q,x) for x in range_price] price = range_price[argmax(range_profits)]
[0,1]
中的q
(质量),我们知道最大化的质量是1
。现在的问题是,我怎样才能解出这样一个方程?我一直得到一个错误,要么是q
尚未定义(这是我们寻找它时很自然的),要么是一些参数是错误的
def profits(q):
range_price = range_p(q)
range_profits = [(x-c(q))*demand(q,x) for x in range_price]
price = range_price[argmax(range_profits)] # recall from above that argmax(V) gives
# the position of the greatest element in a vector V
# further V[i] the element in position i of vector V
return (price-c(q))*demand(q,price)
print profits(0.6)
print profits(0.8)
print profits(1)
0.18
0.2
0.208333333333
这是我尝试过的,但我得到了以下错误:
q_firm = optimize.fminbound(-profits(q),0,1)
---------------------------------------------------------------------------
NameError回溯(最近一次呼叫上次)
在()
---->1 q_公司=优化.fminbound(-利润(q),0,1)
NameError:未定义名称“q”
有人能帮我吗?如果我需要向你们提供更多关于这个问题的信息,让我知道,这是我第一次使用这个平台。提前谢谢 fminbound需要一个callable,而
proficies(q)
尝试计算单个值。使用
fminbound(lambda q:-利润(q),0,1)
请注意,上面的lambda仅用于生成负利润函数。最好为-profits
定义一个函数,并将其提供给fminbound
更好的做法是,使用最小化标量而不是fminbound。你在哪里定义
q
?没有任何地方,我们需要对其进行优化以获得最大利润。@Forge请看上面的内容,很抱歉之前没有提到你(我仍然是这里的noob)。你需要定义变量q
来运行q\u firm=optimize.fminbound(-profits(q),0,1)
。
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-99-b0a80dc20a3d> in <module>()
----> 1 q_firm = optimize.fminbound(-profits(q),0,1)
NameError: name 'q' is not defined