2013-04-27 31 views
14

Tôi đang tìm thư viện Java để tính toán các hàm đặc biệt của gamma, beta, erf, bessel (và một số liên quan) để đưa vào trình phân tích công thức của riêng chúng ta. Độ chính xác số là ưu tiên chính - đó là một chương trình khoa học. Và nó phải là nguồn mở và miễn phí cho việc sử dụng thương mại (như giấy phép Apache và BSD).Thư viện hàm toán học đặc biệt Java

Tôi cho rằng tôi sẽ nhanh chóng tìm thấy việc thực hiện 'cổ điển', 'tham chiếu' như thư viện JAMA là dành cho hoạt động ma trận nhưng tôi không thể tìm thấy điều đó cho đến thời điểm này. Chúng tôi chỉ cần đánh giá chức năng đặc biệt và không cần bất kỳ tính năng thư viện bổ sung nào.

Đầu tiên tôi thấy là Apache Common Math nhưng tôi thấy một độ chính xác khủng khiếp cho chức năng beta: http://commons.apache.org/proper/commons-math/userguide/special.html.

Sau đó, tôi tìm thấy Colt. Nó có vẻ là tốt nhưng tôi không chắc chắn rằng nó đã được thử nghiệm và phát triển bởi người phát triển và người dùng (một số mã hiếm khi được sử dụng có thể được sao chép từ đâu đó với sai sót, v.v.)

Mọi đề xuất sẽ được đánh giá cao.

Trả lời

3

Trước hết: Đừng bị lừa bởi giao diện tự chế của trang web và ngày phát hành cũ của thư viện Colt (cũng như thư viện JET và JAS xây dựng trên đó). Nó đã được sử dụng trong các dự án nghiên cứu bất tận và mã đã được xác minh bởi hàng trăm người rất tài năng.

Tất nhiên, nếu độ tin cậy của sản phẩm của bạn bị đe dọa, bạn không nên chỉ dùng từ ngữ của tôi cho nó. Dưới đây là hai ý tưởng về cách bạn có thể tự cảm nhận chính xác:

  • Đọc mã nguồn. JavaDoc của Colt chứa các tham chiếu tới các bài báo nơi các phương thức số được xuất bản. Tìm kiếm công việc khác có tham khảo các tài liệu này và xem liệu các vấn đề với phương pháp đã sử dụng đã được phát hiện sau chưa.
  • Sử dụng phần mềm số thương mại mà bạn tin cậy (ví dụ Mathematica), tạo giá trị cho các hàm bạn quan tâm theo cách hệ thống hoặc ngẫu nhiên và so sánh các giá trị này với các giá trị được tạo bởi Colt. Nếu bạn để thử nghiệm như vậy chạy đủ lâu, bạn sẽ nhận được một sự hiểu biết khá tốt về chất lượng của các con số.

Nếu bạn thực sự không muốn sử dụng Colt (tôi đoán là câu hỏi của bạn), tôi khuyên bạn nên chuyển mã C/C++ từ sổ công thức số (http://www.nrbook.com). Thông thường, không cần quá nhiều sự chấp nhận, nhưng bạn vẫn cần phải suy nghĩ về cách bạn muốn thử nghiệm nó.

+0

Cảm ơn bạn đã nhận xét đó. Trong thực tế, tôi gần như đã sẵn sàng để sử dụng thư viện Colt và cần một số khuyến nghị thực sự cho nó. P.S. NRBook là một công việc tuyệt vời! – Alexander

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