2012-04-20 69 views
8

Tôi đang tìm các đề xuất cho thư viện C++ cho lập trình phi tuyến tính (không chỉ cho số nguyên!).Thư viện lập trình phi tuyến tính trong C++

Tùy chọn dành cho các giải pháp F/OSS được duy trì tích cực, nhưng các giải pháp thương mại được duy trì tích cực cung cấp các phiên bản đánh giá miễn phí là chấp nhận được.

Cảm ơn trước!

Edit: Theo yêu cầu, sau đây là chi tiết:

Ứng dụng tôi đang làm việc trên rất đơn giản, và nó về giảm thiểu đa thức của mức độ 4 và cao hơn (lên đến 11) với một nhóm nhỏ (~ 20) các ràng buộc được biểu thị bằng sự bất bình đẳng (một lần nữa, như đa thức, độ < = 4). Tôi cũng có thể, đôi khi, phải ném vào một số hàm lượng giác, mặc dù. Trong mọi trường hợp, nó luôn luôn liên tục, các hàm khác nhau mà tôi đang xử lý. Số lượng các phạm vi biến từ 1 đến 12, hiện tại và sẽ không vượt quá giới hạn đó.

Cuối cùng, tôi cần một giải pháp hoạt động trên Windows, nhưng các giải pháp đa nền tảng sẽ thích hợp hơn.

+0

Bạn có thể cho chúng tôi ví dụ về các phép tính bạn muốn thực hiện không? Trong lĩnh vực nào (tài chính? Vật lý?)? Trên hệ điều hành nào? (thay vì * nix hoặc Windows?) –

+0

Vui lòng xem bản chỉnh sửa của tôi – em70

Trả lời

2

NLopt có mã C vững chắc cho một tá tốt thuật toán, bao gồm COBYLA, Tối ưu hóa chế bởi tuyến tính xấp xỉ để tối ưu hóa phái sinh-miễn phí với phi tuyến bất bình đẳng và bình đẳng trở ngại, bởi M. J. D. Powell.
Đã thêm: here là một số trình tối ưu hóa không phái sinh trong số NLopt.
Đối với các hàm thử nghiệm Rosenbrock và Powell trong 5d và 10d, chúng đều là rất nhạy cảm với các điểm bắt đầu ngẫu nhiên; ymmv.

6

Tôi không chắc chắn, nhưng có thể ROOT từ CERN sẽ phù hợp với bạn. Đây thực sự là thư viện khổng lồ (ví dụ: ROOT::Math::Polynomial) từ chính CERN.

Tôi phải nói rằng, đó không phải là 'một phút để tìm hiểu' thư viện thực sự, nhưng có cả hai: console để làm việc với tất cả những thứ toán trong thời gian thực (trông giống như dòng cmd MathCAD) và libsdlls bạn có thể liên kết với mã của mình theo cách tĩnh. Và đó là một thư viện nền tảng chéo. Hơn nữa, tính năng mạnh mẽ nhất của ROOT là bạn có thể xây dựng hầu như tất cả các loại biểu đồ và đồ thị.

+0

Bạn có thể vui lòng cung cấp liên kết (trong câu trả lời của bạn) cho các lớp học lập trình phi tuyến không? – Ali

4

Thư viện mạnh mẽ nhất mà tôi biết là IPOPT.

Nó là đáng kinh ngạc mạnh mẽ, nó đã cho tôi kết quả cho các vấn đề kỹ thuật hóa học mà tôi không thể giải quyết ngay cả với người giải quyết thương mại. Hãy xem success stories để biết thêm các ví dụ về ứng dụng.

+0

@ Tôi không có quyền truy cập vào máy Mac vì vậy tôi không thể chắc chắn. Tuy nhiên [các hướng dẫn này] (https://projects.coin-or.org/Ipopt/wiki/Ipopt_on_Mac_OS_X) dường như được duy trì tốt và chúng bắt đầu từ ngày 14 tháng 3 năm 2012. Tôi nghĩ rằng nó đáng để quay. – Ali

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