Processing math: 100%

MPZI_vj11

2372 days ago by fresl

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

        l1l2=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)=x2ex  u okolišu točke x0=2 pomoću Taylorovih polinoma do desetoga stupnja.  (Koliko će slika lista sadržavati?)  Neka su  xmin=0,6xmax=5ymin=0,25ymax=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,1xmax=0,6ymin=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.