Решение для неизвестных

95
8

import numpy as np
import scipy
from scipy.optimize import newton
import sympy
from sympy import diff
from sympy import Symbol

alpha = Symbol('alpha')
beta = Symbol('beta')
delta = Symbol('delta')

kss = ((((1/beta)+ alpha * delta - 1)/(1-alpha)) + delta)**alpha
css = (((1/beta)+ alpha * delta - 1)/(1-alpha))*kss
xss = [css,css,kss]

param = [alpha,beta,delta]

res = diff([xss],alpha, beta, delta)
eps = 0.0001 * np.absolute(css)
x1 = [css+eps,css,kss]
res1 = foc(x1,param)
b1 = (res1 - res)/eps
yss = [css,css+eps,kss]
res2 = foc(yss,param)
b2 = (res2-res)/eps
eps1 = 0.0001 * abs(kss)
zss = [css,css,kss+eps1]
res3 = foc(zss,param)
b3 = (res3-res)/eps1

print b1, b2, b3

Кто-нибудь знает, как отладить это?

спросил(а) 2014-11-11T07:32:00+03:00 5 лет, 8 месяцев назад
1
Решение
78

Обычно ваш код должен быть улучшен следующими способами:

используйте модуль и точку, чтобы указать, что ваша функция применяется, например abs должен быть np.abs

Вы должны выяснить, какие структуры данных вы хотите использовать: list или np.array? Они разные. Просто xss = [css,css,kss] создает список, который нельзя использовать для abs непосредственно.

Использовать import pdb; pdb.set_trace() import pdb; pdb.set_trace() для отладки, вот учебник.

ответил(а) 2014-11-11T07:37:00+03:00 5 лет, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема