FuncDesigner on avoimen lähdekoodin CAS (Computer & nbsp; Algebra System) kirjoitettu Pythonilla. Alla on kolme esimerkkiä, niin voit ymmärtää, miten hanke toimii.
Esimerkki:
alkaen FuncDesigner tuonti *
a, b, c = oovars ("a", "b", "c")
F1, F2 = sin () + cos (b) - log 2 (c) + sqrt (b), summa (c) + c * cosh (b) / arctan () + c [0] * C [1] + C [-1] / (* c.size)
f3 = f1 * f2-+ 2 * + sin (b) * (1 + 2 * c.size + 3 * f2.size)
f = 2 * a * b * c + f1 * f2 + f3-+ piste (a + c, b + c)
piste = {: 1, b: 2, c: [3, 4, 5]} # mutta sinun olisi parempi käyttää numpy paneelit sijaan Python luettelot
Tulosta (f (piste))
Tulosta (f.D (piste))
Tulosta (f.D (kohta,))
Tulosta (f.D (kohta, [b]))
Tulosta (f.D (piste, fixedVars = [c]))
Odotettu lähtö:
[140.9337138 110.16255336 80.67870244]
{: 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, -0,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; * Voit käyttää "puolesta" syklin FuncDesigner koodi
Esimerkki:
alkaen FuncDesigner tuonti *
a, b, c = oovars ("a", "b", "c")
F1, F2 = sin () + cos (b) - log 2 (c) + sqrt (b), summa (c) + c * cosh (b) / arctan () + c [0] * C [1] + C [-1] / (* c.size)
f3 = f1 * f2-+ 2 * + sin (b) * (1 + 2 * c.size + 3 * f2.size)
F = sin (F2) * f3 + 1
M = 15
i kantaman (M): F = 0,5 * F + 0,4 * f3 * cos (F1 + 2 * f2)
piste = {: 1, b: 2, c: [3, 4, 5]} # mutta sinun olisi parempi käyttää numpy paneelit sijaan Python luettelot
Tulosta (F (piste))
Tulosta (F.D (piste))
Tulosta (F.D (kohta,))
Tulosta (F.D (kohta, [b]))
Tulosta (F.D (piste, fixedVars = [c]))
[4.63468686 0.30782902 1.21725266]
{: 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])}
Esimerkki:
alkaen FuncDesigner tuonti *
alkaen openopt tuonti NLP
a, b, c = oovars ("a", "b", "c")
f = summa (* [1, 2]) ** 2 + b ** 2 + c ** 2
aloitus- = {: [100, 12], b: 2, C: 40} # mutta sinun olisi parempi käyttää numpy paneelit sijaan Python luettelot
p = NLP (f, aloitus-)
p.constraints = [(2 * c +-10) ** 2 <1,5 + 0,1 * b, (-10) ** 28,9, a + b> [7,97999836, 7,8552538],
<9, (C-2) ** 2 <1, b <-1,02, c> 1,01, ((b + c * log10 () .sum () - 1) ** 2) .eq (0) ]
r = p.solve ('ralg')
Tulosta r.xf
Odotettu lähtö:
...
objFunValue: 717,75631 (toteutettavissa, max rajoitus = 7.44605e-07)
{: Array ([8,99999792, 8,87525277]), b: array ([- 1,01999971]), c: array ([1,0613562])}
Mitä uutta strong> tässä release:
- Interalg toimii nyt monta kertaa (joskus tilaukset) nopeammin (mahdollisesti moniulotteiseen) sopeutumisvaikeuksia (IP) ja joitakin optimoinnin ongelmia
- Lisää mallinnus tiheä (MI) (QC) QP vuonna FuncDesigner (alfa-versio, mallinnus voi työskennellä hitaasti vielä)
- Bugikorjaus varten cplex kääre
- Joitakin parannuksia FuncDesigner välein analyysin (ja siten interalg)
- Lisää FuncDesigner välein analyysin rusketuksen alue (-pi / 2, pi / 2)
- Joitakin muita bugikorjauksia ja parannuksia
- (Proprietary) FuncDesigner stokastinen addon nyt on saatavana erillisenä PyC-tiedosto, tuli saatavilla python3 sekä
Mitä uutta strong> versiossa 0,45:
- Essential parannuksia FuncDesigner välein analyysi (siis vaikuta interalg)
- Väliaikainen pienveneistä vakavaan bugi FD automaattinen eriyttäminen ydin johtuu viasta joissakin versioissa Python tai NumPy, voivat vaikuttaa optimointi ongelmia, mukaan lukien (MI) LP, (MI) NLP, TSP etc
- Joitakin muita pieniä bugikorjauksia ja parannuksia.
Mitä uutta strong> versiossa 0,43:
- interalg nyt voi ratkaista SNLE 2. (parametri dataHandling = & quot; raaka & quot ;, ennen - vain & quot; lajiteltu & quot;)
- Monia muita parannuksia interalg
- Joitakin parannuksia FuncDesigner kernel
- FuncDesigner ODEn on nyt 3 väitteitä sijasta 4 (taaksepäin yhteensopimattomuus!), Esim {T: np.linspace (0,1,100)} tai pelkkä np.linspace (0,1,100) jos ODEn oikealla puolella on aika-independend
- FuncDesigner stokastinen addon nyt voi käsitellä joitakin ongelmia kaltevuus perustuva NLP / NSP solvers
- Monia pieniä parannuksia ja joitakin bugikorjauksia
Mitä uutta strong> versiossa 0.39:
- interalg: lisää kategorisen muuttujan ja yleinen looginen rajoitteita, monet muut parannukset
- Joitakin parannuksia automaattinen eriyttäminen
- DerApproximator ja jotkut OpenOpt / FuncDesigner toiminnallisuus toimii nyt PyPy
- Uusi ratkaisija lsmr tiheän / harva LLSP
- oovar rakentajien nyt voi käsitellä parametrit lb ja UB, esim = oovar ('', lb = -1, UB = [1,2,3]) (tämä oovar pitäisi olla koko 3) tai x = oovars (10, LB = -1, UB = 1)
- Uusi FuncDesigner toiminto hstack, samanlainen syntaksin numpy.hstack, esimerkiksi f = hstack ((a, b, c, d))
- Jotkut bugikorjauksia
Mitä uutta strong> versiossa 0.36:
- Intervalli analyysi nyt voi liittyä min, max ja 1-d monotoninen urainen R - & gt; R 1. ja 3. Jotta li>
- Jotkut bugikorjauksia ja parannuksia
Mitä uutta strong> versiossa 0.21:
- Uudet ominaisuudet: Integration, Kääntäjä
- Jotkut pyörimisnopeuden funktioiden arviointiin, automaattinen eriyttäminen, optimointi ongelmia joidenkin kiinteiden muuttujien
- Uusi parametri useSparse optimointia probs ja automaattinen eriyttäminen (joskus AutoSelect toimii ennenaikaisesti)
- Uusi parametri exactShape automaattinen eriyttäminen (estää mairitteleva toiminnot)
- Jotkut bugikorjauksia (enimmäkseen WRT käyttäen harva matriisit) ja koodin siivous
Mitä uutta strong> versiossa 0.18:
- Lisää FuncDesigner operaattori ifThenElse
- Henkilökohtainen toleranssit FuncDesigner rajoitukset
- nyt määritellä tasa rajoitteen voit käyttää expression_1 == expression_2, mahdollisesti suvaitsevaisuutta sekä: (xpression_1 == expression_2) (tol = 0,0001)
- joitakin parannuksia automaattinen eriyttäminen (vielä lisää vielä tehdään)
- & quot; negatiivinen toleranssit & quot; varten rajoitteet (olla tiukka asianmukaiset skaalaus). Kuitenkin, ehkä tulevaisuudessa se korvataan jotain myConstr (tiukka = True) ymmärtämistä.
- nimeltään () merkitty vanhentunut
Vaatimukset :
- Python
- NumPy
Kommentteja ei löytynyt