Vežbe 7

Vežbe ćete raditi u grupama po 2-3 (svaki red je jedan tim). Na taj način moći ćete da se međusobno dopunjujete dok rešavate probleme. Rešenja pišite ispod svakog zadatka. Ideja prilikom izrade zadataka jeste da potražite najelegantnije rešenje ako možete. Naravno, koristite Help. Opišite postupak u radu. Posle sačuvajte to što ste radili na USB.

Zadatak br 1

Koristeći funkciju Plot napravite Manipulate koji će vam omogućiti da birate funkciju koju želite da prikažete sa liste {Sin, Cos, Tan, Log, Exp}. Grafik treba da ima naslov koji će se automatski menjati u zavisnosti od toga koju funkciju prikazujete. Na primer, ukoliko prikazujete Sin, naslov treba da bude string “Prikaz funkcije Sin”. A ukoliko je Cos u pitanju onda treba da bude “Prikaz funkcije Cos”. Itd.

Naslov se kontroliše putem opcije PlotLabel i u pitanju je String. Da bismo mogli da automatski prilagođavamo naslov, stoga, treba da napravimo neke operacije sa stringovima. Evo primera:

StringJoin["Ovo je grafik ",ToString[Exp]," funkcije"]

Kako ovo radi? To lepi tri stringa, od kojih je drugi dobijen od izraza koji nije string nego simbol, tako što ga pretvorimo u string koristeći ToString komandu.

Dozvolite korisniku da menja i PlotTheme (ponudite sve opcije koje postoje kao mogućnost). Opseg po x osi je od 1 do 20.

Zadatak br 2

U fajlu sa podacima podaci2.xlsx nalaze se, kao što se sećamo, 2 sheeta. Na prvom su cene akcije kompanije Facebook za 2016. Unesite u računar podatke iz Excela koristeći funkciju Import.

fb2016=Flatten[Import[][[1]]]

U argumentu funkcije Import unesite putanju do tog fajla. Idite na Insert i izaberite File Path. Onda kliknite na fajl podaci2.xlsx u direktoriji gde ste ga sačuvali. Primetite da [[1]] u prethodnoj komandi daje zadatak da se downloaduje samo Sheet1 u excel fajlu. Time ste stvorili listu cena akcija za 2016. izbacite prvi element liste koji sadrži naziv serije podataka. Oznacite tako dobijenu listu kao fb2016.

Ponovite isto to za cene iz 2017 (na Sheet2) i tako napravite seriju fb2017.

fb2017=

Napravite Manipulate koji omogućava korisniku da bira da li će prikazati prvu ili drugu seriju podataka (cene FB za 2016 ili 2017 godinu). Gledajte da formatirate grafik tako da izgleda što lepše. Naslov treba da odražava da li ste izabrali 2016 ili 2017 (to jest da se automatski menja sa vašim izborom godine).

Neki saveti

Jedan način da se uradi ovaj projekat jeste da koristite operacije sa stringovima. Primetimo, na primer, da je izraz

StringJoin["fb","1"]

Head[%]

string, a da je

ToExpression[StringJoin["fb","1"]]

Head[%]

varijabla. Stoga, u Manipulate možete koristiti listu stringova sa godinama, da njih biramo, to jest {“2016”, “2017”}. Takođe, može vam biti korisno da upotrebite opciju za Manipulate SaveDefinitions->True.

Zadatak br 3

Logaritamski dnevni prinosi se iz serije cena na kraju dana dobijaju tako što se izračuna logaritam cena, a onda i njihova prva diferenca. Na primer, ako su cene

{p0,p1,p2,p3}

logaritamski prinosi bi bili

Differences[Log[{p0,p1,p2,p3}]]

Izračunajte logaritamske dnevne prinose na akcije FB za 2016 i 2017 i označite ih sa prinosi2016 i prinosi2017, respektivno. Napravite GraphicsGrid histograma za ove dve serije (u prvom redu) i glatkih SmoothHistogram-a u drugom redu. Označite svaki od grafika da se zna šta je šta na njemu. Formatirajte što lepše. Ukupna veličlina Image treba da  bude 700.