Mathematica-pomoč

O matematiki, številih, množicah in računih...
Odgovori
andrija1987
Prispevkov: 13
Pridružen: 12.6.2008 20:04

Mathematica-pomoč

Odgovor Napisal/-a andrija1987 »

Pozdravljeni. Nujno bi prosil za pomoč glede programa Mathematica. Poskusil sem naloge reševati s pomočjo funkcij vgrajenih v math. vendar mi ni uspelo. Prvo sem uspel rešit s pomočjo funkcije Plot ter Intersection ampak nisem dobil pravilnega rezultata. :( hvala
attachment=0]Screenshot.png[/attachment]
Priponke
Screenshot.png

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

Re: Mathematica-pomoč

Odgovor Napisal/-a Aniviller »

Ne bo ti kar ven vrglo rezultata, moras vedeti kaj pocnes. Zloraba grafov je brezvezna. Poglej si
FindRoot

andrija1987
Prispevkov: 13
Pridružen: 12.6.2008 20:04

Re: Mathematica-pomoč

Odgovor Napisal/-a andrija1987 »

Ali bi mi lahko prosim namignil kako bi rešil te naloge v mathematici? :?:
Imam nekaj zapiskov ampak ne uspem sklepat iz rešenih nalog kako bi uporabil te funkcije na drug način . :(

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

Re: Mathematica-pomoč

Odgovor Napisal/-a Aniviller »

No, namignil... saj je samo prepis naloge po stavkih.

Prva:

Koda: Izberi vse

f[x_]=Sin[2x]x^2+0.1
FindRoot[f[x]==x,{x,0}]
Druga:

Koda: Izberi vse

g[x_]=Exp[-x]x^2 Sin[x]^2
a=2;
k=-1/g'[a]
Solve[{(y-g[a])==k(x-a),y==0},x]
Tretja:

Koda: Izberi vse

h[x_]=Exp[-x/2]Sin[x]^2
tab=Table[{0.1i,h[0.1i]},{i,1,5}]
s=Fit[tab,{1,x,x^2},x]
Max[x/.Solve[s==0,x]]

prog
Prispevkov: 20
Pridružen: 23.9.2009 10:13

Re: Mathematica-pomoč

Odgovor Napisal/-a prog »

Pozdraljeni! Imam eno vprašanje glede mathematice in bom izkoristil že odprto temo. Problem: Imam sistem diferencialnih enačb prvega reda, kar rešujem s pomočjo funkcije NDSolve, kjer poleg sistem enačb podaš tudi začetne pogoje. Težava nastane, ker moram v diferencialnih enačbah izračnati tudi integral, npr.

\(\dot{x} = v\)
\(\dot{v} = \ldots + \iiint f(a,b,c,x)da\,db\,dc}\).

Preden torej rešujem sistem, moram izračunati integral (numerično), v katerem potrebujem prejšnjo izračunano vrednost x. Zgolj napisati NDSolve ni dovolj. Zanima me torej, kako bi vrednosti x pod integralom vsakič znova pripisal prejšnjo vrednost, da bi lahko izračunal integral in nato rešil sistem? Program uporabljam prvič, zato mogoče razmišljam v napačni smeri...

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

Re: Mathematica-pomoč

Odgovor Napisal/-a Aniviller »

Kot vedno, ni finta v programu (tam samo realiziras to kar hoces naredit). Ti tukajle dokaj strasis s tem integralom. Ce bi bil tudi v mejah x ali bi bil integral po x, bi imel tezave (to sploh ne bi bila vec diferencialna enacba). Ce je pa samo tako kot si napisal, je pa desna stran enostavno nova funkcija
\(F(x)=\iiint f(a,b,c,x){\rm\,d}a{\rm\,d}b{\rm\,d}c\)
ki jo v Mathematici definiras zunaj (magari z NIntegrate). Torej ni vse skupaj nic drugace kot bi imel tam sinus, samo da si funkcijo sam definiral. NDSolve bo ze poskrbel, da bo integriral pravilno - v taki obliki je sistem cisto obicajen prvega reda in ga lahko resis z metodo Runge-Kutta tudi brez NDSolve :)

andrija1987
Prispevkov: 13
Pridružen: 12.6.2008 20:04

Re: Mathematica-pomoč

Odgovor Napisal/-a andrija1987 »

