Создание подкласса scipy.stats.rv_continious для усеченного распространенияPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Создание подкласса scipy.stats.rv_continious для усеченного распространения

Сообщение Гость »

Я хотел бы создать случайную величину из усеченной дополнительной функции ошибки. Для этого я хочу создать подкласс scipy.stats.rv_continious. Я проверил непрерывные дистрибутивы Subclassing scipy и написал следующий код, используя Python 3.8.5:

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

import numpy as np
from scipy import special

from scipy.stats import *
import scipy.stats

import scipy.integrate as integrate

class truncErfc_gen(rv_continuous):
''' Class for a truncated complementary error function
a and b are bounds
'''
def _argcheck(self, a, b): return (a < b)

def _get_support(self, a, b): return a, b

def _pdf(self, x, a, b): return special.erfc(x) / integrate.quad(special.erfc(x), a, b)[0] # Normalize the function over its bounds

truncErfc = truncErfc_gen(name='truncErfc', momtype=1)

x = np.linspace(-1, 10, 1000)

y = truncErfc.pdf(x, a=0., b=10.)
Однако я получаю сообщение об ошибке:

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

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Ошибка возникает из-за вызова интеграции, используемого для нормализации PDF-файла.
Есть предложения?

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

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

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

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

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

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

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