Mathematica - Error

O matematiki, številih, množicah in računih...
Post Reply
User avatar
fogl
Posts: 545
Joined: 7.11.2004 20:25
Location: Radovljica

Mathematica - Error

Post by fogl » 21.10.2011 11:17

S funkcijo FindRoot bi rad našel rešitev enačbe, ampak mi javi napako (klik), kjer pravi, da "Vrednost funkcije pri začetni vrednosti iskanja ni seznam števil dimenzije {1}". Ampak če izračunam vrednost funkcije pri tej začetni vrednosti dobim rešitev dimenzije {1}. Ne kapiram v čem je sploh problem? :roll: Mogoče kdo ve?

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Re: Mathematica - Error

Post by Aniviller » 21.10.2011 11:35

Kako je funkcija definirana? Lahko je kak problem s tem, da ko se enkrat vstavi simbol noce menjat simbolov s stevilkami. Vcasih pomaga dat okrog vsake funkcije Evaluate[]. Lahko pa je kaksna bolj ocitna napaka glede klicanja FindRoot.

User avatar
fogl
Posts: 545
Joined: 7.11.2004 20:25
Location: Radovljica

Re: Mathematica - Error

Post by fogl » 21.10.2011 13:28

Mislim da sem ugotovil v čem je problem. Znotraj funkcije imam koeficient definiran z if stavki (klik). Ampak ne vem kako naj to rešim, ker tem if stavkom se ne morem izognit. Tudi če z Evaluate objamem vse te if stavke, je problem isti.

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Re: Mathematica - Error

Post by Aniviller » 21.10.2011 13:47

No, evaluate bi moral stat v FindRoot[ Evaluate[...]==Evaluate[...],...]. If stavki se bodo ze izvedli, samo prisilit jih moras, da se stvar se enkrat poracuna ko se vstavijo stevilke. Ker := mu preprecuje to naredit direktno (brez pa ne more bit ce se ne motim).

User avatar
fogl
Posts: 545
Joined: 7.11.2004 20:25
Location: Radovljica

Re: Mathematica - Error

Post by fogl » 21.10.2011 14:21

Sem poskusil tako, ampak je rezultat isti.

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Re: Mathematica - Error

Post by Aniviller » 21.10.2011 14:26

Kaj pa ce das evaluate okrog obojega (z enacajem vred)? Problem je namrec "HoldAll" atribut metode FindRoot:
http://reference.wolfram.com/mathematic ... ldAll.html
Evaluate naj bi razveljavil ta efekt. Mogoce tudi daj razliko in ne uporabi ==.

FindRoot[Evaluate[f1-f2],...]

User avatar
fogl
Posts: 545
Joined: 7.11.2004 20:25
Location: Radovljica

Re: Mathematica - Error

Post by fogl » 21.10.2011 14:43

Sem poskusil tudi to, ampak je rezultat še vedno isti - klik

User avatar
Aniviller
Posts: 7263
Joined: 15.11.2004 18:16

Re: Mathematica - Error

Post by Aniviller » 21.10.2011 15:10

Moras slucajno dat v Module notri na koncu Return[ret]? Ker zdaj mi izgleda kot da imas referenco na notranjo spremenljivko v Module, ki mu ni vsec.

User avatar
fogl
Posts: 545
Joined: 7.11.2004 20:25
Location: Radovljica

Re: Mathematica - Error

Post by fogl » 21.10.2011 16:02

Tudi če dam Return je rezultat isti. Tista lokalna spremenljivka milim da ni problem, ker karkoli drugega uporabim, samo da ne vključuje if stavkov, je vse ok.

User avatar
fogl
Posts: 545
Joined: 7.11.2004 20:25
Location: Radovljica

Re: Mathematica - Error

Post by fogl » 24.10.2011 9:45

Sem rešil :) Namesto z if sem funkcijo definiral s Piecewise.

Post Reply