Numerička matematika - 17. predavanje¶
1. SVD faktorizacija matrice i primjena u metodi najmanjih kvadrata¶
U ovom predavanju uvodimo SVD faktorizaciju u smislu primjene na rješavanje problema najmanjih kvadrata
In [39]:
from IPython.lib.display import YouTubeVideo
vid = YouTubeVideo("RnvseOGCM7w")
display(vid)
In [40]:
import numpy as np
import matplotlib.pyplot as plt
A=np.array([[1.0, 2.0, 3.0 ],[3, 5.0, 7.0], [2.0, 7.0, 9.0], [3,2,1]])
np.linalg.svd(A)
Out[40]:
(array([[-2.42673503e-01, -1.85001193e-02, 3.37989207e-01,
9.09137290e-01],
[-5.90346523e-01, 1.87035599e-01, 6.73233512e-01,
-4.04061018e-01],
[-7.49103832e-01, -3.57914448e-01, -5.57441205e-01,
7.77156117e-16],
[-1.77324567e-01, 9.14643471e-01, -3.48968821e-01,
1.01015254e-01]]),
array([15.38681237, 2.78681182, 0.69259283]),
array([[-0.26281561, -0.58722076, -0.76557151],
[ 0.92245489, 0.07968373, -0.3777929 ],
[ 0.28285143, -0.80549506, 0.52074253]]))
2. Još o SVD faktorizaciji i primjenama¶
In [41]:
from PIL import Image
slika = Image.open('macka1.jpg')
#imggray = img.convert('LA')
plt.figure(figsize=(5, 4))
plt.imshow(slika);
In [27]:
matrica = np.array(list(slika.getdata(band=0)), float)
matrica.shape = (slika.size[1], slika.size[0])
matrica = np.matrix(matrica)
plt.figure(figsize=(5,4))
plt.imshow(matrica, cmap='gray');
In [42]:
U, sigma, V = np.linalg.svd(matrica)
for i in range(5, 36, 10):
manji_rang = np.matrix(U[:, :i]) * np.diag(sigma[:i]) * np.matrix(V[:i, :])
plt.imshow(manji_rang, cmap='gray')
title = "n = %s" % i
plt.title(title)
plt.show()
U ovom dijelu predavanja reći ćemo ukratko neđto o primjenama SVD dekompozicije matrice
In [43]:
vid = YouTubeVideo("YlzFXpXd9Ow")
display(vid)
3. rješavanje nelineanih jednadžbi¶
U sljedećem dijelu predavanja uvodimo metode za rješavanje nelinearnih jednadžbi. Prva od njih je metoda jednostavnih iteracija.
In [44]:
vid = YouTubeVideo("UZnAQ2DpwZo")
display(vid)
In [ ]: