FuncDesigner ay isang open source Cas (Computer & nbsp; Algebra System) na nakasulat sa Python. Nasa ibaba ang tatlong halimbawa, upang maaari mong maunawaan kung paano gumagana ang proyekto.
Halimbawa:
mula sa pag-import FuncDesigner *
a, b, c = oovars ('isang', 'b', 'c')
F1, F2 = kasalanan (a) + Cos (b) - log2 (c) + sqrt (b), sum (c) + c * tahimik (b) / (a) arctan + c [0] * c [1] + c [-1] / (a * c.size)
F3 = F1 * F2 + 2 * + isang kasalanan (b) * (1 + 2 * c.size + 3 * f2.size)
f = 2 * isang * b * c + F1 * F2 + F3 + tuldok (a + c, b + c)
point = {a: 1, b: 2, c: [3, 4, 5]} # gayunpaman, nais ng mas mahusay na gamitin numpy array sa halip ng mga listahan ng Python
-print (f (tuldok))
-print (f.D (tuldok))
-print (f.D (punto, a))
-print (f.D (punto, [b]))
-print (f.D (point, fixedVars = [a, c]))
Inaasahang output:
[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; * Maaari mong gamitin ang "para sa" ikot ng sa FuncDesigner code
Halimbawa:
mula sa pag-import FuncDesigner *
a, b, c = oovars ('isang', 'b', 'c')
F1, F2 = kasalanan (a) + Cos (b) - log2 (c) + sqrt (b), sum (c) + c * tahimik (b) / (a) arctan + c [0] * c [1] + c [-1] / (a * c.size)
F3 = F1 * F2 + 2 * + isang kasalanan (b) * (1 + 2 * c.size + 3 * f2.size)
F = kasalanan (F2) * F3 + 1
M = 15
para i sa hanay (M): F = 0.5 * F + 0.4 * F3 * Cos (F1 + 2 * F2)
point = {a: 1, b: 2, c: [3, 4, 5]} # gayunpaman, nais ng mas mahusay na gamitin numpy array sa halip ng mga listahan ng Python
-print (F (tuldok))
-print (F.D (tuldok))
-print (F.D (punto, a))
-print (F.D (punto, [b]))
-print (F.D (point, 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])}
Halimbawa:
mula sa pag-import FuncDesigner *
mula sa pag-import openopt NLP
a, b, c = oovars ('isang', 'b', 'c')
f = sum (a * [1, 2]) ** 2 + b ** 2 + c ** 2
startPoint = {a: [100, 12], b: 2, c: 40} # gayunpaman, nais ng mas mahusay na gamitin numpy array sa halip ng mga listahan ng Python
p = NLP (f, startPoint)
p.constraints = [(2 * c + a-10) ** 2 <1.5 + 0.1 * b, (a-10) ** 28.9, isang + b> [7.97999836, 7.8552538],
isang <9, (c-2) ** 2 <1, b <-1.02, c> 1.01, ((b + c * log10 (a) .sum () - 1) ** 2) .eq (0) ]
r = p.solve ('ralg')
-print r.xf
Inaasahang output:
...
objFunValue: 717.75631 (magagawa, max hadlang = 7.44605e-07)
{A: array ([8.99999792, 8.87525277]), b: array ([- 1.01999971]), c: array ([1.0613562])}
Ano ang bagong sa pakawalan:
- Gumagana na Interalg maraming beses (minsan order) mas mabilis sa (posibleng maraming interes) mga problema sa pagsasama (IP) at sa ilang mga problema sa pag-optimize
- Magdagdag ng modeling siksik (MI) (qc) QP sa FuncDesigner (alpha-bersyon, maaaring mabagal gumagana pa pag-render)
- Bugfix para sa cplex wrapper
- Ang ilang mga pagpapabuti para sa FuncDesigner agwat ng pag-aaral (at samakatuwid ay interalg)
- Magdagdag FuncDesigner agwat ng pag-aaral para sa tan sa hanay (-pi / 2, pay / 2)
- Ang ilang mga iba pang mga bugfixes at pagpapabuti
- (Pinagmamay-arian) FuncDesigner stochastic addon ngayon ay magagamit bilang nakapag-iisang pyc-file, naging available para sa Python3 pati na rin
Ano ang bagong sa bersyon 0.45:
- Mahalagang mga pagpapabuti para sa FuncDesigner agwat ng pag-aaral (kung kaya't nakakaapekto interalg)
- Mga Pansamantalang walkaround para sa isang malubhang bug sa FD awtomatikong pagkita ng kaibhan ng kernel dahil sa isang bug sa ilang mga bersyon ng Python o NumPy, maaaring maapektuhan ng mga problema sa pag-optimize, kabilang ang (MI) LP, (MI) NLP, TSP atbp
- Ang ilang iba pang mga menor de edad bugfixes at pagpapabuti.
Ano ang bagong sa bersyon 0.43:
- interalg ngayon ay maaari malutas SNLE sa 2nd na mode (parameter dataHandling = & quot; raw & quot ;, bago - lamang & quot; pinagsunod-sunod & quot;)
- Maraming mga iba pang mga pagpapabuti para sa interalg
- Ang ilang mga pagpapabuti para sa FuncDesigner kernel
- FuncDesigner ODE ay may 3 mga argumento sa halip ng 4 (paatras hindi pagkakatugma!) Ngayon, hal {T: np.linspace (0,1,100)} o galos lamang np.linspace (0,1,100) kung ang iyong ODE kanang bahagi ay oras-independend
- FuncDesigner stochastic addon ngayon kayang hawakan ng ilang mga problema sa NLP gradient-based / NSP solvers
- Maraming mga menor de edad pagpapabuti at ilang mga bugfixes
Ano ang bagong sa bersyon 0.39:
- interalg: magdagdag ng katergoryang mga variable at pangkalahatang mga hadlang lohikal, maraming iba pang mga pagpapabuti
- Ang ilang mga pagpapabuti para sa awtomatikong pagkita ng kaibhan
- DerApproximator at ang ilang mga pag-andar OpenOpt / FuncDesigner ay gumagana na ngayon na may PyPy
- Bagong Solver lsmr para sa siksik / kalat-kalat LLSP
- oovar constructor ay maaari na ngayong pangasiwaan ang mga parameter ng LB at ub, hal isang = oovar ('isang', LB = -1, ub = [1,2,3]) (ito oovar dapat magkaroon ng laki 3) o x = oovars (10, LB = -1, ub = 1)
- Bagong FuncDesigner function na hstack, katulad syntax sa numpy.hstack, hal f = hstack ((a, b, c, d))
- Ang ilang mga bugfixes
Ano ang bagong sa bersyon 0.36:
- Pagitan pag-aaral ngayon ay maaaring may kasangkot min, max at 1-d tonong hindi nagbabago splines r - & gt; R ng ika-1 at ika-3 sunod
- Ang ilang mga bugfixes at pagpapabuti
Ano ang bagong sa bersyon 0.21:
- Bagong tampok: Pagsasama, Translator
- Ang ilang mga speedup para sa mga pag-andar pagsusuri, awtomatikong pagkita ng kaibhan, mga problema sa pag-optimize na may ilang mga nakapirming mga variable
- Bagong parameter useSparse para probs sa pag-optimize at awtomatikong pagkita ng kaibhan (minsan autoselect gumagana maaga)
- Bagong parameter exactShape para sa awtomatikong pagkita ng kaibhan (pinipigilan ang nakakabigay-puri pagpapatakbo)
- Ang ilang mga bugfixes (halos wrt gamit ang kalat-kalat matrices) at code paglilinis
Ano ang bagong sa bersyon 0.18:
- Magdagdag FuncDesigner operator ifThenElse
- Personal tolerances para sa mga hadlang FuncDesigner
- ngayon upang tukuyin ang hadlang na pagkakapantay-pantay, maaari mong gamitin ang expression_1 == expression_2, posibleng kasama ng pagbibigayan, pati na rin: (xpression_1 == expression_2) (tol = 0.0001)
- ilang mga pagpapabuti sa awtomatikong pagkita ng kaibhan (pa ilang higit pang manatili gawin)
- & quot; negatibong tolerances & quot; para sa mga hadlang (na maging mahigpit na may naaangkop na scale). Gayunpaman, marahil sa hinaharap ito ay papalitan sa pamamagitan ng isang bagay tulad ng myConstr (mahigpit = True) para sa mas mahusay na pag-unawa.
- may pangalan na () minarkahan bilang hindi na ginagamit
Mga Kinakailangan :
- Python
- NumPy
Mga Komento hindi natagpuan