Mathematica
Re: Mathematica
t>0 je cisto jasno definirano: vsako stevilo, ki je predstavljivo v dani natancnosti, in ni negativno ali enako nic. Najmanjse nenicelno stevilo je v "double" natancnosti okrog 10^-308.
10^-16 je nekaj drugega: to je RELATIVNA natancnost podatkov (stevilo decimalk).
10^-16 je nekaj drugega: to je RELATIVNA natancnost podatkov (stevilo decimalk).
Re: Mathematica
Pozdravljeni,
Pri tej DN smo morali z algoritmom naredit trapezno in simpsonovo metodo za numerično rač. integrala \(\int_{0}^{\infty}x^2e^{-x}\), kjer je input interval [a,b] in št. točk, s katerimi integracijski interval razdelimo. Zatakne se mi pri dodatni nalogi:
Obravnavajte polnjenje kondenzatorja C preko upora R pri stalni napetosti U0. To vas
pripelje do znane enačbe
\(\int_{0}^{q(t)}\frac{dq}{CU_0-q}=\frac{t}{RC}\)
Tukaj lahko damo, da je RC=1 in CU0=1, torej je enačba naslednja \(\int_{0}^{q(t)}\frac{dq}{1-q}=t\).
Sedaj moram s pomočjo algoritma numerično poračunati časovno odvisnost q(t).
Problem je seveda v tem, da je v tem primeru t naš izračunan integral (ploščina), iščemo pa zgornjo mejo intervala (q(t)).
A bi se dalo nekako spremenit trapezno metodo, da bi prišli do rezultata?
Poskušal sem več variant, ampak nekako mi ne uspe. Tukaj je koda za mojo trapezno:
Hvala za odgovor in lep pozdrav.
Pri tej DN smo morali z algoritmom naredit trapezno in simpsonovo metodo za numerično rač. integrala \(\int_{0}^{\infty}x^2e^{-x}\), kjer je input interval [a,b] in št. točk, s katerimi integracijski interval razdelimo. Zatakne se mi pri dodatni nalogi:
Obravnavajte polnjenje kondenzatorja C preko upora R pri stalni napetosti U0. To vas
pripelje do znane enačbe
\(\int_{0}^{q(t)}\frac{dq}{CU_0-q}=\frac{t}{RC}\)
Tukaj lahko damo, da je RC=1 in CU0=1, torej je enačba naslednja \(\int_{0}^{q(t)}\frac{dq}{1-q}=t\).
Sedaj moram s pomočjo algoritma numerično poračunati časovno odvisnost q(t).
Problem je seveda v tem, da je v tem primeru t naš izračunan integral (ploščina), iščemo pa zgornjo mejo intervala (q(t)).
A bi se dalo nekako spremenit trapezno metodo, da bi prišli do rezultata?
Poskušal sem več variant, ampak nekako mi ne uspe. Tukaj je koda za mojo trapezno:
Koda: Izberi vse
f[x_] := x^2*E^(-x);
trapezna[a0_, b0_, n0_] :=
Module[{a = a0, b = N[b0], n = N[n0]},
If[n > 100000,
Print[Style[" Predolg čas računanja, vpiši manjše št. točk", 14,
FontFamily -> "Helvetica"]],
If[b > 1000, h = Abs[1000 - a]/(n + 1), h = Abs[b - a]/(n + 1)];
i = 0;
I0 = 0;
While[i < n + 1,
I0 = I0 + (h/2)*(f[a] + f[a + h]);
a = a + h;
i++];
Print[Style[" Vrednost integrala v mejah od ", 14,
FontFamily -> "Helvetica"],
Style[a0, 14, FontFamily -> "Helvetica"],
Style[" do ", 14, FontFamily -> "Helvetica"],
Style[b0, 14, FontFamily -> "Helvetica"],
Style[" je ", 14, FontFamily -> "Helvetica"],
Style[NumberForm[I1, 10], 14, FontFamily -> "Helvetica"]]]]
trapezna[0, Infinity, 100000]
Vrednost integrala v mejah od 0 do ∞ je 2.
Re: Mathematica
Hm... to je glavna razlika med resevanjem diferencialnih enacb in med integracijo po znanem intervalu. V bistvu lahko tabeliras t(q) po korakih trapezne metode in obrnes tabelo (zamenjas spremenljivki) ampak to ni namen te metode - trapezna/simpsonova je ponavadi za direktno integracijo dolocenih integralov. Lahko bi naredil zelo grdo in pocasno stvar in klical FindRoot (ali rocno napisal bisekcijo), ki bi vzela tvoj integral kot funkcijo, ampak to je se manj primerno
Re: Mathematica
V bistvu sem jaz slabo razumel nalogo. Vstavljaš naboj, računaš pa čas, kar pomeni, da se mi ne bi bilo treba ubadat s tem 3 dni
Sicer sem bil v dvomih ali prav razumem ali ne, ampak naloga z iskanjem časa se mi je zdela prelahka in zato sem preskočil na težjo verzijo. Nič hudega
Hvala za odgovor.
Sicer sem bil v dvomih ali prav razumem ali ne, ampak naloga z iskanjem časa se mi je zdela prelahka in zato sem preskočil na težjo verzijo. Nič hudega
Hvala za odgovor.
Re: Mathematica
Prosil bi za malo pomoči glede Mathematice. Imamo txt datoteko kjer je text in številčni podatki.
Datoteko importam v Mathematico. Zanima me, kakšen ukaz uporabiti, da mi iz omenjene datoteke prebere samo števila? Poizkušal sem že z ReadList[...,Number] in ne gre.
Hvala
Datoteko importam v Mathematico. Zanima me, kakšen ukaz uporabiti, da mi iz omenjene datoteke prebere samo števila? Poizkušal sem že z ReadList[...,Number] in ne gre.
Hvala
Re: Mathematica
Huh... to je malo zoprna zahteva za direktno Mathematico. Ce si na linuxu, potem je resitev stvar ene vrstice. Sicer pa ne vem...
Re: Mathematica
Ja, verjeno bolj primeren mogoče Matlab. Problem je, da imam veliko podatkov in gre zelo veliko časa, če jih urejam ročno, se pravi da brišem text, kopiram stolpce in podobobno. Hvala vseeno, bom poizkušal nekako rešiti
Re: Mathematica
Saj pravim - z osnovnimi orodji bi ta proces odstranjevanja teksta popolnoma avtomatiziral. Ti matematicni programi niso specializirani za obdelavo teksta in uvazanja vsakega zelo specialnega formata podatkov. Niso predvideni za to. Ce hoces premlevat besedilo (pa tudi ce samo odstranis vse kar niso stevilke), to naredis z drugimi orodji.
Re: Mathematica
Pozdravljeni,
Imam nekaj problemov pri naslednji nalogi:
Analizirajte problem skupkov NaCl. Potencialno energijo para ionov i,j lahko zapišemo kot:
\(W_{ep}(r_{i,j}) =
\begin{cases}
-\frac{e^2}{r_{i,j}}+\alpha \exp[-\frac{r_{i,j}}{\rho}]+b(\frac{c}{r_{i,j}})^{12} \\
\frac{e^2}{r_{i,j}}+b(\frac{c}{r_{i,j}})^{12}
\end{cases}\)
Prva je za Na+ Cl- par, druga za Na+ Na+ ali Cl- Cl- pare.
\(e, \alpha, b, c, \rho\) imam podane.
Z Downhill simplex metodo določite ravnovesno strukturo Na2Cl+ (sedaj torej obravnavate tri ione,
dva iona Na+ in en ion Cl-). Pri tem se omejite samo na planarne strukture – optimizirajte položaj Na+
in Cl- ionov samo v ravnini! Zaradi enostavnosti postavite Cl- ion v koordinatno izhodišče, enega od
Na+ ionov pa v točko (2.1 Å, 0). Tako morate poiskati samo koordinati (x, y) za preostali Na+ ion.
Downhill simplex metodo mi je uspelo naredit in za neko funkcijo z dvemi spremenljivkami dobim želeni minimum. Vhodni podatki so [funkcija, {x1,y1}, {x2,y2}, {x3,y3}]. Zanima me, kaj bi vzel kot funkcijo (seštejem funkciji, ...?) v tej nalogi da dobim ravnovesno strukturo in posledično koordinati Na+? Izrazim razdaljo z (x,y)?
Hvala za odgovor.
Imam nekaj problemov pri naslednji nalogi:
Analizirajte problem skupkov NaCl. Potencialno energijo para ionov i,j lahko zapišemo kot:
\(W_{ep}(r_{i,j}) =
\begin{cases}
-\frac{e^2}{r_{i,j}}+\alpha \exp[-\frac{r_{i,j}}{\rho}]+b(\frac{c}{r_{i,j}})^{12} \\
\frac{e^2}{r_{i,j}}+b(\frac{c}{r_{i,j}})^{12}
\end{cases}\)
Prva je za Na+ Cl- par, druga za Na+ Na+ ali Cl- Cl- pare.
\(e, \alpha, b, c, \rho\) imam podane.
Z Downhill simplex metodo določite ravnovesno strukturo Na2Cl+ (sedaj torej obravnavate tri ione,
dva iona Na+ in en ion Cl-). Pri tem se omejite samo na planarne strukture – optimizirajte položaj Na+
in Cl- ionov samo v ravnini! Zaradi enostavnosti postavite Cl- ion v koordinatno izhodišče, enega od
Na+ ionov pa v točko (2.1 Å, 0). Tako morate poiskati samo koordinati (x, y) za preostali Na+ ion.
Downhill simplex metodo mi je uspelo naredit in za neko funkcijo z dvemi spremenljivkami dobim želeni minimum. Vhodni podatki so [funkcija, {x1,y1}, {x2,y2}, {x3,y3}]. Zanima me, kaj bi vzel kot funkcijo (seštejem funkciji, ...?) v tej nalogi da dobim ravnovesno strukturo in posledično koordinati Na+? Izrazim razdaljo z (x,y)?
Hvala za odgovor.
Re: Mathematica
Potencialna energija sistema je seveda vsota potecialnih energij vseh parov. Drugi natrij ima torej dva prispevka k energiji (interakcija s klorom in interakcija z drugim natrijem). r_{i,j} so parske razdalje. Para staticni natrij-staticni klor ti seveda ni treba upostevat, ker si natrij "pribil" na fiksen polozaj in bo ta clen konstanten Ce bi pa variiral polozaja obeh natrijev, bi rabil pa vse tri clene.
Re: Mathematica
Aha super, mislim, da mi je uspelo. Se pravi seštejem prvo enačbo kjer je r=sqrt[x^2+y^2] (ker je Cl v (0,0)) in drugo kjer je r=sqrt[(2.1-x)^2+y^2]. To je potem moja funkcija ali moram še enkrat prištet prvo enačbo zarada klora?
Hvala.
Hvala.
Re: Mathematica
Ce bos minimiziral po obeh pozicijah, potem imas tri clene:
Na_1 <-> Cl (prva formula)
Na_2 <-> Cl (prva formula)
Na_1 <-> Na_2 (druga formula)
in 4 neznanke (x1,y1,x2,y2)
Ce minimiziras samo polozaj prvega natrija, pa drugega clena ne rabis, minimiziras pa po (x1,x2). To je to.
Na_1 <-> Cl (prva formula)
Na_2 <-> Cl (prva formula)
Na_1 <-> Na_2 (druga formula)
in 4 neznanke (x1,y1,x2,y2)
Ce minimiziras samo polozaj prvega natrija, pa drugega clena ne rabis, minimiziras pa po (x1,x2). To je to.
Re: Mathematica
Pozdravljeni,
Zopet en problem. Imamo to nalogo:
Izriši silnice električnega polja med dvema polravninama, ki se stikata v točki x = 0, kot to kaže
spodnja skica. Polravnini oklepata kot 60 stopinj, ena od polravnin je ozemljena, druga pa se nahaja pri
potencialu U0= 5 V.
Na faksu smo pokazali, da je \(f (z) = u(x,y) +i v(x,y)\) pri čemer je \(u(x,y) =\Phi (x,y)\) in \(v(x,y) = \Psi (x,y)\).
\(\Phi\) je naš potencial, \(\Psi\) pa konjugirani potencial (električno polje). Če damo, da je \(z=x+iy=re^{i \varphi}\) potem dobimo \(f (z)=\Phi (z) + i \Psi (z)= (a+id)-ib \ln (z)\).
Realni del je potemtakem \(\Phi (z) = a+b\varphi\), imaginaren pa \(\Psi (z) = d-b\ln (r)\). Ok tukaj mi je jasno da dobimo a in b iz zač. pogojev, kaj pa glede d-ja?
Večji problem je seveda kako to v matematiki izrisat?
Poskušal sem z naslednjimi postopki (a=0, b=15/Pi, d sem tudi nastavil na 0) pa mi ne uspe:
Kot sem razumel profesorja, bi moral prvo narisat v kompleksni ravnini, kar bi potem prišlo neka pravokotna mreža in potem to mrežo nazaj pretvorit v kartezične koordinate. Vendar mi ne uspe, rad bi seveda tudi da se to prikaže v obliki vektorkega polja, ne pa mreže.
Hvala za odg. in lep pozdrav.
Zopet en problem. Imamo to nalogo:
Izriši silnice električnega polja med dvema polravninama, ki se stikata v točki x = 0, kot to kaže
spodnja skica. Polravnini oklepata kot 60 stopinj, ena od polravnin je ozemljena, druga pa se nahaja pri
potencialu U0= 5 V.
Na faksu smo pokazali, da je \(f (z) = u(x,y) +i v(x,y)\) pri čemer je \(u(x,y) =\Phi (x,y)\) in \(v(x,y) = \Psi (x,y)\).
\(\Phi\) je naš potencial, \(\Psi\) pa konjugirani potencial (električno polje). Če damo, da je \(z=x+iy=re^{i \varphi}\) potem dobimo \(f (z)=\Phi (z) + i \Psi (z)= (a+id)-ib \ln (z)\).
Realni del je potemtakem \(\Phi (z) = a+b\varphi\), imaginaren pa \(\Psi (z) = d-b\ln (r)\). Ok tukaj mi je jasno da dobimo a in b iz zač. pogojev, kaj pa glede d-ja?
Večji problem je seveda kako to v matematiki izrisat?
Poskušal sem z naslednjimi postopki (a=0, b=15/Pi, d sem tudi nastavil na 0) pa mi ne uspe:
Koda: Izberi vse
f[z_] := I (-15/Pi)*Log[z];
ParametricPlot[{Re[f[x + I*y]], Im[f[x + I*y]]}, {x, 0, Pi/3}, {y, 0,
1}, ImageSize -> 300]
Koda: Izberi vse
f[r_, p_] := (15/Pi)*p - I (15/Pi)*Log[r];
PolyaFieldPlot[f_, {x_, xmin_, xmax_}, {y_, ymin_, ymax_},
opts : OptionsPattern[]] :=
VectorPlot[
Evaluate@{Re[f],- Im[f]}, {x, xmin, xmax}, {y, ymin, ymax},
VectorScale -> {0.05, Automatic, Log[#5 + 1] &}, opts];
PolyaFieldPlot[f[x, y], {x, 0, Pi/3}, {y, 0, 1}]
Hvala za odg. in lep pozdrav.
Re: Mathematica
Premik potenciala fizikalno nima vsebine. Sicer pa lahko za izris mreze uporabis ParametricPlot inverzne funkcije (v stilu konformne preslikave: f(z) obrnes v z(f), kar ti bo za vsak f=Fi+i*Psi dalo tocko v realnem prostoru. Potem samo
ParametricPlot[{Re[z[x+iy]],Im[z[x+iy]]},{x,...},{y,...}]
to je na pamet zdajle, lahko da je kaj narobe.
ParametricPlot[{Re[z[x+iy]],Im[z[x+iy]]},{x,...},{y,...}]
to je na pamet zdajle, lahko da je kaj narobe.
Re: Mathematica
S ParametricPlot mi ne uspe. Eno varianto sem naredil s ContourPlot kjer sem posebej naredil za realno (premice) in imaginarno (krogi) komponento.
Dobil sem nekaj takega: Naslednjo varianto sem poskusil vzet samo realen del ga plotat s ContourPlot ter naredit gradient in plotat s StreamPlot.
To je to: Problem pri prvi je, da nevem kako bi izrisal puščice, pri drugi pa zgleda kot, da je električno polje enakomerno, kar pač ni.
Kako bi dobil pa kaj takega (pustimo ob strani kompleksnost)?:
Dobil sem nekaj takega: Naslednjo varianto sem poskusil vzet samo realen del ga plotat s ContourPlot ter naredit gradient in plotat s StreamPlot.
To je to: Problem pri prvi je, da nevem kako bi izrisal puščice, pri drugi pa zgleda kot, da je električno polje enakomerno, kar pač ni.
Kako bi dobil pa kaj takega (pustimo ob strani kompleksnost)?: