Numerična napaka?

O matematiki, številih, množicah in računih...
Odgovori
Popotnik
Prispevkov: 532
Pridružen: 12.11.2008 18:35

Numerična napaka?

Odgovor Napisal/-a Popotnik »

Računam Lyapunov eksponent in sproti prikazujem delne rezultate.

Prva vrednost je običajno čez 1, no potem hitro pada proti neki vrednosti (odvisno pri katerem parametru energije računam), tj. ta vrednost je recimo od 0.1 do 0.6, nakar pa počasi počasi počasi se viša. Zanima me, ali je morda slednje napaka zaradi numerike?

Uporabniški avatar
Aniviller
Prispevkov: 7263
Pridružen: 15.11.2004 18:16

Re: Numerična napaka?

Odgovor Napisal/-a Aniviller »

Hm... kako ga racunas? Kaksne delne rezultate... mogoce bo lazje, ce navedes postopek. Ce sledis tocki po faznem prostoru in reskaliras razdaljo vsakic ko prevec naraste ali pade, potem jasno lahko pocasi zdrsnes na sosednje orbite - dokler je Lyapunov eksponent odvisen od zacetnega pogoja, ti drift lahko spremeni vrednost.

Popotnik
Prispevkov: 532
Pridružen: 12.11.2008 18:35

Re: Numerična napaka?

Odgovor Napisal/-a Popotnik »

Ni običajna formula za Lyapuna, še vedno pa standardna formula za bilijard:

\(\frac{1}{2 \text{n}}\text{Log}[\text{Tr}[\text{Transpose}[\text{Sn}].\text{Sn}]]\)

kjer se v zanki računa \(Sn = Jacobi.Sn;\).

Uporabniški avatar
Aniviller
Prispevkov: 7263
Pridružen: 15.11.2004 18:16

Re: Numerična napaka?

Odgovor Napisal/-a Aniviller »

Tezko recem, to moras posebej iz konteksta videt kako dalec v sekvenci se zacne to dogajat (ali bi moralo skonvergirat, pa numerika dela tezave, ali dejansko se ni skonvergiralo in opazujes rep konvergence). Je pa moznost numericnih tezav res velika: ko izraz konvergira, se logaritem linearno povecuje z n, notranja zadeva pa torej raste / pada eksponentno. To pomeni, da kaj hitro pades v neobvladljivo ekstremne stevilke.

Popotnik
Prispevkov: 532
Pridružen: 12.11.2008 18:35

Re: Numerična napaka?

Odgovor Napisal/-a Popotnik »

Najbrž bom čez noč dal testirati res za ogromno število iteracij - bom videl, kak bo še naraščalo.

Tko na hitro mislim, da za nizke energije rabim več iteracij, da dobim nekako reprezantivno vrednost Lyapuna, za visoke pa manj.

Sicer pa še 1x - Mathematica res SUX, pač počasi delajo te for zanke, res pa je, da ima pač neke funkcije, ki jih rade volje uporabim, samo da si ne belim glave v kakem C/C++.

Uporabniški avatar
Aniviller
Prispevkov: 7263
Pridružen: 15.11.2004 18:16

Re: Numerična napaka?

Odgovor Napisal/-a Aniviller »

Hja, ce bos sel predalec se bo itak sesulo (overflow). Mathematica pa pac ni misljena za koncni izdelek... je bolj za prototipe - zelo hitro lahko sestavis delujoc test necesa. Ce pa hoces, da je hitro, pa potem prepises v c :)

Sicer je tako - lahko dobis nenatancnost pri matrikah zaradi akumulacije napake, lahko se ti pa zgodi tudi, da sama iteracija ni cisto tocna (da skrenes iz trajektorije in se energija ne ohranja ali kaj podobnega). Je pa jasno, da ti bo pri visoki energiji hitro skonvergiral, ker je kaoticen ... pri nizki moras pa pocakat, da pocasi pretipa fazni prostor.

Popotnik
Prispevkov: 532
Pridružen: 12.11.2008 18:35

Re: Numerična napaka?

Odgovor Napisal/-a Popotnik »

Aniviller napisal/-a:Ce pa hoces, da je hitro, pa potem prepises v c :)
Nekaj sem našel - http://reference.wolfram.com/mathematic ... rface.html :wink:
Mathematica supports several levels of interfacing to C and C++ programs. You can create "installable" C programs where C functions are directly connected to Mathematica functions. You can use C to call Mathematica through MathLink and get full access to its capabilities. And you can create C program fragments and modify C source code.
Se splača v to kaj poglobit?

Uporabniški avatar
Aniviller
Prispevkov: 7263
Pridružen: 15.11.2004 18:16

Re: Numerična napaka?

Odgovor Napisal/-a Aniviller »

Ja to poznam ja. Ce se splaca? Hm... za samo numeriko skoraj sigurno ne. Ko si v c-ju imas itak druge knjiznice za vse specialne funkcije, integratorje, iskanje nicel in podobno. Splacalo bi se kvecjemu, ce bi uporabil kaksno stvar, ki jo res Mathematica dela bolje - ce rabis kaksno stvar, ki vmes resuje analiticno ali zelo pazi na zacetne in robne pogoje (recimo kaksna hudo adaptivna metoda za integracijo funkcij cez pole in neskoncnosti, ce ne najdes funkcij kje drugje... ali kaksna specialna funkcija, ki jo ne najdes v standardnih knjiznicah). Gre za to, da s tem tudi izgubis portabilnost kode. Cim uporabis MathLink, zahtevas da je to zrihtano (po moznosti na enak nacin v isti verziji) na vsakem sistemu, kjer to poganjas, kar zelo omeji stevilo racunalnikov kjer ti bo to delalo.

Odgovori