Građevinski fakultet Sveučilišta u Zagrebu
Osnove inženjerske informatike II (Mathematica)
6. predavanje

Integrali i diferencijalne jednadžbe

Integrali

Mathematica  računa gotovo svaki integral čiji se rezultat prikazuje pomoću elementarnih matematičkih funkcija.
Treba, međutim, imati na umu da postoji puno slučajeva da integral funkcije, koja sadrži samo jednostavne funkcije, može biti vrlo kompliciran ili se uopće ne može izraziti pomoću elementarnih funkcija.
Integrali se računaju pomoću Mathematica funkcija  Integrate  i   NIntegrate.
Ako je f funkcija jedne varijable (npr. x) sintaksa je sljedeća:
Integrate[ f, x]  računa neodređeni integral ∫f(x)dx.
Integrate[ f,{x,(Subscript[x, min]),(Subscript[x, max])}]  računa određeni integral (∫_(Subscript[x, min])^(Subscript[x, max]))f(x)dx.
NIntegrate[ f,{x,(Subscript[x, min]),(Subscript[x, max])}]  daje numeričku aproksimaciju od  (∫_(Subscript[x, min])^(Subscript[x, max]))f(x)dx.
Pri tome (Subscript[x, min]) i  (Subscript[x, max]) mogu poprimiti vrijednosti  – ∞ i +∞, tj. Mathematica računa i neprave integrale.

Napomena:

Kod računanja neodređenog integrala Mathematica  rezultatu integracije NE DODAJE uobičajenu konstantu C.

Primjeri 1

∫(x^n)dx

Integrate[x^n,x]

∫(a^x)dx

Integrate[a^x,x]

∫((1+sinx)/(sinx(cosx+1)))dx

Integrate[(1+Sin[x])/(Sin[x](Cos[x]+1)),x]//Simplify

(∫_0^a)(Sqrt[(a^2)-(x^2)])dx

Integrate[Sqrt[a^2-x^2],{x,0,a}]

(∫_0^1)x (e^x)dx

Integrate[x*E^x,{x,0,1}]

(∫_(-∞)^3)x (e^x)dx

Integrate[x*E^x,{x,-Infinity,3}]

Limit[Integrate[x*E^x,{x,a,3}],a->-Infinity]

(∫_0^∞)x (e^x)dx

Integrate[x*E^x,{x,0,Infinity}]

Limit[Integrate[x*E^x,{x,0,a}],a->Infinity]

(∫_(-∞)^(+∞))(1/(1+(x^2)))dx

Integrate[1/(1+x^2),{x,-Infinity,Infinity}]

Plot[1/(1+x^2),{x,-10,10},PlotRange->{{-10,10},{0,1}},Filling->Axis]

Primjeri 2

∫(e^(-(x^2)))dx

Integrate[E^(-x^2),x]

Ovaj integral uključuje funkciju Erf (Error function), koja nije elementarna.

(∫_1^2)(e^(-(x^2)))dx

Integrate[E^(-x^2),{x,1,2}]

NIntegrate[E^(-x^2),{x,0,2}]

∫(x^x)dx

Integrate[x^x,x]

Ovaj se integral ne može opisati pomoću matematičkih funkcija koje koristi Mathematica.

(∫_0^1)(x^x)dx

Integrate[x^x,{x,0,1}]

NIntegrate[x^x,{x,0,1}]

ZADATAK 1

Podsjetite se:

Ako je neprekidna krivulja, u pravokutnim koordinatama, zadana jednadžbom
	y = f(x)  i ako je  na segmentu [a,b]   f(x)≥0    (ili f(x)≤0) ,
tada je površina krivocrtnog trapeza omeđenog tom krivuljom, dvjema vertikalama u točkama x=a  i x=b te odsječkom na osi apscisa a≤x≤b jednaka 
	(∫_a^b)f(x)dx      (–(∫_a^b)f(x)dx).

Izračunajte površinu dijela ravnine  omeđenog krivuljama  sinx  i  2sinx nad segmentom [0,2π].

Plot[{2 Sin[x],Sin[x]},{x,0,2 π},Filling->{1->{2}}]

P1=Integrate[2Sin[x],{x,0,Pi}]-Integrate[2Sin[x],{x,Pi,2Pi}]

P2=Integrate[Sin[x],{x,0,Pi}]-Integrate[Sin[x],{x,Pi,2Pi}]

P1-P2

ZADATAK 2

Podsjetite se:

Volumeni rotacijskih tijela nastalih rotacijom krivocrtnog trapeza omeđenog  krivuljom y = f(x), osi x  i dvjema vertikalama x=a  i  x=b,  oko osi x ili y određeni su formulama:
		(Subscript[V, x]) = π (∫_a^b)(((f(x)))^2)dx   i     (Subscript[V, y]) = 2π (∫_a^b) x·f(x)dx.

