Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FIX] Fix Future Warnings in ivp.py and test_quad.py and RuntimeError in lq_control.py. #509

Merged
merged 7 commits into from
Sep 29, 2019
Merged
4 changes: 2 additions & 2 deletions quantecon/ivp.py
Original file line number Diff line number Diff line change
Expand Up @@ -127,8 +127,8 @@ def compute_residual(self, traj, ti, k=3, ext=2):

# rhs of ode evaluated along approximate solution
T = ti.size
rhs_ode = np.vstack(self.f(ti[i], soln[i, 1:], *self.f_params)
for i in range(T))
rhs_ode = np.vstack([self.f(ti[i], soln[i, 1:], *self.f_params)
for i in range(T)])
rhs_ode = np.hstack((ti[:, np.newaxis], rhs_ode))

# should be roughly zero everywhere (if approximation is any good!)
Expand Down
9 changes: 8 additions & 1 deletion quantecon/lqcontrol.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,10 @@ def __init__(self, Q, R, A, B, C=None, N=None, beta=1, T=None, Rf=None):
self.d = None
self.T = None

if (self.C != 0).any() and beta >= 1:
raise ValueError('beta must be strictly smaller than 1 if ' +
'T = None and C != 0.')

self.F = None

def __repr__(self):
Expand Down Expand Up @@ -241,7 +245,10 @@ def stationary_values(self, method='doubling'):
F = solve(S1, S2)

# == Compute d == #
d = self.beta * np.trace(dot(P, dot(C, C.T))) / (1 - self.beta)
if self.beta == 1:
d = 0
else:
d = self.beta * np.trace(dot(P, dot(C, C.T))) / (1 - self.beta)

# == Bind states and return values == #
self.P, self.F, self.d = P, F, d
Expand Down
8 changes: 4 additions & 4 deletions quantecon/tests/test_quad.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ def setUpClass(cls):
for kind in kinds:
for num in n:
num_in = num ** 2 if len(kind) == 1 else num
quad_rect_res1d.ix[func_name, num][kind] = quadrect(func,
quad_rect_res1d.loc[func_name, num][kind] = quadrect(func,
num_in,
a, b,
kind)
Expand All @@ -136,10 +136,10 @@ def setUpClass(cls):

for num in n:
for kind in kinds2[:4]:
data2.ix[num**2][kind] = quadrect(f1_2, [num, num],
data2.loc[num**2][kind] = quadrect(f1_2, [num, num],
a[0], b[0], kind)
for kind in kinds2[4:]:
data2.ix[num**2][kind] = quadrect(f1_2, num**2, a[0],
data2.loc[num**2][kind] = quadrect(f1_2, num**2, a[0],
b[0], kind)

cls.data2d1 = data2
Expand All @@ -151,7 +151,7 @@ def setUpClass(cls):

for num in n3:
for kind in kinds2[3:]:
data3.ix[num][kind] = quadrect(f2_2, num, a[1], b[1], kind)
data3.loc[num][kind] = quadrect(f2_2, num, a[1], b[1], kind)

cls.data2d2 = data3

Expand Down
2 changes: 1 addition & 1 deletion quantecon/tests/test_robustlq.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ def setUp(self):
# (see p171 in Robustness)
self.rblq_test = RBLQ(Q, R, A, B, C, beta, theta)
self.rblq_test_pf = RBLQ(Q_pf, R, A, B_pf, C, beta, theta)
self.lq_test = LQ(Q, R, A, B, C, beta)
self.lq_test = LQ(Q, R, A, B, C, beta=beta)
self.methods = ['doubling', 'qz']

def tearDown(self):
Expand Down