【发布时间】:2015-07-10 17:26:39
【问题描述】:
答案应该是 117.4,我得到的是 9982.3...不知道问题出在哪里,但这是我的代码:
def util(c,p,alpha):
mu = 0
for i in range(0,len(c)):
m = p[i]*(c[i]**(1-alpha))
mu += m
return mu**(1/(1-alpha))
omega = 0.495
c = np.array([100,200,1000])
p = np.array([omega, omega, 1-2*omega])
alpha = 5
编辑:我不确定我的数学或我写的函数是否有错误,我在问我的数学是否符合我写的代码。
我正在为 mu 求解这个方程:U(mu) = E[U(c)],收益为 c,概率分布为 p,如上所述。 U(c) 的形式为 c^(1-alpha)/(1-alpha)。
U(mu) = mu^(1-alpha)/(1-alpha) = E[U(c)] = (omega*c1^(1-alpha)+omega*c2^(1-alpha)+(1-2*omega)*c3^(1-alpha))/(1-alpha)
=> mu = (omega*c1^(1-alpha)+omega*c2^(1-alpha)+(1-2*omega)*c3^(1-alpha))^(1/(1-alpha))
【问题讨论】:
-
util(c,p,alpha)实际上为我返回 9.99558。 -
这更令人困惑......
-
@bpr 你必须给我们更多的信息:这里有问题。这些信息不足以帮助我们找到错误。
-
希望上次编辑对您有所帮助
-
将
alpha = 5更改为alpha = 5.0,因为您需要浮点运算。您没有使用 numpy 的矢量化:mu = np.sum(p*(c**(1-alpha)))更好。