2012-05-10 32 views
5

các scipy.special.gammainc không thể có giá trị âm cho đối số đầu tiên. Có bất kỳ triển khai khác có thể trong python? Tôi có thể thực hiện tích hợp thủ công một cách chắc chắn nhưng tôi muốn biết nếu có những lựa chọn thay thế tốt đã tồn tại.chức năng gamma không đầy đủ trong python?

Correct result: 1 - Gamma[-1,1] = 0.85 

Use Scipy: scipy.special.gammainc(-1, 1) = 0 

Cảm ơn.

Trả lời

3

Tôi thường tiếp cận với mpmath bất cứ khi nào tôi cần các chức năng đặc biệt và tôi không quá lo ngại về hiệu suất. (Mặc dù hiệu quả của nó trong nhiều trường hợp là khá tốt anyway.)

Ví dụ:

>>> import mpmath 
>>> mpmath.gammainc(-1,1) 
mpf('0.14849550677592205') 
>>> 1-mpmath.gammainc(-1,1) 
mpf('0.85150449322407795') 
>>> mpmath.mp.dps = 50 # arbitrary precision! 
>>> 1-mpmath.gammainc(-1,1) 
mpf('0.85150449322407795208164000529866078158523616237514084') 
+0

cảm ơn, tôi đã làm một tìm kiếm trực tuyến ngắn gọn nhưng thất bại trong việc tìm ra một giải pháp độc lập. Đoán đây là một trong vài trường hợp tôi cài đặt một gói phụ cho một chức năng duy nhất ;-) – nye17

+1

giá trị 'mpf' là gì? – LuizAngioletti

Các vấn đề liên quan