Petlja for
1. zadatak
Napišite programsku funkciju zbroj() koja će izračunati zbroj komponenata liste.
Provjerite ispravnost rada programa na listama $l_1 = [1, 2, 3, 4, 5]$ (zbroj je $15$) i $l_2 =\;$srange(20) (lista $l_2$ sadrži brojeve $0, 1, 2, \ldots, 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 $\dfrac{19}{2}$.
|
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 $\dfrac{137}{60}$.
|
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 $\cos^2 1$).
|
2. zadatak
Ako su zadane dvije lista brojeva iste duljine $l_1=[x_0, x_1, x_2, \ldots, x_n]$ i $l_2 = [y_0, y1, y2, \ldots, y_n]$, njihov je skalarni umnožak definiran izrazom
$l_1\cdot l_2 = x_0\, y_0 + x_1\, y_1 + x_2\, y_2 + \cdots + x_n\, y_n$.
Napišite programsku funkciju skalarni() koja će računati skalarni umnožak dviju lista brojeva iste duljine. Funkciju primijenite na liste $l_1 = [1, -1, 2, -2]$ i $l_2 = [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 $x_0$ 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 $x_0$ 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 $x_{min}$, $x_{max}$, $y_{min}$, $y_{max}$.
Napisanom programskom funkcijom odredite listu slika aproksimacije funkcije $f(x) = x^2\,e^{-x}$ u okolišu točke $x_0 = 2$ pomoću Taylorovih polinoma do desetoga stupnja. (Koliko će slika lista sadržavati?) Neka su $x_{min}=-0,\!6$, $x_{max}=5$, $y_{min}=-0,\!25$, $y_{max}=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) = \dfrac{1}{x^2}\sin\dfrac{1}{x}$ Taylorovim polinomima do 20.-oga stupnja u okolini točke $x_0=0,\!21$ za $x_{min}=0,\!1$, $x_{max}=0,\!6$, $y_{min}=-60$ i $y_{max}=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 $x^i$ 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 $x^i$ 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$.
|