Может ли кто-нибудь помочь мне правильно ограничить переменную в пределах диапазона как переменную ведущего в моем коде Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Может ли кто-нибудь помочь мне правильно ограничить переменную в пределах диапазона как переменную ведущего в моем коде

Сообщение Anonymous »

Я пытаюсь запустить симуляцию MCMC с помощью пакета ведущего, где мне нужно ограничить переменную V0 в диапазоне от 0,4 до 1,4. Однако при запуске кода я получаю следующую ошибку:

NameError: имя «V0» не определено

Я определил V0 в функции log_prior, но ошибка все равно появляется позже в коде. Вот часть моего кода, которая, похоже, вызывает проблему:

Код: Выделить всё

# making V0 an emcee variable
def log_prior(V0):
if 0.4 < V0 < 1.4:
return 0.0
return -np.inf

def log_probability(V0, phi):
lp = log_prior(V0)
if not np.isfinite(lp) or np.isnan(lp):
return -np.inf
return lp + log_prior(V0)

# MCMC part initialization
nwalkers = 10
initial = np.array([70, 0.3, -19, 1.0])
ndim = len(initial)
p0 = [np.array(initial) + 1e-5 * np.random.randn(ndim) for i in range(nwalkers)]
В этом цикле возникает ошибка:

Код: Выделить всё

for z in z_pnts:
V_phi_value = V_phi(V0, phi_0)  # This line throws the error
Я думал, что V0 был правильно определен в процессе выборки MCMC. Может ли кто-нибудь объяснить, почему V0 не распознается позже в коде и как это исправить?

Подробнее здесь: https://stackoverflow.com/questions/792 ... -emcee-var
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»