Mathematica

O matematiki, številih, množicah in računih...
Odgovori
Rokerda
Prispevkov: 799
Pridružen: 11.11.2006 16:18

Re: Mathematica

Odgovor Napisal/-a Rokerda »

Če vrže ven rezultat, ki to ni (je samo še enkrat napisana koda), potem verjetno ne zna izračunati (v tem primeru) limite?

Kako pa pri konkretnem primeru narišeš rešitev x ali y v odvisnosti od kake konstante, npr. c?
Napisal sem

Koda: Izberi vse

res =x/. First[Solve[c/(x)^2 - c/(x - y)^2 == a && c/(y)^2 + c/(x - y)^2 == a, {x, y}]]
Plot[res, {a, 0, 2}]
in vse kar dobim ven je prazen graf. Kaj delam narobe?

Še to, ali se Mathematica kdaj posluži pri Solve ukazu numeričnih metod kar sama od sebe? Verjetno ne, vendar raje vprašam, da sem ziher. Ali so potem (če obstajajo) rešitve vedno točne?

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

Re: Mathematica

Odgovor Napisal/-a Aniviller »

Rokerda napisal/-a:Če vrže ven rezultat, ki to ni (je samo še enkrat napisana koda), potem verjetno ne zna izračunati (v tem primeru) limite?
Ja. Mathematica vsemu "resevanju" pravi poenostavljanje. Gre za zamenjave ukazov z "enostavnejsimi" in ce ne najde zamenjave pac ostane isto.
Rokerda napisal/-a: Kako pa pri konkretnem primeru narišeš rešitev x ali y v odvisnosti od kake konstante, npr. c?
Napisal sem

Koda: Izberi vse

res =x/. First[Solve[c/(x)^2 - c/(x - y)^2 == a && c/(y)^2 + c/(x - y)^2 == a, {x, y}]]
Plot[res, {a, 0, 2}]
in vse kar dobim ven je prazen graf. Kaj delam narobe?
Ja tukaj plotas v odvisnosti od a. Ce hoces se po c, lahko bodisi fiksiras na enega izbranega ali plotas se po njemu. Recimo
Plot[res/.{c->10}, {a, 0, 2}]
Plot3D[[res, {a, 0, 2},{c,0,2}]
Ce se vedno ne dela je vcasih kaksna finta, da moras okrog funkcije ki jo plotu podas dat se Evaluate[...].
Rokerda napisal/-a: Še to, ali se Mathematica kdaj posluži pri Solve ukazu numeričnih metod kar sama od sebe? Verjetno ne, vendar raje vprašam, da sem ziher. Ali so potem (če obstajajo) rešitve vedno točne?
Ne. Saj se niti ne more, ker lahko isces funkcijo (v tvojem primeru je notri se c) in ce niso vse konstante in spremenljivke znane nimas numericno kaj delat. Tudi ce samo isces resitve enostavne enacbe, razen pri linearnih res ni jasno koliko jih je in kako jih najti, ce nimas analiticne teorije.

Rokerda
Prispevkov: 799
Pridružen: 11.11.2006 16:18

Re: Mathematica

Odgovor Napisal/-a Rokerda »

Še zmeraj prazen graf. Poskusil sem tudi z Evaluate[...] pa tudi nič. Prazen graf.
Kako to, da Mathematica ne vrže ven napake zakaj ne nariše grafa?

Še kakšen drug predlog?
Hvala

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

Re: Mathematica

Odgovor Napisal/-a Aniviller »

Izpisi si tisto kar hoces plotat. Ima kaksne nedolocene konstante? Si poskusil vstavljat stevilke noter?

Rokerda
Prispevkov: 799
Pridružen: 11.11.2006 16:18

Re: Mathematica

Odgovor Napisal/-a Rokerda »

Sem naredil. Ampak ne z Mathematico :)

Imam pa novo vprašanje.
Kako lahko rešiš sistem diferencialnih enačb. Kaj ne štima?

Koda: Izberi vse

NDSolve[{x1''[t] == -10 + 1/x1[t]^2 - 1/(x1[t] - x2[t])^2 && x2''[t] == -10 + 1/x2[t]^2 + 1/(x1[t] - x2[t])^2, {x1[0] == 1, x2[0] = 2.5}}, {x1[t], x2[t]}, {t, 0, 10}]
Ok, začetne pogoje bom še poštimal. Ampak mi vseeno ne zagrabi.

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

Re: Mathematica

Odgovor Napisal/-a Aniviller »

Imas dovolj zacetnih pogojev? Jaz vidim enacbe drugega reda, se pravi rabis zacetne odvode. NDSolve gre numericno kar pomeni da rabis dovolj pogojev, da ni nobenih nedolocenih konstant notri. Ker teh numerika ne more obdelat ker so simbolicne.

Rokerda
Prispevkov: 799
Pridružen: 11.11.2006 16:18

Re: Mathematica

Odgovor Napisal/-a Rokerda »

Ne, sej to sem dal

Koda: Izberi vse

NDSolve[{x1''[t] == -10 + 1/x1[t]^2 - 1/(x1[t] - x2[t])^2 && x2''[t] == -10 + 1/x2[t]^2 + 1/(x1[t] - x2[t])^2}, {x1[0] == 1, x2[0] = 2.5, x1'[0] == 0, x2'[0] == 0}, {x1[t], x2[t]}, {t, 0, 10}]
Napiše mi:
NDSolve::dsfun: "x1[0]==1 cannot be used as a function"

