Mathematica
Re: Mathematica
Hm, meni javi kar je prikazano na sliki.
Ne da pa se rešiti na simbolni ravni, se pravi da je rezultat v obliki eliptičnih funkcij?
Ne da pa se rešiti na simbolni ravni, se pravi da je rezultat v obliki eliptičnih funkcij?
Re: Mathematica
Daj vsaj tisti pi uporabi rocno, da odpravis tiste minuse.
Sicer pa ne more integrirat, dokler ne ve dfi-ja. To odpravis tako, da definiras funkcijo, ki integrira sele ko jo klices. To dela operator := (dvopicje je nujno, drugace hoce takoj racunat, preden das stevilko noter).
mojafunkcija[dfi_]:=NIntegrate[.....]
Zdaj bi moralo mojafunkcija[0.42342] ali karkoli ze, dat stevilko ven, ce je le v pravem obmocju.
Sicer pa ne more integrirat, dokler ne ve dfi-ja. To odpravis tako, da definiras funkcijo, ki integrira sele ko jo klices. To dela operator := (dvopicje je nujno, drugace hoce takoj racunat, preden das stevilko noter).
mojafunkcija[dfi_]:=NIntegrate[.....]
Zdaj bi moralo mojafunkcija[0.42342] ali karkoli ze, dat stevilko ven, ce je le v pravem obmocju.
Re: Mathematica
Ukaz Reduce mi javi
Ok, zanima me, kako to napako preprečim - da v algoritmu dodam nekaj, kar bi spremenilo poljubno število v "eksaktno".
oz. podrobno na http://reference.wolfram.com/mathematic ... ratnz.html.Reduce::ratnz: Reduce was unable to solve the system with inexact coefficients. The answer was obtained by solving a corresponding exact system and numericizing the result.
Ok, zanima me, kako to napako preprečim - da v algoritmu dodam nekaj, kar bi spremenilo poljubno število v "eksaktno".
Re: Mathematica
Obstaja kak način, da se kodo, napisano v Mathematici, pohitri? Ma itak ne bi pisal algoritmov v Mathematici, če bi imel vse potrebne rutine v C/C++, sam kak FindRoot/Reduce pogrešam.
Re: Mathematica
Hm... odvisno. Ce je same kode v Mathematici, ki dejansko racuna, veliko, imas ukaz Compile, bo pa seveda potem to delalo v standardni double natancnosti (malo poglej kako se klice). Ce delas v c/c++ lahko uporabis GSL knjiznico za vecji del numerike.
Re: Mathematica
Ma ja, GSL, potem moram štartati Linux, tist je pa čist drug svet. Hvala za Compile, bom pogledal .
Re: Mathematica
Aja na windowsih si pa res vecinoma omejen na notranjost Mathematice in matlaba. Si poskusil Python? Ne se ustrasit novega jezika, to je se najmanj... ima zelo mocne numericne knjiznice, pa sposoben je neke vmesne abstraktnosti in vmesne hitrosti med c-jem in mathematico... ce bo podobnih projektov se kaj, priporocam.
Re: Mathematica
Ja, Python sem neki uporabljal, a to je prepočasna zadeva - sem tam na pisal za pokušino Fourierovo transformacijo in je neprimerljivo počasnejša od različice v C-ju. Res je, Python ima neke knjižinice, npr. Scipy, Numpy, sam to jo potem isto kot pri Mathematici - izdelane kode delajo hitro, zanke, ki jih napišem sam, pa pač ne. Se pa v Pythonu menda da napisati tako kodo, da ti jo potem spremeni v C, kar lahko pomeni, da skompajlaš tam in obenem python rutine uporabljaš.
Re: Mathematica
Seveda, saj cilj je, da uporabis cim vec vgrajenih funkcij. Je pa vseeno bolj primeren za programiranje kot jezik in sigurno je hitrejsi od Mathematice, ker je manj abstrakten.
Re: Mathematica
In kaj je najboljše? GSL najbrž? Se pa da GSL menda poganjati tudi v Pythonu (http://dpinte.wordpress.com/2010/04/22/ ... ith-weave/).
Re: Mathematica
GSL v pythonu je bolj za tiste, ki so ga ze navajeni uporabljat, vidis da je kar grdo packanje da ga noter dobis. V pythonu je ravno to fora, da imas scipy in numpy, ki to delata na pythonu prijazen nacin.
No, vsekakor je tvoj problem bolj specificne narave z matematicne strani. Poskusi enkrat za hec za en set parametrov integrirat "rocno" s trapezno metodo (razdeli interval na N intervalov in sestej vrednosti funkcije v sredinah intervalov & pomnozi s sirino intervala). Potem podvajaj N in glej, ce kam konvergira ali se cisto razsuje. Tako dobis obcutek, kako grozna je singularnost in kako tezko jo je integrirat. Mogoce ni slaba ideja narisat graf funkcije pod integralom od levega do desnega obmocja, da tocno vidis s cim imas opravka.
No, vsekakor je tvoj problem bolj specificne narave z matematicne strani. Poskusi enkrat za hec za en set parametrov integrirat "rocno" s trapezno metodo (razdeli interval na N intervalov in sestej vrednosti funkcije v sredinah intervalov & pomnozi s sirino intervala). Potem podvajaj N in glej, ce kam konvergira ali se cisto razsuje. Tako dobis obcutek, kako grozna je singularnost in kako tezko jo je integrirat. Mogoce ni slaba ideja narisat graf funkcije pod integralom od levega do desnega obmocja, da tocno vidis s cim imas opravka.
Re: Mathematica
Hvala, mogoče bom pa le po dolgem času zagnal Linux in se malo igral z GSL .
Tisti problem pa sicer ni moj , sam mal sem v debato posegel.
Tisti problem pa sicer ni moj , sam mal sem v debato posegel.
Re: Mathematica
Zdravo!
Rad bi rešil sistem enačb v Mathematici, pa mi ne uspe. Peš sem sistem že izračunal, ne vem pa zakaj tu ne gre.
Povezava do *.nb datoteke (glej samo sistem enačb na koncu):
http://dl.dropbox.com/u/76090434/MathSi ... %C4%8Db.nb
Rad bi rešil sistem enačb v Mathematici, pa mi ne uspe. Peš sem sistem že izračunal, ne vem pa zakaj tu ne gre.
Povezava do *.nb datoteke (glej samo sistem enačb na koncu):
http://dl.dropbox.com/u/76090434/MathSi ... %C4%8Db.nb
Re: Mathematica
Zdravo,
imam vprašanje glede Mathematici. Zanima me naslednje: ndefiniram neke podatke, npr a=3, b=4,... in potem grem ,kako bi rekel v nov odstavek in hočem izračunati npr a*b, seveda Mathematica več ne prepozna podatkov. Zanima me, kako bi napisal, da bi lahko potem vedno klical podatke? V novih podoknih,...da ne bi bilo potrebno na novo pisati ali kopirati
Sem vedel, pa sem pozabil. Ali gre nekako takole: podatki:={a->3,b->4} potem pa ne vem kako pokličeš v nekem podoknu te podatke, ko želim izračunati npr a*b
Hvala
imam vprašanje glede Mathematici. Zanima me naslednje: ndefiniram neke podatke, npr a=3, b=4,... in potem grem ,kako bi rekel v nov odstavek in hočem izračunati npr a*b, seveda Mathematica več ne prepozna podatkov. Zanima me, kako bi napisal, da bi lahko potem vedno klical podatke? V novih podoknih,...da ne bi bilo potrebno na novo pisati ali kopirati
Sem vedel, pa sem pozabil. Ali gre nekako takole: podatki:={a->3,b->4} potem pa ne vem kako pokličeš v nekem podoknu te podatke, ko želim izračunati npr a*b
Hvala