12.07.2015 Views

Skripta dr Željka Jurića

Skripta dr Željka Jurića

Skripta dr Željka Jurića

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Dr. Željko Jurić : Interaktivna računanja u programskom paketu Mathematica /skraćena verzija/Priručnik za laboratorijske vježbe na predmetu “Računarski sistemi”In[28] := x 2 + 5x + 5 = = 0 // Solve // NOut[28] = {{x –3.61803}, {x –1.38197}}In[29] := x 2 + 5x + 5 = = 0 // NSolveOut[29] = {{x –3.61803}, {x –1.38197}}Kada god znamo da nas zanimaju numeričke vrijednosti, mnogo je bolje odmah koristiti NSolve, ane prvo tražiti tačna rješenja sa Solve, a zatim ih aproksimirati. Naime, ukoliko su tačna rješenja vrloglomazna, u postupku njihove aproksimacije može se više izgubiti na tačnosti nego u slučaju kadaneposredno tražimo aproksimativna rješenja. Uzmimo kao primjer jednačinu x 3 – 6 x 2 – 2 x + 3 = 0, čija sutačna rješenja vrlo nezgrapna i glomazna:In[30] := x 3 – 6x 2 – 2x + 3 = = 0 // SolveOut[30] = {{x {x {x 11/ 3 153i 95192142 / 333 153i 9519 1/ 32131 i 3 153i 9519 1/27 1i 3 2 / 32 33153i 9519 1/ 32131 i 3 153i 9519 1/27 1i 3 2 / 32 33153i 9519 1/ 32 } ,2 } ,2 }}Probajmo aproksimirati ova rješenja:In[31] := % // NOut[31] = {{x 6.24338 + 5.55112 10 –17 }, {x 0.5821 – 4.44089 10 –16 },{x –0.825476 + 2.22045 10 –16 }}Rješenja izgledaju kao da su kompleksna. Međutim, ako pažljivije pogledamo ova rješenja,primijetićemo da im je imaginarni dio izuzetno mali (reda veličine 10 –16 odnosno 10 –17 ), što navodi napomisao da ovaj imaginarni dio potiče od nesavršeno izvedene numeričke aproksimacije tačnih rješenja,u kojima je figurirala imaginarna jedinica. Funkcija Chop može se koristiti da “prečisti” ovakva rješenja.Ona zaokružuje na nulu sve dijelove broja (realne ili imaginarne) koji su po apsolutnoj vrijednosti manjiod 10 –10 (takvi dijelovi obično su posljedica netačnosti računanja):In[32] := % // ChopOut[32] = {{x 6.24338}, {x 0.5821}, {x –0.825476}}Ovo već izgleda mnogo razumnije. Međutim, da smo na polaznu jednačinu primijenili funkciju NSolve,odmah bismo dobili ovakva rješenja, bez nepotrebnih komplikacija:In[33] := x 3 – 6x 2 – 2x + 3 = = 0 // NSolveOut[33] = {{x 6.24338}, {x 0.5821}, {x –0.825476}}Ukoliko verziju funkcije Solve sa samo jednim argumentom primijenimo na jednačinu ili sistem ukojima se javljaju još neke promjenljive ili parametri, pored onih promjenljivih po kojima želimo dobitirješenje, Solve će riješiti jednačinu ili sistem po onim promjenljivim po kojima se dobija najprostijerješenje, uz poruku upozorenja da to ne mora biti ono što smo željeli. Izlaz iz takve situacije je korištenjefunkcije Solve sa dva parametra, gdje ćemo pomoću <strong>dr</strong>ugog argumenta eksplicitno naznačiti po kojojpromjenljivoj želimo dobiti rješenje:In[34] := x 2 + a x + 5 = = 0 // SolveOut[34] = {{a Solve::svars : Equations may not give solutions for all "solve" variables.25x}} x2– 38 –

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!