Kaj sem narobe naredil?
Pa še to, x1 je obarvan modro, x2 pa ni.

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

Re: Mathematica

Odgovor Napisal/-a Aniviller »

Ce si imel prej definiranega, ga moras clear-at, drugace bodo tezave. Ravno zato ti da rezultat vedno kot rule, ne kot priredbo ker ce imas x1[t] in x2[t] definiran potem ko se enkrat pozenes ne bo vec delalo.
Poskusi
x2=.
x1=.

Rokerda
Prispevkov: 799
Pridružen: 11.11.2006 16:18

Re: Mathematica

Odgovor Napisal/-a Rokerda »

Sem clear-al s pomočjo ukaza Clear[x1,x2]. Sedaj postane tudi x2 moder. Ampak ko zaženem NDSolve izpiše isto napako kot prej, x2 pa postane (spet) črn.
Ostane napaka

Koda: Izberi vse

"x1[0]==1 cannot be used as a function."
Mathematica Help mi ni v pomoč. Ali je oblika zapisa - položaj pogojev in "{ }"- vredu?

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

Re: Mathematica

Odgovor Napisal/-a Aniviller »

Aja seveda, oklepaji so narobe. Prvi argument je spisek vseh enacb, vkljucno z zacetnimi pogoji. In x2[0] = 2.5 je priredba (en enacaj manjka), zaradi cesar ti spremeni barvo - ravnokar si ga namrec definiral.

Rokerda
Prispevkov: 799
Pridružen: 11.11.2006 16:18

Re: Mathematica

Odgovor Napisal/-a Rokerda »

Hvala

Rorschach
Prispevkov: 95
Pridružen: 2.6.2009 20:00

Re: Mathematica

Odgovor Napisal/-a Rorschach »

Reševal sem sistem treh enačb, pa sem naletel na nekaj težav.

Vhodni podatki:

Koda: Izberi vse

Clear["Global`*"]
e = N[Solve[{xx == 2/9 xy, yy == 9/2 xy + 85/2, 
     11 == 1/2 (xx + yy) + Sqrt[1/4 (xx - yy)^2 + xy^2]}, {xx, yy, 
     xy}]];
{a, b, c} = First[e]
xx = xx /. a;
yy = yy /. b;
xy = xy /. c;
1/2 (xx + yy) + Sqrt[1/4 (xx - yy)^2 + xy^2]

Clear["Global`*"]
e = N[Solve[{xx == 2/9 xy, yy == 9/2 xy + 85/2, 
     11^2 == 1/4 (xx + yy)^2 + 1/4 (xx - yy)^2 + xy^2}, {xx, yy, xy}]];
{a, b, c} = First[e]
xx = xx /. a;
yy = yy /. b;
xy = xy /. c;
1/2 (xx + yy) + Sqrt[1/4 (xx - yy)^2 + xy^2]
{a, b, c} = Last[e]
xx = xx /. a;
yy = yy /. b;
xy = xy /. c;
1/2 (xx + yy) + Sqrt[1/4 (xx - yy)^2 + xy^2]
Izhodni podatki:

Koda: Izberi vse

{xy -> -8.15294, xx -> -1.81176, yy -> 5.81176}

Sqrt[xy^2 + 1/4 (xx - yy)^2] + (xx + yy)/2

{xx -> -2.31613, yy -> -4.40167, xy -> -10.4226}

7.11573

{-2.31613 -> -1.49563, -4.40167 -> 12.2134, -10.4226 -> -6.73035}

14.9653
Torej poskušal sem rešiti sistem enačb na dva načina. Najprej tako, da sem za tretjo enačbo sistema vstavil "originalno" enačbo \(11 = 1/2 (xx + yy) + Sqrt[1/4 (xx - yy)^2 + xy^2]}\), drugič pa tako da sem to enačbo kvadriral.
V prvem primeru dobim pravilno rešitev.
Mislil sem da bom v drugem primeru dobil 2 množici rešitev (xx, yy, xy) od katerih bo ena prava. Pravilna bi bila tista, ki bi, vsavljena v \(1/2 (xx + yy) + Sqrt[1/4 (xx - yy)^2 + xy^2]}\), dala rešitev 11. Pravilne rešitve očitno nisem dobil. Zanima me, kaj sem spregledal.

Rorschach
Prispevkov: 95
Pridružen: 2.6.2009 20:00

Re: Mathematica

Odgovor Napisal/-a Rorschach »

Uff... Čisto narobe sem naredu. Ignorirajte prejšnji post.

Popotnik
Prispevkov: 532
Pridružen: 12.11.2008 18:35

Re: Mathematica

Odgovor Napisal/-a Popotnik »

Ali kdo ve, kako uporabiti funkcijo Re z notri danimi spremenljivkami in tej funkciji povedati, da imajo spremenljivke lahko zgolj realno vrednost (in ne še imaginarne)?

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

Re: Mathematica

Odgovor Napisal/-a Aniviller »

Ponavadi se da z Assumptions->{blablabla}.

Odgovori