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);
No description has been provided for this image
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');
No description has been provided for this image
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()
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image

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 [ ]: