Tôi có một số mã sử dụng các hàm Bessel đã sửa đổi của cả thứ tự thứ nhất và thứ 2 (iv và kv). Dường như họ dường như có giới hạn, đó là iv (0,713) và kv (0,697), thêm một cho mỗi và bạn nhận được vô cùng và 0 tương ứng. Đây là một vấn đề đối với tôi bởi vì tôi cần phải sử dụng các giá trị cao hơn điều này, thường lên đến 2000 hoặc hơn. Khi tôi cố gắng phân chia chúng, tôi sẽ lặn bằng 0 hoặc vô cùng có nghĩa là tôi bị lỗi hoặc số không, không phải thứ tôi muốn.Các hàm Bessel trong Python hoạt động với số mũ lớn
Tôi đang sử dụng scipy bessel functions, có chức năng nào tốt hơn có thể đối phó với nhiều số nhỏ hơn và lớn hơn nhiều hay cách sửa đổi Python để làm việc với những số lớn này. Tôi không chắc vấn đề thực sự ở đây là tại sao Python không thể làm việc này vượt quá 700, có phải là chức năng hay là Python?
Tôi không biết liệu Python có đang thực hiện hay không nhưng tôi chỉ cần 5-10 chữ số đầu tiên * 10^x ví dụ; đó là để nói rằng tôi sẽ không cần tất cả 1000 chữ số, có lẽ đây là vấn đề với cách Python đang làm việc nó ra so với cách Wolfram Alpha đang làm việc nó ra?
Tôi không nghĩ rằng vấn đề về python của nó là vấn đề phạm vi dấu phẩy động kép. scipy đang cung cấp một trình bao bọc xung quanh mã C mà thực sự đang thực hiện hàm bessel. Như vậy, giới hạn của nó trong phạm vi một đôi có thể chứa. – sizzzzlerz
vâng, tôi vừa làm sys.float_info và đoán xem cái gì? max_10_exp = 308 là câu trả lời chính xác cho hàm bessel ở giới hạn. Đây là tin xấu cho tôi. Wolfram Alpha có thể hoạt động như thế nào? – Rapid
Magic? Tôi không biết nhưng tôi khá chắc chắn Alpha được mã cơ sở của nó từ Mathematica của Wolfram mà là một công cụ khá tinh vi. Họ đã thực hiện một số loại thuật toán cho phép họ trả về độ chính xác và phạm vi không giới hạn về cơ bản cho các chức năng siêu việt như bessel. – sizzzzlerz