質問編集履歴
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -40,4 +40,38 @@
|
|
40
40
|
|
41
41
|
print("n_t:", n_t)
|
42
42
|
print("u_t:", u_t) # ここが①のu_tと等しければ正解
|
43
|
+
```
|
44
|
+
|
45
|
+
# 追記
|
46
|
+
`scipy.optimize.newton`を用いて、解くことができました。
|
47
|
+
|
48
|
+
```Python
|
49
|
+
import numpy as np
|
50
|
+
import math
|
51
|
+
from scipy import integrate, optimize
|
52
|
+
|
53
|
+
beta = 0.3
|
54
|
+
chi = 1.0
|
55
|
+
productivity = 100.0
|
56
|
+
interest_rate = 0.05
|
57
|
+
price_mu = 0.01
|
58
|
+
utility_mu = 0.03
|
59
|
+
utility_sigma = 0.3
|
60
|
+
|
61
|
+
theta: float = utility_sigma / math.sqrt(2 * utility_mu)
|
62
|
+
y = lambda u: math.sqrt(1 / (2 * math.pi * theta ** 2)) * math.e ** (- u ** 2 / (2 * theta ** 2))
|
63
|
+
|
64
|
+
def N_t(u_t):
|
65
|
+
iy, err = integrate.quad(y, -np.inf, u_t)
|
66
|
+
userbase = 1 - iy
|
67
|
+
return userbase - math.exp(-(u_t) + math.log(chi / (productivity * beta)) - ((1 - beta) / beta) * math.log((1 - beta) / (interest_rate - price_mu)))
|
68
|
+
|
69
|
+
u_t = optimize.newton(N_t, 0)
|
70
|
+
|
71
|
+
iy, err = integrate.quad(y, -np.inf, u_t)
|
72
|
+
n_t: float = 1 - iy
|
73
|
+
|
74
|
+
print(u_t)
|
75
|
+
print(n_t)
|
76
|
+
|
43
77
|
```
|