Izračunajte volumen rotacijskog tijela koje nastaje rotacijom  zatvorenog dijela ravnine omeđenog koordinatnim osima i grafom funkcije
 f(x)= –(x^3)+3(x^2)–3x+2, ako je os rotacije:
	 1. os y,
	2. os x.

a) Nacrtajmo graf funkcije f(x) nad intervalom [-3,3] i odredimo dio ravnine čijom rotacijom nastaju tijela.

f[x_]:=-x^3+3x^2-3x+2

Plot[f[x],{x,-3,3}]

gr1=Plot[f[x],{x,0,2},PlotRange->{{-1,3},{-1,3}},Filling->Axis,AxesLabel->{x,y}]

b) Pomoću funkcije RevolutionPlot3D prikažimo tijela  koja nastaju rotacijom:

1. oko osi y

gr2=RevolutionPlot3D[f[t], {t, 0, 2}]

2. oko osi x

gr3=RevolutionPlot3D[{f[t],t}, {t, 0, 2},ViewVertical->{-1,0,0}]

{gr1,gr2,gr3}

c) Izračunajmo točne i približne vrijednost volumena rotacijskih tijela.

1. os y

2Pi*Integrate[x*f[x],{x,0,2}]

N[%]

2. os x

Pi*Integrate[f[x]^2,{x,0,2}]

N[%]

Diferencijalne jednadžbe

Za razliku od algebarskih jednadžbi, koje su jednadžbe za varijable, diferencijalne jednadžbe su jednadžbe za funkcije. Stoga prilikom zadavanja diferencijalne jednadžbe u programu Mathematica uvijek moramo eksplicitno označavati funkciju (npr. y[x]) i specificirati varijablu (npr. x)  o kojoj ta funkcija ovisi.

DSolve[dif.jednadžba, y[x], x]
Daje rješenja dif.jednadžbe za funkciju y[x], uzimajući x kao nezavisnu varijablu.

DSolve[{dif.jednadžba, početni uvjeti}, y[x], x]
Daje rješenja dif.jednadžbe  uz  početne uvjete  za funkciju y[x], uzimajući x kao nezavisnu varijablu.

DSolve[dif.jednadžba, y, x]
Daje rješenja dif.jednadžbe za  y u obliku čiste funkcije.

Primjeri 1

Riješite diferencijalnu jednadžbu 1. reda
y'+y tgx=0

DSolve[y'[x]+y[x]*Tan[x]==0,y[x],x]

Odredite rješenje za početni uvjet   y(0)=1.

DSolve[{y'[x]+y[x]*Tan[x]==0,y[0]==1},y[x],x]

Riješite diferencijalnu jednadžbu 2. reda
4y''+4y'+y=0

DSolve[4y''[x]+4y'[x]+y[x]==0,y[x],x]

Odredite rješenje za početne uvjet e  y(0)=2, y'(0)=0.

DSolve[{4y''[x]+4y'[x]+y[x]==0,y[0]==2,y'[0]==0},y[x],x]

Riješite diferencijalnu jednadžbu 
xydy+(Sqrt[(y^2)+1])dx=0

Dijeljenjem jednadžbe s dx, svodimo ju na oblik:
xyy'+(Sqrt[(y^2)+1])=0

DSolve[x*y[x]*y'[x]+Sqrt[y[x]^2+1]==0,y[x],x]

Primjer 2

Isto kao i kod algebarskih jednadžbi, Mathematica ispisuje rješenje u obliku pravila za supstituciju. Npr. za jednadžbu  y' = 1 - (( y)/( x))  to izgleda ovako:

rj=DSolve[y'[x]==1-y[x]/x,y[x],x]

Dakle, s operatorom zamjene /. možemo  Mathematici dati naredbu da u bilo kojem izrazu zamijeni y[x] s gornjom vrijednosti.

y[x]+y[x]^2-1/x/.rj

Međutim, to pravilo ne definira zamjenu objekata kao što su npr. y'[x], y''[x].

y''[x]+y[x]/.rj

U tim slučajevima, kada želimo manipulirati s rješenjima dobivenim funkcijom DSolve, koristimo ispis rješenja u obliku čiste funkcije tj. nakon upisa jednadžbi NE upisujemo y[x], već samo y.

rj1=DSolve[y'[x]==1-y[x]/x,y,x]

Tada će Mathematica prilikom supstitucije izvršiti i naredbe s kojima djelujemo na funkciju y.

y''[x]+y[x]/.rj1

Integrate[y'[x]/.rj1,x]