Petlja for
1. zadatak
Napišite programsku funkciju zbroj() koja će izračunati zbroj komponenata liste.
Provjerite ispravnost rada programa na listama l1=[1,2,3,4,5] (zbroj je 15) i l2=srange(20) (lista l2 sadrži brojeve 0,1,2,…,19, pa joj je zbroj jednak 190).
Napomena: SageMath ima i ugrađenu funkciju sum() koja zbraja komponente liste.
|
|
|
1. zadatak za zadaću
Što treba promijeniti u kôdu programske funkcije u 1. zadatku da funkcija vrati aritmetičku sredinu komponenata liste. Podsjetnik: broj komponenata liste daje funkcija len(). Primijenite novu funkciju na listu srange(20); trebali biste dobiti rezultat 192.
|
2. zadatak za zadaću
Napišite programsku funkciju zbroj_rec() koja će zbrojiti recipročne vrijednosti komponenata liste (pretpostavit ćemo da lista nema komponenata koje su jednake nuli). Zbrojite recipročne vrijednosti komponenata liste [1,2,3,4,5]; rezultat je 13760.
|
3. zadatak za zadaću
Napišite programsku funkciju broj() koja će prebrojiti koliko lista ima komponenata. Primijenite funkciju na listu [−1,0,1]. U rješenju prvog zadatka za zadaću SageMath-ovu funkciju len() zamijenite vašom funkcijom broj().
Uputa: „Neutralni” element za prebrojavanje je 0.
|
4. zadatak za zadaću
Napišite programsku funkciju umnozak() koja će izračunati umnožak komponenata liste. Testirajte funkciju na listi l=[1,2,3,4,5] (trebali biste dobiti rezultat 120).
Uputa: Neutralni element za množenje je 1.
|
5. zadatak za zadaću
Napišite programsku funkciju umnozak_kosinusa() koja će izračunati umnožak kosinusa komponenata liste. Primijenite funkciju na argument [−1,0,1] (trebali biste dobiti rezultat cos21).
|
2. zadatak
Ako su zadane dvije lista brojeva iste duljine l1=[x0,x1,x2,…,xn] i l2=[y0,y1,y2,…,yn], njihov je skalarni umnožak definiran izrazom
l1⋅l2=x0y0+x1y1+x2y2+⋯+xnyn.
Napišite programsku funkciju skalarni() koja će računati skalarni umnožak dviju lista brojeva iste duljine. Funkciju primijenite na liste l1=[1,−1,2,−2] i l2=[3,1,0,−1]; rezultat je 4.
|
|
Međuigra
Nova se komponenta na kraj liste dodaje funkcijom .append():
1 [1] 2 [1, 4] 3 [1, 4, 9] 4 [1, 4, 9, 16] 5 [1, 4, 9, 16, 25] 1 [1] 2 [1, 4] 3 [1, 4, 9] 4 [1, 4, 9, 16] 5 [1, 4, 9, 16, 25] |
3. zadatak
Na 7. predavanju (MPZI_predavanje_07) definiran je Taylorov polinom funkcije. Za prikaz kvalitete aproksimacije funkcije f pomoću Taylorovih polinoma u točki x0 od stupnja 0 do stupnja n upotrijebljena je animacija (koju tada nismo objašnjavali).
Podsjećamo da se Taylorov polinom stupnja k funkcije f(x) u točki x0 u SageMath-u dobiva pozivom funkcije
taylor (f, x, x0, k)
Napišite programsku funkciju taylor_lista() kojom ćete formirati listu slika koje se mogu animirati naredbom animate(). Svaka komponenta liste treba sadržavati grafički prikaz funkcije, prikaz točke u kojoj se računa Taylorov polinom, te prikaz Taylorovih polinoma od stupnja 0 do stupnja n za zadane xmin, xmax, ymin, ymax.
Napisanom programskom funkcijom odredite listu slika aproksimacije funkcije f(x)=x2e−x u okolišu točke x0=2 pomoću Taylorovih polinoma do desetoga stupnja. (Koliko će slika lista sadržavati?) Neka su xmin=−0,6, xmax=5, ymin=−0,25, ymax=0,70 i neka su Taylorovi polinomi nacrtani crvenom bojom. Na kraju prikažite animaciju tih slika s razmakom od pola sekunde između dvije slike, pri čemu će se izvesti deset iteracija prikaza slika.
|
|
|
|
6. zadatak za zadaću
Funkcijom taylor_lista(), definiranom u 3. zadatku, generirajte listu slika aproksimacija funkcije f(x)=1x2sin1x Taylorovim polinomima do 20.-oga stupnja u okolini točke x0=0,21 za xmin=0,1, xmax=0,6, ymin=−60 i ymax=80.
Animirajte dobivene slike funkcijom animate() i prikažite animaciju funkcijom .show() uz opcije delay = 75, iterations = 10.
|
7. zadatak za zadaću
Napišite programsku funkciju monomi() koja će generirati listu slika monoma xi za i=0..n na segmentu [0,1]. Broj n je parametar funkcije. Ordinate najniže i najviše točke crteža neka budu 0 i 1. Listu koju ćete dobiti animirajte.
|
8. zadatak za zadaću
Napišite programsku funkciju monomi2() koja će na istoj slici prikazati niz monoma xi za i=0..n na segmentu [−1,1]. Broj n je parametar funkcije. Ordinate najniže i najviše točke crteža neka budu −1 i 1.
|