Kako bi pa rešil zadnjo nalogo, uporabljal sem funkcije DSolve NDSolve, ne uspem rešit naloge. :(
S katerim načinom bi pa recimo najlažje poiskal tangento na funkcijo, eksponentno ali parametrično podano?

prog
Prispevkov: 20
Pridružen: 23.9.2009 10:13

Re: Mathematica-pomoč

Odgovor Napisal/-a prog »

Hvala za odgovor. Mogoče nisem bil dovolj jasen. Vem, da v samem integralu ni problema. Je pa težava v tem, da mi mathematica vsakokrat, ko poženem kernel, poroča o nedefiniranem simbolu v integralu in (sem preveril) gre za ta x. Torej, v zapisu

Koda: Izberi vse

NDSolve[{x'[t] == v[t], v'[t] == F[x[t]], x[0]==..., v[0]==...}, {x,v}, ...]
očitno nekaj ni v redu. Sem tu naredil kakšno napako?

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

Re: Mathematica-pomoč

Odgovor Napisal/-a Aniviller »

prog napisal/-a:Hvala za odgovor. Mogoče nisem bil dovolj jasen. Vem, da v samem integralu ni problema. Je pa težava v tem, da mi mathematica vsakokrat, ko poženem kernel, poroča o nedefiniranem simbolu v integralu in (sem preveril) gre za ta x. Torej, v zapisu

Koda: Izberi vse

NDSolve[{x'[t] == v[t], v'[t] == F[x[t]], x[0]==..., v[0]==...}, {x,v}, ...]
očitno nekaj ni v redu. Sem tu naredil kakšno napako?
Kvecjemu v integralu ni definiran. Ce reces NIntegrate pricakuje, da so vsi parametri stevilke (ne more numericno integrirat ce je x notri). Zato moras funkcijo F definirati z zakasnjeno evaluacijo (da izracuna sele ko jo poklices). Torej:

Koda: Izberi vse

F[x_]:=NIntegrate[...]
Pazi dvopicje.
andrija1987 napisal/-a:Kako bi pa rešil zadnjo nalogo, uporabljal sem funkcije DSolve NDSolve, ne uspem rešit naloge. :(
S katerim načinom bi pa recimo najlažje poiskal tangento na funkcijo, eksponentno ali parametrično podano?
Eksponentno? Ja parametricno je enostavno: smerni vektor tangente je kar odvod, torej imas samo D[x[t],t] in D[y[t],t]. Iz tega bos pa ze znal sestavit enacbo tangente.

Zadnja naloga: lahko kar DSolve (First je tam zato, ker dobis ven array in moras odstranit {}).

Koda: Izberi vse

s[x_] = First[y[x] /.DSolve[{y'[x] - 9 y[x]^2/8 == x, y[3] == -8/3}, y[x], x]]
Zdaj iscemo s[0] (zacetna vrednost). Ce das samo s[0] zal ni definirano (neka posebna vrednost je tam), zato moras delati z limito.

Koda: Izberi vse

y0=Limit[s[x], x -> 0]
Lahko se pogledas koliko je to:

Koda: Izberi vse

N[y0]

matic91
Prispevkov: 3
Pridružen: 15.10.2009 17:42

Re: Mathematica-pomoč

Odgovor Napisal/-a matic91 »

Lp!

Rad bi narisal krivuljo skozi točke, ki jih podam z dvema funkcijama.
Ti(f(x),g(x))
Mi lahko kdo pove kako bi to naredil v mathematici.

Hvala!

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

Re: Mathematica-pomoč

Odgovor Napisal/-a Aniviller »

Ce mislis parametricno krivuljo, pol (recimo...)

Koda: Izberi vse

ParametricPlot[{x[t],y[t]},{t,-1,1}]

matic91
Prispevkov: 3
Pridružen: 15.10.2009 17:42

Re: Mathematica-pomoč

Odgovor Napisal/-a matic91 »

Hvala! :D

prog
Prispevkov: 20
Pridružen: 23.9.2009 10:13

Re: Mathematica-pomoč

Odgovor Napisal/-a prog »

Imam seznam točk. Gre za 3D primer in te točke bi sedaj rad prikazal na 3d grafu in jih med seboj povezal s črtami. Tega s črtami mi nikakor ne uspe doseči. Uporabil sem funkcijo ListPointPlot3D (se mogoče da točke s seznama prikazati še z drugo funkcijo?), katera pa v nasprotju z 2d sorodno ListPlot nima možnosti ListLinePlot. Predlog?

Odgovori