Knihovna pro minimalizaci nelineární funkce jako v Excelu

Zdravím,
potřebuji zautomatizovat proces výpočtu užitkové funkce. Můj momenátlní problém je, že potřebuji minimalizovat následující funkci:
Kód: [Vybrat]
((x1*math.exp(-10/x2) + x3) - 0.25)**2 + ((x1*math.exp(-20/x2) + x3) - 0.5)**2 + ((x1*math.exp(-30/x2) + x3) - 0.25)**2 + ((x1*math.exp(-30/x2) + x3) - 0.25)**2
Ta funkce navíc může růst o další závorky v závislosti na vstupu (vesměs počtu řádků v excelu).
Potřebuji dostat podobné výsledky jako v excelu. Excel používá GRG (general reduced gradient) algoritmus, který jsem nikde nenašel dostupný v podobě knihovny. Čili se snažím řešit nelineární problém a musí platit, že:
x1 = negativní číslo
x2 = pozitivní číslo
x3 = cokoli
Hledám primárně knihovnu v JAVĚ, ale pokud je to i Python nebo něco, z čeho půjde udělat skript, který budu moct spustit z Javovský aplikace, tak to taky beru, ale radši bych to měl samozřejmě všechno v javě.
V Pythonu jsem zkoušel knihovnu Scipy, která mi ale dává jiné výsledky proměnných x1, x2, x3, ale podobnou hodnotu té minimalizované fce, ale asi to není úplně pravé.

Nemáte někdo zkušenosti s nějakou knihovnou, která by byla schopná mi tu optimalizaci (minimalizaci) vyřešit v podobném duchu jako řešitel v excelu pomocí GRG?

Mockrát děkuji


Re:Knihovna pro minimalizaci nelineární funkce jako v Excelu
« Odpověď #1 kdy: 28. 08. 2021, 13:56:34 »
Omlouvám se za další zprávu, překlikl jsem se. Platí příspěvěk nahoře.

Re:Knihovna pro minimalizaci nelineární funkce jako v Excelu
« Odpověď #2 kdy: 28. 08. 2021, 14:15:08 »
zkusil bych treba tohle https://docs.scipy.org/doc/scipy-0.19.0/reference/generated/scipy.optimize.basinhopping.html

btw. ten vyraz by sel zjednodusit, proc uvadite v takovem dlouhem tvaru?

Re:Knihovna pro minimalizaci nelineární funkce jako v Excelu
« Odpověď #3 kdy: 28. 08. 2021, 14:38:55 »
hele chlap s tečkou načele má něco :o :o
lidi postižený environmentálním žalem hele choděj za ekopsycholožkama hele 🤡 💆 🤡 💆

_Jenda

  • *****
  • 1 550
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Knihovna pro minimalizaci nelineární funkce jako v Excelu
« Odpověď #4 kdy: 28. 08. 2021, 14:56:12 »
To asi nebude konvexní, že? Pro nekonvexní obecné funkce optimum najít nejde, jsou jenom různé heuristiky, které najdou různá lokální optima a z nich vyberou nejlepší. Která konkrétně je nejlepší pro tvůj případ pak ale vyžaduje vyhodnocení se znalostí konkrétního problému, který řešíš.


alex6bbc

  • *****
  • 1 432
    • Zobrazit profil
    • E-mail
Re:Knihovna pro minimalizaci nelineární funkce jako v Excelu
« Odpověď #5 kdy: 30. 08. 2021, 07:16:33 »
pro funkci F(x1,x2,x3) slozenou z jednotlivych clenu ((x1*math.exp(-a/x2) + x3) - b)**2
lze jednoduse spocitat prvni a druhe parcialni derivace dF/dx1, dF/dx2, dF/dx3 a d^2F/dx1^2 atd.
a pak uz to je jen sada rovnic pro prvni derivace rovne 0 a v minimu musi byt druhe derivace vetsi nez 0.

takze se uloha zmeni na sadu rovnic.