FuncDesigner là một mã nguồn mở CAS (Computer & nbsp; Đại số System) được viết bằng Python. Dưới đây là ba ví dụ, do đó bạn có thể hiểu được cách dự án các công trình.
Ví dụ:
từ FuncDesigner nhập khẩu *
a, b, c = oovars ('a', 'b', 'c')
f1, f2 = sin (a) + cos (b) - log2 (c) + sqrt (b), sum (c) + c * cosh (b) / arctan (a) + c [0] * c [1] + c [-1] / (a * c.size)
f3 = f1 * f2 + 2 * a + sin (b) * (1 + 2 + 3 * c.size * f2.size)
f = 2 * a * b * c + f1 * f2 + f3 + dấu chấm (a + c, b + c)
điểm = {a: 1, b: 2, c: [3, 4, 5]} # Tuy nhiên, bạn nên sử dụng các mảng numpy thay vì danh sách Python
print (f (point))
print (f.D (point))
print (f.D (điểm, a))
print (f.D (điểm, [b]))
print (f.D (điểm, fixedVars = [a, c]))
Sản lượng dự kiến:
[140.9337138 110.16255336 80.67870244]
{A: array ([69,75779959, 88,89020412, 109,93551537]), b: array ([- 23,10565554, -39,41138045, -59,08378522]),
c: array ([[6,19249888, 38,261221, 38,261221],
[29.68377935, -,18961959, 29,68377935],
[23.03059873, 23.03059873, -6,22406763]])}
[69.75779959 88.89020412 109.93551537]
{B: array ([- 23,10565554, -39,41138045, -59,08378522])}
{B: array ([- 23,10565554, -39,41138045, -59,08378522])}
& Nbsp; * Bạn có thể sử dụng "cho chu kỳ" trong mã FuncDesigner
Ví dụ:
từ FuncDesigner nhập khẩu *
a, b, c = oovars ('a', 'b', 'c')
f1, f2 = sin (a) + cos (b) - log2 (c) + sqrt (b), sum (c) + c * cosh (b) / arctan (a) + c [0] * c [1] + c [-1] / (a * c.size)
f3 = f1 * f2 + 2 * a + sin (b) * (1 + 2 + 3 * c.size * f2.size)
F = sin (f2) * f3 + 1
M = 15
for i in range (M): F = 0,5 * F + 0.4 * f3 * cos (f1 + 2 * f2)
điểm = {a: 1, b: 2, c: [3, 4, 5]} # Tuy nhiên, bạn nên sử dụng các mảng numpy thay vì danh sách Python
print (F (điểm))
print (F.D (point))
print (F.D (điểm, a))
print (F.D (điểm, [b]))
print (F.D (điểm, fixedVars = [a, c]))
[4.63468686 0.30782902 1.21725266]
{A: array ([- 436,83015952, 204,25331181, 186,38788436]), b: array ([562,63390316, -273,23484496, -256,32464645]),
c: array ([[395,96975635, 167,24928464, 55,74976155],
& Nbsp; [-74,80518167, -129,34496329, -19,94804845],
& Nbsp; [-57,42472654, -45,93978123, -66,30049589]])}
[-436,83015952 204,25331181 186,38788436]
{B: array ([562,63390316, -273,23484496, -256,32464645])}
{B: array ([562,63390316, -273,23484496, -256,32464645])}
Ví dụ:
từ FuncDesigner nhập khẩu *
từ openopt NLP nhập khẩu
a, b, c = oovars ('a', 'b', 'c')
f = sum (a * [1, 2]) ** 2 + b 2 + c ** ** 2
StartPoint = {a: [100, 12], b: 2, c: 40} # Tuy nhiên, bạn nên sử dụng các mảng numpy thay vì danh sách Python
p = NLP (f, StartPoint)
p.constraints = [(2 * c + a-10) ** 2 <1,5 + 0,1 * b, (a-10) ** 28,9, a + b> [7,97999836, 7,8552538],
a <9, (c-2) ** 2 <1, b <-1,02, c> 1.01, ((b + c * log10 (a) .sum () - 1) ** 2) .eq (0) ]
r = p.solve ('ralg')
in r.xf
Sản lượng dự kiến:
...
objFunValue: 717,75631 (khả thi, hạn chế tối đa = 7.44605e-07)
{A: array ([8,99999792, 8,87525277]), b: array ([- 1,01999971]), c: array ([1,0613562])}
là gì mới trong này phát hành:
- Interalg hiện đang làm việc nhiều lần (đôi khi đơn đặt hàng) nhanh hơn trên (có thể đa chiều) các vấn đề hội nhập (IP) và trên một số vấn đề tối ưu hóa
- Thêm mô hình dày đặc (MI) (QC) QP trong FuncDesigner (alpha-phiên bản, dựng hình có thể làm việc từ từ nào)
- Sửa lỗi cho cplex wrapper
- Một số cải tiến cho FuncDesigner phân tích khoảng thời gian (và do đó interalg)
- Thêm FuncDesigner phân tích khoảng thời gian cho tan trong phạm vi (-pi / 2, pi / 2)
- Một số sửa lỗi và cải tiến khác
- (Proprietary) FuncDesigner ngẫu nhiên addon tại là có sẵn như là độc PYC-file, trở thành có sẵn cho Python3 cũng
là gì mới trong phiên bản 0.45:
- cải tiến cần thiết cho FuncDesigner phân tích khoảng thời gian (do đó ảnh hưởng đến interalg)
- walkaround tạm thời cho một lỗi nghiêm trọng trong FD tự động kernel biệt do một lỗi trong một số phiên bản của Python hoặc NumPy, có thể ảnh hưởng đến vấn đề tối ưu hóa, bao gồm (MI) LP, (MI) NLP, TSP vv
- Một số sửa lỗi nhỏ khác và cải tiến.
là gì mới trong phiên bản 0.43:
- interalg bây giờ có thể giải quyết SNLE trong chế độ 2 (tham số dataHandling = & quot; & quot ;, liệu trước đây - chỉ & quot; sắp xếp & quot;)
- Nhiều cải tiến khác cho interalg
- Một số cải tiến cho FuncDesigner kernel
- FuncDesigner ODE hiện có 3 đối số thay vì 4 (không tương thích ngược!), Ví dụ: {T: np.linspace (0,1,100)} hay chỉ là np.linspace (0,1,100) nếu bên phải ODE của bạn là thời gian independend
- FuncDesigner ngẫu nhiên addon có thể xử lý một số vấn đề với NLP dựa trên gradient / NSP giải quyết
- Nhiều cải tiến nhỏ và một số sửa lỗi
là gì mới trong phiên bản 0.39:
- interalg: thêm các biến phân loại và hạn chế hợp lý nói chung, nhiều người khác cải tiến
- Một số cải tiến cho sự khác biệt tự động
- DerApproximator và một số chức năng OpenOpt / FuncDesigner hiện đang làm việc với PyPy
- New giải lsmr cho rậm / thưa thớt LLSP
- constructors oovar bây giờ có thể xử lý các thông số lb và ub, ví dụ: a = oovar ('a', lb = -1, ub = [1,2,3]) (oovar này nên có kích thước 3) hoặc x = oovars (10 lb = -1, ub = 1)
- New FuncDesigner chức năng hstack, cú pháp tương tự để numpy.hstack, ví dụ: f = hstack ((a, b, c, d))
- Một số sửa lỗi
là gì mới trong phiên bản 0.36:
- phân tích Interval bây giờ có thể liên quan đến min, max và 1-d splines đơn điệu R - & gt; R 1 và bậc 3
- Một số sửa lỗi và cải tiến
là gì mới trong phiên bản 0.21:
- Các tính năng mới: Tích hợp, phiên dịch
- Một số tăng tốc để đánh giá chức năng, sự phân biệt tự động, các vấn đề tối ưu hóa với một số biến cố định
- New useSparse tham số cho probs tối ưu hóa và tự động phân biệt (đôi khi autoselect làm việc sớm)
- New exactShape tham số cho sự khác biệt tự động (ngăn chặn các hoạt động tâng bốc)
- Một số sửa lỗi (chủ yếu là WRT bằng các ma trận thưa thớt) và mã ngẫu nhiên
là gì mới trong phiên bản 0.18:
- Thêm điều hành FuncDesigner ifThenElse
- dung sai cho cá nhân hạn chế FuncDesigner
- bây giờ để xác định chế bình đẳng, bạn có thể sử dụng expression_1 == expression_2, có thể với sự khoan dung cũng như: (xpression_1 == expression_2) (tol = 0,0001)
- một số cải tiến trong phân tự động (nhưng một số vẫn còn nhiều việc phải làm)
- & quot; dung sai tiêu cực & quot; cho các ràng buộc (để nghiêm khắc với tỉ lệ thích hợp). Tuy nhiên, có thể trong tương lai nó sẽ được thay thế bằng một cái gì đó giống như myConstr (nghiêm ngặt = True) để hiểu rõ hơn.
- đặt tên () được đánh dấu là bị phản đối
Yêu cầu :
- Python
- NumPy
Bình luận không