Annettu differentiaaliyhtälö on lineaarinen ja homogeeninen. Talletetaan se:
Input := dyht= (1 - 2 x)y''[x] + 2 y'[x] + (2 x - 3)y[x] == 0
Output = (-3 + 2 x) y[x] + 2 y'[x] + (1 - 2 x) y''[x] == 0
Yritetään ratkaista:
Input := ylrtk1= DSolve[dyht,y[x],x]
Output = DSolve[(-3 + 2 x) y[x] + 2 y'[x] + (1 - 2 x) y''[x] == 0, y[x], x]
Koska ei onnistu, ladataan differentiaaliyhtälöiden lisäpaketti:
Input := Needs["Calculus`DSolve`"]
Ja uusi yritys, jolloin ratkaisu onnistuu, mutta tulos näyttää aika
monimutkaiselta:
Input := ylrtk2= DSolve[dyht,y[x],x]
Output = 1/2 - x E x Sqrt[-1 + 2 x] C[1] {{y[x] -> -(------------------------------) + Sqrt[2] Sqrt[1 - 2 x] -(1/2) - x 2 x E Sqrt[1 - 2 x] (E - 2 E x) C[2] ---------------------------------------------}} Sqrt[2] Sqrt[-1 + 2 x]
Yritetään ratkaista perinteisillä käsinlaskumenetelmillä.
Eksponenttifunktio näyttää olevan ratkaisu:
Input := dyht/.y->Exp//Simplify
Output = True
Toinen lineaarisesti riippumaton ratkaisu saadaan sopivalla yritteellä:
Input := yrite= u[x] Exp[x]
Output = x E u[x]
Sijoitus yhtälöön ja apufunktion ratkaisu:
Input := dyht1= dyht/.y->Function[x,Evaluate[yrite]]//Simplify
Output = x E (4 u'[x] - 4 x u'[x] + u''[x] - 2 x u''[x]) == 0
Input := apurtk= DSolve[dyht1,u[x],x]
Output = x C[1] {{u[x] -> ------ + C[2]}} 2 x E
Input := sij= First[apurtk]/.{C[1]->1,C[2]->0}
Output = x {u[x] -> ----} 2 x E
Yleinen ratkaisu:
Input := ylrtk2= C[1] Exp[x] + C[2] Exp[x] u[x]/.sij
Output = x x C[2] E C[1] + ------ x E
Pohdittavaksi jääköön, onko tämä sama kuin edellä suoraan DSolve-funktiolla saatu.
Hävitetään luodut muuttujat:
Input := Remove["Global`*"]
Asiat löytyvät helpoimmin luennoista tai kirjoista.
Funtkion määrittely ja muuttujalista:
Input := f[x_,y_,z_]:= Exp[x y + y z + z x]
Input := muuttujat= {x,y,z}
Output = {x, y, z}
Ensimmäisen ja toisen kertaluvun osittaisderivaatat:
Input := grad= Table[D[f[x,y,z],muuttujat[[k]]],{k,1,3}]
Output = x y + x z + y z x y + x z + y z {E (y + z), E (x + z), x y + x z + y z E (x + y)}
Input := hesse= Table[D[f[x,y,z],muuttujat[[k]], muuttujat[[j]]],{k,1,3},{j,1,3}]
Output = x y + x z + y z 2 {{E (y + z) , x y + x z + y z x y + x z + y z E + E (x + z) (y + z), x y + x z + y z x y + x z + y z E + E (x + y) (y + z)}, x y + x z + y z x y + x z + y z {E + E (x + z) (y + z), x y + x z + y z 2 E (x + z) , x y + x z + y z x y + x z + y z E + E (x + y) (x + z)}, x y + x z + y z x y + x z + y z {E + E (x + y) (y + z), x y + x z + y z x y + x z + y z E + E (x + y) (x + z), x y + x z + y z 2 E (x + y) }}
Näiden arvot origossa:
Input := grad0= grad/.{x->0,y->0,z->0}
Output = {0, 0, 0}
Input := hesse0= hesse/.{x->0,y->0,z->0}
Output = {{0, 1, 1}, {1, 0, 1}, {1, 1, 0}}
Taylorin polynomi:
Input := taylor= f[0,0,0] + grad0.muuttujat + (1/2) muuttujat.hesse0.muuttujat//Expand
Output = 1 + x y + x z + y z
Origossa muodostettu Hessen matriisi matriisimuodossa:
Input := hesse0//MatrixForm
Output = 0 1 1 1 0 1 1 1 0
Input := Remove["Global`*"]
Ladataan aluksi lisäpaketti, joka mm. sisältää pallokoordinaatteja koskevia apufunktioita:
Input := Needs["Calculus`VectorAnalysis`"]
Input := dv= JacobianDeterminant[Spherical]
Output = 2 r Sin[theta]
Tilavuus voidaan laskea yhdellä integrointikäskyllä:
Input := vol= Integrate[dv,{theta,0,Pi},{phi,0,2 Pi}, {r,0,Sin[theta] Sin[phi/2]}]
Output = Pi -- 3
Input := Remove["Global`*"]
Stokesin lause löytyy luennoista ja kirjoista.
Vektorikentän määrittely:
Input := u[x_,y_,z_]:= {z,x,y}
Ja sen roottori (Curl ladatusta vektorianalyysipaketista):
Input := rot= Curl[u[x,y,z]]
Output = {1, 1, 1}
Pinnan määrittely ja pintaintegraalin laskemisessa tarvittava normaalivektori:
Input := pinta= {x,y,x y}
Output = {x, y, x y}
Input := p= CrossProduct[D[pinta,x],D[pinta,y]]
Output = {-y, -x, 1}
Käyräintegraalin laskeminen Stokesin lauseen mukaisesti pintaintegraalina:
Input := int= Integrate[rot.p,{x,-1,1},{y,-1,1}]
Output = 4
Input := Remove["Global`*"]
Ladataan jälleen lisäpaketti:
Input := Needs["Algebra`SymbolicSum`"]
Ensimmäinen summa saadaan helposti:
Input := sum1= Sum[Exp[-k x],{k,0,Infinity}]
Vastaus ei kyllä anna mitään viitteitä siitä, millä arvoilla x sarja suppenee.
Kyseessä on kuitenkin geometrinen sarja ja se suppenee, jos x > 0.
Output = x E ------- x -1 + E
Toinen sarja vastaavasti, mutta nyt Mathematica väittääkin sen hajaantuvan.
Näin onkin arvoilla x<=0, mutta arvoilla x > 0 sarja suppenee. Tasaiseen suppenevuuteen perustuvat tarkastelut osoittavat, että se saadaan derivoimalla edellinen sarja ja muuttamalla merkki:
Input := sum2= Sum[k Exp[-k x],{k,0,Infinity}]
Output = ComplexInfinity
Input := sum2= -D[sum1,x]//Together
Output = x E ---------- x 2 (-1 + E )
Mitä kaikkiaan voisi sanoa?
Tehtäviä voi ratkaista Mathematicallakin, vaikka se ei käytännössä tenttitilaisuudessa olekaan mahdollista. Ratkaiseminen kuitenkin edellyttää kohtalaisen paljon tietämystä. DWIM (Do What I Mean) -tietokonetta ei ole ja tuskin tuleekaan.