Mathematica - Error

O matematiki, številih, množicah in računih...
Odgovori
Uporabniški avatar
fogl
Prispevkov: 546
Pridružen: 7.11.2004 20:25
Kraj: Radovljica

Mathematica - Error

Odgovor Napisal/-a fogl »

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?

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

Re: Mathematica - Error

Odgovor Napisal/-a Aniviller »

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.

Uporabniški avatar
fogl
Prispevkov: 546
Pridružen: 7.11.2004 20:25
Kraj: Radovljica

Re: Mathematica - Error

Odgovor Napisal/-a fogl »

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.

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

Re: Mathematica - Error

Odgovor Napisal/-a Aniviller »

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).

Uporabniški avatar
fogl
Prispevkov: 546
Pridružen: 7.11.2004 20:25
Kraj: Radovljica

Re: Mathematica - Error

Odgovor Napisal/-a fogl »

Sem poskusil tako, ampak je rezultat isti.

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

Re: Mathematica - Error

Odgovor Napisal/-a Aniviller »

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],...]

Uporabniški avatar
fogl
Prispevkov: 546
Pridružen: 7.11.2004 20:25
Kraj: Radovljica

Re: Mathematica - Error

Odgovor Napisal/-a fogl »

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

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

Re: Mathematica - Error

Odgovor Napisal/-a Aniviller »

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.

Uporabniški avatar
fogl
Prispevkov: 546
Pridružen: 7.11.2004 20:25
Kraj: Radovljica

Re: Mathematica - Error

Odgovor Napisal/-a fogl »

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.

Uporabniški avatar
fogl
Prispevkov: 546
Pridružen: 7.11.2004 20:25
Kraj: Radovljica

Re: Mathematica - Error

Odgovor Napisal/-a fogl »

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

Odgovori