Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
ZastosowaniedekompozycjiSVDwregresjiliniowej
19
MATLAB
X=[3023;4122;1016;504
1;4021;2231]
d=[100235]’.
Python
X=np.mat(”3023;4122;101
6;5041;4021;2231”)
d=np.mat(”100235”).T
WywołaniefunkcjipseudoinwersjiW=pinv(A)generujenastępującywynik
MATLAB
W=pinv(X)
W=
0.1844-0.1459
-0.00510.3073
-0.17210.2085
-0.0182-0.0092
0.01440.2919-0.0921-0.1128
-0.10050.3855-0.0698-0.3529
0.0269-0.41700.05950.3598
0.04310.01850.1523-0.0528
Python
np.linalg.pinv(X)
matrix([[0.0144,0.2919,-0.0921,
-0.1128,0.1844,-0.1459],
-0.3529,-0.0051,0.3073],
0.3598,-0.1721,0.2085],
-0.0528,-0.0182,-0.0092]])
[-0.1005,0.3855,-0.0698,
[0.0269,-0.417,0.0595,
[0.0431,0.0185,0.1523,
Zauważmy,żewprzypadkupseudoinwersjiniemusibyćspełnionazasada,że
iloczynmacierzyimacierzypseudoinwersyjnejjestrównymacierzyjednostko-
wej.Wnaszymprzypadkumamy
MATLAB
W*X=
1.0000-0.0000-0.0000-0.0000
-0.00001.0000-0.0000-0.0000
-0.0000-0.00001.00000.0000
0.0000-0.00000.00001.0000
Python
W@X=[[1.0000e+00-3.3307e-16
-5.5511e-16-1.1102e-16]
-3.3307e-16]
-5.5511e-17]
1.0000e+00]]
[-4.9960e-161.0000e+003.3307e-16
[-2.2204e-160.0000e+001.0000e+00
[-1.1102e-161.2837e-160.0000e+00
natomiast
MATLAB
X*W=
-0.0485
0.35190.1221
-0.09690.0072
0.21540.0952
0.3752-0.1759
-0.17590.9390
0.22620.09690.29980.22260.1544
0.09690.7558-0.0144-0.1903
0.2998-0.01440.8815-0.0700
0.2226-0.1903-0.07000.8223
0.15440.3519-0.09690.2154
-0.04850.12210.00720.0952
Python
X@W=[[0.22620.09690.2998
0.22260.1544-0.0485]
0.35190.1221]
-0.09690.0072]
0.21540.0952]
0.3752-0.1759]
-0.17590.939]]
[0.09690.7558-0.0144-0.1903
[0.2998-0.01440.8815-0.07
[0.2226-0.1903-0.070.8223
[0.15440.3519-0.09690.2154
[-0.04850.12210.00720.0952