Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 5. 5. 2011 17:39:56

bery
Člen
Registrace: 5. 5. 2011
Příspěvků: 1

Iterace vzorce k reálnému číslu pomocí řešitele spuštěného makrem

Řeším, jak makrem dosáhnout toho, aby řešitel (ať už lineární nebo nelineární) nehledal iterací maximum či minimum, ale reálné číslo ..

Graficky to možné je - naklikat "Optimalizovat výsledek" > "Hodnota" > buňka nebo číslo

Potřebuji získat kořen kubické rovnice (opravdu vede pouze k jednomu rozumnému řešení splňujícímu fyzikální zákony) pomocí extension "Solver for Nonlinear Programming", neustálé zadávání přes grafiké rozhraní je neskutečně otravné a vede k potencionálnímu vzniku chyby. NLPSolver používá stejnou syntaxi jako běžný XSolver obsažený v OOo3+ a navíc další proměnné k nastavení chování nelineárního výpočtu.

V dokumentaci XSolver je "Optimalizace výsledku" řešena proměnou

Maximize (boolean)

- čili buď hledá minimum (false) nebo maximum (true) změnou zadaných buněk. Nepodařilo se mi nikde vyčíst, jak ho přinutit hledat konkrétní reálné číslo (ale možná jsem jen slepý nebo mě strašlivě zmátl český překlad OOo).

Prosím tedy o radu, jestli (a jak) je možné pomocí makrem ovládaného řešitele hledat hodnotu proměnné buňky, aby řešený vzorec konvergoval k předem danému reálnému číslu (v mém případě nule) tak, jak je to možné pomocí grafického dialogu.

Samozřejmě, řešením je napsat vlastní makro s obyčejnou Newtonovou metodou, ale ta na daných rovnicích konverguje výrazně hůře. A už z principu chci umět naplno ovládat solver z makra.

Offline

#2 5. 5. 2011 18:47:58

lp.
Člen
Registrace: 24. 9. 2009
Příspěvků: 814

Re: Iterace vzorce k reálnému číslu pomocí řešitele spuštěného makrem

Zkuste minimalizovat (výsledek)^2

obecněji min((funkce - cílová_hodnota)^2)

Offline

Zápatí