题目如下
代码实现
前三题的代码如下:
import numpy as np
from scipy.linalg import toeplitz
from scipy.sparse.linalg import svds
# Generate matrices A, with random Gaussian entries, B, a Toeplitz matrix, where A 2 Rn×m and B 2 Rm×m,
# for n = 200, m = 500
n = 200
m = 500
A = np.random.normal(0, 1, [n, m])
B = toeplitz(np.random.normal(0, 1, m))
"""Exercise 9.1: Matrix operations
Calculate A + A, AA>; A>A and AB. Write a function that computes A(B − λI) for any λ."""
A_A = np.add(A, A)
AAT = np.matmul(A, np.transpose(A))
ATA = np.matmul(np.transpose(A), A)
AB = np.matmul(A, B)
def fun(lda):
return np.matmul(A, (B - lda * np.identity(m)))
print("Below are A+A, AAT, ATA, AB")
print(A_A)
print(AAT)
print(ATA)
print(AB)
print("For lda=2, result is")
print(fun(2.0))
print("\n####\n")
"""Exercise 9.2: Solving a linear system
Generate a vector b with m entries and solve Bx = b."""
b = np.random.normal(0, 1, m)
x = np.linalg.solve(B, b)
print("b is "+str(b))
print("And x is "+str(x))
print("\n####\n")
"""Exercise 9.3: Norms
Compute the Frobenius norm of A: kAkF and the infinity norm of B: kBk1. Also find the largest and
smallest singular values of B"""
AF = np.linalg.norm(A, ord='fro')
B_INF = np.linalg.norm(B, np.inf)
U, S, VT = svds(B)
B_singular_max, B_singular_min = max(S), min(S)
print("A is ")
print(A)
print("Max singular value is "+str(B_singular_max)+" and min singular value is "+str(B_singular_min))
print("\n####\n")
输出如下:
Below are A+A, AAT, ATA, AB
[[-2.66492207e+00 -1.49876012e+00 2.00194667e+00 ... 6.88724846e-01
-3.40831098e+00 -6.91576946e-01]
[ 1.63296008e+00 3.22684403e-01 -1.89144047e-03 ... 1.83076990e+00
-3.31802590e+00 9.16201166e-01]
[ 1.75877364e+00 3.05972751e-01 8.08349762e-01 ... -9.55688856e-01
3.61101240e-01 -7.13090871e-01]
...
[ 1.33997184e+00 2.27119849e+00 3.59792183e+00 ... 2.01778678e-01
-6.29408881e-01 1.30165867e+00]
[ 2.02176993e+00 -1.94151037e+00 -1.85951773e+00 ... 1.02234975e-01
3.25138082e+00 3.03088772e-01]
[-1.00821852e+00 1.90456708e+00 9.38143901e-01 ... -9.27595989e-01
-7.76512818e-01 2.39483021e+00]]
[[ 4.49305978e+02 -2.29053771e+01 -1.59603117e+01 ... -5.91357295e+01
-1.35699783e+00 8.24689583e+00]
[-2.29053771e+01 5.18908889e+02 2.71560621e+01 ... 4.77307211e+01
3.24210425e+01 5.63168675e+01]
[-1.59603117e+01 2.71560621e+01 4.88911427e+02 ... -1.22549093e+01
2.13182561e+01 2.19720608e+00]
...
[-5.91357295e+01 4.77307211e+01 -1.22549093e+01 ... 4.42767039e+02
-1.11891578e-01 1.47697302e+01]
[-1.35699783e+00 3.24210425e+01 2.13182561e+01 ... -1.11891578e-01
4.23681258e+02 1.38232669e+01]
[ 8.24689583e+00 5.63168675e+01 2.19720608e+00 ... 1.47697302e+01
1.38232669e+01 5.12051371e+02]]
[[219.20012256 -3.20612379 4.3246027 ... -8.46571729 -21.58006919
-13.05689245]
[ -3.20612379 202.48266643 -2.67977549 ... 3.33105725 -34.53833566
-3.90295443]
[ 4.3246027 -2.67977549 217.13114269 ... 16.38075194 -6.15373344
-1.45957956]
...
[ -8.46571729 3.33105725 16.38075194 ... 176.90377695 -2.96049225
-19.8399056 ]
[-21.58006919 -34.53833566 -6.15373344 ... -2.96049225 193.1830672
-8.16717231]
[-13.05689245 -3.90295443 -1.45957956 ... -19.8399056 -8.16717231
191.28936793]]
[[ -1.75100128 -4.51664359 -20.49610688 ... 15.6485837 13.55305409
8.9376733 ]
[ 6.12003807 10.25952047 -17.9046945 ... 59.1307008 12.06137858
-9.91080235]
[ 25.73718843 3.09244542 -20.17783096 ... -13.29777408 0.112725
27.53598967]
...
[ 23.81562351 -18.49531225 5.44819341 ... 5.91362779 -35.13807488
6.35920828]
[-17.50724879 -38.05131258 1.15006618 ... 45.28058997 42.16252686
-24.66810137]
[-10.76791969 2.20370108 -13.99994459 ... -0.48624489 18.46654184
7.25983222]]
For lda=2, result is
[[ 0.91392079 -3.01788347 -22.49805355 ... 14.95985886 16.96136507
9.62925024]
[ 4.48707799 9.93683607 -17.90280306 ... 57.2999309 15.37940448
-10.82700352]
[ 23.97841479 2.78647267 -20.98618072 ... -12.34208522 -0.24837624
28.24908054]
...
[ 22.47565167 -20.76651073 1.85027158 ... 5.71184911 -34.508666
5.05754961]
[-19.52901872 -36.10980221 3.0095839 ... 45.178355 38.91114604
-24.97119014]
[ -9.75970117 0.299134 -14.93808849 ... 0.4413511 19.24305466
4.86500201]]
####
b is [ 1.22083052e+00 -1.65700579e+00 9.63059303e-02 -1.17430549e+00
1.49951110e+00 7.26584678e-01 -4.17270003e-01 7.12865120e-01
-7.83891392e-02 -6.39535285e-01 1.30622553e-01 3.63590454e-01
-1.33990228e+00 -8.34523470e-01 -1.21964855e-01 -1.65009101e+00
-3.46959995e-01 8.65272592e-01 1.18348362e+00 -1.90895548e+00
-2.86590183e-01 -1.53595185e-01 -1.14898115e+00 -1.27306028e+00
-7.67913925e-01 -1.34188844e+00 -1.36358747e-01 7.94255993e-01
2.16212057e+00 -1.04995856e+00 1.45502980e+00 1.70369853e+00
-2.09064969e-01 1.35607937e+00 7.74270679e-01 -1.52029884e+00
7.84937947e-01 -6.76828000e-01 1.71962803e-01 8.33550493e-03
-6.30517493e-01 3.08986877e-02 -1.23903993e+00 2.38859740e-01
-8.16949510e-02 6.11653434e-01 8.66016775e-01 -7.61510181e-01
-1.88575021e+00 -4.25029892e-02 -2.29107390e-01 8.91181590e-01
6.81565497e-01 -5.14479737e-02 -1.80205071e-01 1.97680876e-01
8.64809910e-02 -5.03409004e-01 -7.56136228e-01 9.93851611e-02
-2.44956786e+00 -2.27354517e-01 -5.20741707e-01 2.63966781e-01
3.12756722e-01 2.98740963e-01 6.65827807e-02 -8.88432052e-01
8.40858116e-01 -1.07113833e+00 5.11631439e-01 -2.54074770e+00
2.29574799e-01 -1.25345684e+00 4.89083246e-01 1.25143033e+00
-1.33435927e+00 1.54461599e-01 1.40185607e+00 1.44780147e+00
3.34002312e-01 6.96277640e-01 -1.21985927e+00 2.89645503e-01
-1.39108362e-01 5.56389255e-01 -4.30809609e-01 1.13177275e+00
-3.99258654e-01 -1.44854130e+00 3.48405234e-01 2.05809756e-01
-8.76304140e-01 1.93994268e+00 5.11929015e-01 -1.76554099e-01
-9.66811540e-02 -2.70758542e-01 3.75366234e-01 1.47489067e+00
-3.51511581e-01 8.30042939e-01 2.71662694e-01 6.01867034e-01
-4.37012890e-01 -2.98459299e-01 2.78374049e+00 -4.25417595e-01
2.47960022e+00 -3.68180435e-01 8.03825097e-02 -1.40543218e+00
-1.61452231e-01 1.86685765e+00 -5.58057290e-01 2.35555370e-01
1.60752881e+00 1.11250121e+00 -5.00839225e-01 7.55611982e-01
1.08694664e+00 -6.32092029e-01 1.10891407e+00 -1.76146993e-01
-7.08387969e-01 -1.88647910e-01 -1.82464750e+00 1.51252882e+00
9.84317743e-01 -7.29832049e-01 1.54524418e+00 -6.37527085e-01
-7.13666537e-01 -5.56811718e-01 -6.59545623e-01 -7.73050009e-01
-8.49832501e-01 -1.81453738e+00 8.29154728e-01 -1.17107353e+00
4.54964645e-01 -1.91873544e-01 3.07404786e-02 1.57276724e+00
3.32172631e-01 -1.16462774e+00 -3.09937361e-01 -8.50778702e-03
-6.07059275e-01 -7.15277290e-01 5.13739500e-01 -5.01157315e-01
2.22054888e-01 1.69260987e-01 -5.75477962e-01 1.73358519e+00
7.65091925e-01 7.99511613e-01 6.14485967e-01 -1.20838186e+00
-1.29934936e-01 -6.74979228e-01 1.32549135e+00 4.80502516e-01
-1.40091048e-01 9.30929431e-01 -8.46744248e-03 -1.62697541e+00
-9.37776857e-01 -6.45024855e-01 -1.06599741e-01 -8.77535832e-01
-1.14497144e+00 -1.87746534e+00 2.40280331e+00 1.32747016e+00
-1.62694493e+00 5.22903503e-01 -6.69411912e-01 1.40317729e+00
4.26814722e-02 -2.08643450e+00 1.14248174e+00 8.33684581e-01
5.71004053e-01 1.20216693e+00 1.41815822e+00 6.18582868e-01
2.84448353e-01 1.97219583e-01 -1.21924832e+00 -7.88864606e-01
1.54700326e+00 1.77690114e+00 -1.87567642e+00 -1.68040484e+00
1.72693659e-01 -8.96658505e-01 -1.53919610e+00 7.91364636e-01
-4.17597508e-01 8.86790774e-02 -1.01912330e+00 2.59048709e-01
8.48603612e-01 1.90547607e+00 1.55866286e+00 9.96906822e-02
-1.77328474e+00 -9.11552560e-02 5.07813796e-01 1.43140189e-01
-8.17415553e-01 8.01849469e-01 4.89258723e-01 -2.64602814e-02
1.82559887e+00 8.53386092e-01 8.66034185e-01 8.88499910e-01
9.55386377e-01 2.21663757e+00 -3.80147626e-01 7.13490199e-01
-5.30174377e-01 6.44025146e-01 7.42604825e-01 -2.31682987e-01
-9.89001751e-01 2.46603481e+00 -2.24341273e-01 -1.04440190e+00
-1.06669090e-01 1.37490820e+00 -1.13522859e+00 -7.67281652e-01
-8.97731023e-01 2.33575498e+00 -5.27999028e-02 1.57401097e+00
-2.51295947e-01 -1.34863483e+00 2.02397623e+00 2.50420307e-01
9.71274371e-01 -3.31361377e-01 1.11251487e+00 -1.45327609e+00
4.96420180e-02 1.48022651e+00 8.12280953e-01 -2.94507168e-01
-4.30391003e-01 4.23265185e-01 -1.45451598e+00 -8.40626527e-01
2.62107733e-01 -5.93654400e-01 -4.97031232e-01 -5.01388391e-02
-6.91483862e-01 1.93045442e-01 1.07705140e+00 1.44155780e+00
-1.14247860e+00 6.72453661e-01 1.59848426e+00 -7.78763538e-01
-4.16473954e-01 -1.08999243e+00 -6.65183938e-01 3.32177661e-01
-2.01135876e+00 9.29419032e-01 1.86688759e+00 -2.48181025e-01
-5.91009035e-01 1.47040750e-01 1.11221020e+00 1.22154854e+00
-1.03821061e-01 6.00958331e-01 -5.71203779e-01 1.87890890e+00
-2.32905428e+00 6.26635148e-01 -8.87572864e-01 -1.22240542e+00
-4.61387224e-01 1.29401335e+00 9.57568555e-01 -5.05249237e-01
-2.95633018e-01 2.37564388e-01 -9.64839579e-01 1.83745618e-01
2.63919714e-01 2.29596409e-01 5.11585110e-01 -8.49283496e-01
6.76411063e-01 -1.77529475e+00 -3.51814213e-01 -1.85007602e-01
4.17632194e-01 -2.39064060e+00 2.89057433e-01 -1.17671080e+00
4.90194862e-01 3.84311871e-01 -2.99066418e-01 1.05056426e+00
-6.08274179e-01 -7.45825494e-01 1.50512185e+00 -1.36022155e+00
1.70342434e+00 9.38798105e-01 -6.37056736e-01 1.05270470e-01
-1.13779807e+00 -6.30109814e-01 3.16026550e-01 4.19923032e-01
-3.92932637e-01 -7.87367682e-01 2.02415783e+00 5.09481384e-01
1.29829193e+00 -1.32656286e+00 1.09659156e+00 -8.21793095e-01
1.69078597e+00 1.61161915e+00 2.23713504e-01 -1.07058501e+00
-6.07294619e-02 -7.24527628e-01 2.78946517e-01 3.13740054e-01
-1.41467482e+00 2.09980799e-01 -2.00313722e+00 5.43039292e-03
-4.42195971e-01 -1.03398078e+00 -1.79314480e-01 1.41956924e+00
-7.02922742e-01 3.80644507e-01 -6.10204202e-01 -5.57809881e-01
5.78073359e-01 1.08068473e+00 1.45493738e+00 -5.82557557e-01
-1.35529638e+00 -3.41661190e-01 1.31395922e+00 -1.58647064e+00
1.69887956e-01 5.92896953e-02 3.06606099e-02 6.09422494e-01
8.71926376e-01 -2.31309695e-01 1.50560781e-01 8.78518699e-01
6.71533597e-02 9.94330585e-01 -1.48032841e+00 -1.14855348e+00
-1.44726196e-01 1.03845982e+00 -1.63474971e+00 1.23358855e+00
4.39442438e-01 -6.33121570e-01 -2.11366102e+00 5.90978788e-02
3.53944410e-01 9.41693659e-01 -1.34001436e+00 4.47333595e-01
1.98729527e+00 -4.37301413e-01 -8.48278120e-01 1.97435498e-01
-7.39014805e-01 2.86153679e-02 5.98179164e-01 5.23101281e-01
-6.92919351e-01 -7.60772849e-01 -9.61837561e-01 1.11391230e+00
1.31773806e+00 4.16273521e-01 -1.33425922e+00 2.25796715e+00
-1.51219270e+00 1.34270793e+00 -1.47010422e+00 -1.28160917e+00
1.32655793e+00 -1.71780237e+00 1.66684415e+00 1.14800594e+00
5.55001933e-01 -5.35078207e-01 7.82194550e-01 6.81445161e-01
1.95599872e-01 3.10051992e-01 -4.44105802e-01 5.56504319e-01
2.17688896e-01 1.76189559e+00 1.05064260e-01 -1.06024068e+00
-9.86178820e-01 8.35076660e-01 -3.50997221e-01 9.22069092e-01
1.31897069e+00 8.01993622e-01 -1.82465603e+00 1.59001602e+00
8.68511153e-01 1.58762957e+00 3.93062370e-01 -3.72687822e-01
-1.10197642e+00 3.45167853e-01 -6.73795665e-01 -1.91513250e+00
5.27179610e-01 4.74489603e-01 1.51726172e-01 -1.07329431e-02
-5.54889113e-01 -6.17797133e-01 2.62081383e-01 1.59639032e+00
1.85638564e-03 7.84950336e-02 1.36238212e-01 -1.11423081e+00
-2.41924959e+00 1.01767041e+00 -1.91917639e-01 -2.43109033e-01
1.82987839e-01 6.57747421e-01 1.60012352e+00 -1.81610055e-01
-6.85470022e-01 -4.13683398e-02 7.87718133e-01 -1.08314741e+00
-1.16900058e-01 5.81766797e-01 2.44477087e+00 4.71460738e-01
-2.82248557e-01 -2.15054241e+00 4.50708131e-01 -1.46103659e+00
8.23483880e-01 2.25415494e+00 -5.40341850e-01 -1.28597633e+00
-6.64024427e-01 2.11951835e-01 -1.03379508e+00 6.88824346e-04
-3.23688088e-01 6.46250684e-01 2.80159352e-01 -1.51268071e+00
-1.04489348e+00 -6.86325630e-01 -2.73312198e-01 -7.42726585e-01
9.24762684e-01 -2.07956475e+00 5.75679764e-01 -1.08739299e+00
-1.26104279e+00 4.45294167e-01 7.99437550e-01 7.37493450e-01
8.77937445e-01 -1.83107848e-01 6.56138270e-02 2.40666319e+00
-3.38292466e-01 6.54186160e-01 9.17148679e-01 -1.89492615e-01]
And x is [ 1.40464116e+00 1.03804892e+00 -1.20566036e+00 -8.68844364e-01
3.39976790e+00 1.94347886e+00 -2.87342416e+00 4.91760913e-01
3.77929839e+00 -1.59109227e+00 -1.61373727e+00 2.39840088e+00
1.59038599e-01 -2.91140545e+00 6.62460489e-01 1.74038985e+00
-2.32178940e+00 -1.75463776e+00 1.59586731e+00 -1.81151513e-01
-2.28964736e+00 -2.87024603e-02 2.15177626e+00 -1.67694516e+00
-8.15638745e-01 2.18239896e+00 2.74001460e-01 -2.04152528e+00
7.37587128e-01 2.11582349e+00 -5.18641059e-01 -9.14253403e-01
1.33046435e+00 6.34898848e-01 4.79361226e-02 7.52123590e-01
-2.99498230e-01 4.19109132e-02 1.65984268e-01 -6.80997779e-01
4.25680457e-01 8.66983133e-01 -8.64153965e-01 -9.52921781e-01
1.09672453e+00 1.98494871e-01 -1.24224276e+00 -3.14893572e-02
4.90082335e-01 2.93962154e-01 -3.76770810e-01 -7.32979248e-01
3.20287523e-02 5.18199987e-01 -2.37041562e-01 -1.04548962e+00
6.60656696e-01 1.61004306e+00 -6.98836128e-01 -4.24237846e-01
5.04617980e-01 1.01501944e+00 3.33302989e-01 -7.91035643e-01
5.72359143e-01 2.38751829e+00 2.16491219e-01 -1.55303043e+00
1.46872746e+00 1.41303650e+00 -1.27159803e+00 3.78487386e-01
1.29663853e+00 -4.83616905e-01 6.44535341e-01 -1.25528143e-01
-7.29462856e-01 5.41630002e-02 -5.50938349e-02 -2.74019373e-01
-5.63408589e-01 -3.07408151e-01 4.45558134e-01 9.94171332e-02
2.51313665e-02 3.31324675e-02 7.12588757e-01 1.01283060e+00
-2.36861905e-01 -5.03142535e-01 1.42169264e+00 2.46807022e+00
-7.71776794e-01 -9.23305039e-02 2.64078195e+00 4.44070056e-01
-6.51390706e-01 4.02218638e-01 1.61410509e+00 -7.33528647e-02
-6.11125460e-01 1.30772160e+00 -5.44568336e-01 -2.02070812e+00
8.03146243e-01 -3.61768229e-01 -3.43684962e+00 -1.30533449e+00
2.16100745e+00 -2.33816318e+00 -3.60390478e+00 1.34021798e+00
7.35803482e-01 -3.32472557e+00 -7.17680151e-01 2.25188684e+00
-1.32442586e+00 -1.38548025e+00 2.61686108e+00 -9.00242709e-02
-1.75270851e+00 2.10949210e+00 2.03505420e+00 -1.31448461e+00
-1.61158126e+00 2.18604284e+00 1.23468014e+00 -2.20869922e+00
-4.87846893e-01 2.15913382e+00 -3.93444912e-01 -1.47508556e+00
2.76094253e-01 -1.96122690e-02 -1.09470023e+00 -6.46666316e-01
-5.85670625e-01 -3.38174832e-02 -9.55744590e-01 -7.56882893e-01
5.90524294e-01 -2.17481893e-01 -1.38494111e+00 1.26383861e+00
3.08417364e-01 -1.49332150e+00 -1.22971626e-02 1.86532882e+00
-3.74799289e-01 -1.09358620e+00 1.18998062e+00 1.48613180e+00
-4.74912263e-03 5.80705642e-01 5.38529931e-01 1.22148035e+00
1.45727321e+00 -3.33385138e-02 5.36150706e-01 1.75299094e+00
1.41814157e+00 5.32178916e-01 -7.68212799e-03 -8.91631659e-01
7.10576990e-01 8.19570072e-01 -2.13210414e+00 -1.41427299e+00
1.83070761e+00 -1.05783188e+00 -2.75955752e+00 -2.49292069e-01
7.11584770e-02 -1.70926415e+00 -1.10392395e+00 -5.88619043e-01
-6.86233780e-01 2.54565541e-01 9.82419186e-02 -1.83361751e+00
3.58617306e-01 1.75433700e+00 -3.76617158e-01 -3.18230459e-01
1.50008290e+00 8.94557701e-01 6.81842167e-01 4.51499354e-01
-3.06130447e-01 1.03159362e+00 5.86484828e-01 -2.51876502e-01
-2.98765869e-01 -1.52081531e+00 -3.69987774e-01 1.53537290e+00
-1.77472363e+00 -2.90926014e+00 9.28018926e-01 1.01334682e+00
-3.11048382e+00 -1.52670152e+00 1.37879061e+00 -8.88705810e-01
-1.55598769e+00 -1.71139000e-01 -8.85163000e-01 -3.26341722e-01
1.34767155e+00 -5.88669006e-01 -1.95861291e+00 2.35270167e+00
1.77004775e+00 -1.21670273e+00 4.51629062e-01 1.61851981e+00
1.10154062e+00 2.38019732e-01 7.70317177e-02 7.72440592e-01
9.90517826e-01 6.98781631e-01 2.69833017e-01 -5.65676342e-01
8.76398325e-01 1.33817063e+00 -6.61318932e-01 -1.43370887e+00
8.01480410e-01 1.20709604e+00 -1.55742323e+00 -2.20176667e+00
-1.01012016e+00 3.23451000e-01 -3.18673686e-01 -2.76970613e+00
-2.04904111e+00 1.11696736e+00 5.49922360e-01 -3.02546015e+00
-1.12878149e+00 2.83817348e+00 4.75032945e-01 -1.63548898e+00
1.22703530e+00 2.06189030e+00 6.19840455e-01 2.35321163e-01
1.33595334e+00 1.09673456e+00 1.03542027e+00 1.35810940e+00
9.48697564e-01 4.36223994e-01 -2.38529265e-01 8.93026087e-01
-1.42901539e-01 -2.15205591e+00 1.54459014e-01 1.33382014e+00
-2.04773645e+00 -3.55488356e+00 9.76774609e-02 1.31752337e+00
-2.16874626e+00 -2.32382122e+00 -8.93219337e-02 9.38858387e-01
-1.01932097e-01 -1.23414039e+00 -2.62612147e-01 1.70485695e+00
1.44751910e+00 -8.09297798e-01 -3.03798970e-01 2.39445477e+00
1.16854091e+00 -3.48461675e-01 3.25054624e-01 1.22911222e+00
1.56594154e+00 3.35895873e-01 -2.98905624e-01 3.28457309e-01
4.89730115e-01 8.60508604e-01 -7.68163561e-01 -1.46741429e+00
1.22709617e+00 9.17959607e-01 -2.03764103e+00 -1.54938809e+00
1.19911287e+00 -1.15381771e+00 -1.45612790e+00 -1.25791950e-02
-1.76010476e+00 -1.23806380e+00 1.15624222e+00 -1.90018428e+00
-2.73630664e+00 1.22812803e+00 1.26383512e+00 -2.24283885e+00
-1.19308634e+00 1.97314702e+00 2.89057896e-01 -7.66060293e-01
7.45122488e-01 5.58281517e-01 7.58359823e-01 1.05034287e+00
-1.25735899e-01 -7.66414542e-02 9.02449606e-01 7.78873176e-01
6.15227112e-01 -5.30727398e-01 -8.73157315e-01 1.45411205e+00
-3.82446625e-01 -1.94718432e+00 -3.83940115e-01 2.51152874e-01
-1.47480134e+00 -3.40542756e-01 -1.00633964e+00 -1.72510170e+00
-2.64319093e-02 3.30308466e-02 -2.46282479e+00 6.09904302e-01
2.51429963e+00 1.10765435e-02 -1.20114416e+00 2.16271747e+00
1.73486733e+00 1.85944893e-02 6.49039651e-01 1.04357564e+00
6.03996661e-01 1.65305893e+00 2.77988145e-02 -1.30549653e-01
1.68685628e+00 6.97372521e-01 -1.03571297e-01 -3.50095595e-01
-3.34934174e-01 1.18294799e+00 7.29304099e-01 -1.37346884e+00
-4.65614106e-01 1.22616212e+00 -7.72340893e-01 -2.50000523e+00
5.13806253e-01 1.53022637e-01 -1.81516976e+00 -7.73444178e-01
7.20485037e-01 -2.74543472e-01 -7.82687377e-01 2.47357701e-01
-1.90434627e-01 -8.94463064e-01 -3.14764530e-01 2.08412727e-01
-1.19728333e-05 -1.56409701e+00 -2.39950394e-01 2.22734525e+00
-6.02240333e-01 -2.29052372e+00 1.68079441e+00 2.59427990e+00
-1.58689889e+00 -1.37938364e+00 2.44096288e+00 1.07861066e+00
-1.82288098e+00 -2.98611271e-01 1.32994196e+00 -1.21703209e+00
-1.76764168e+00 1.27733178e+00 -1.25587414e+00 -3.65461266e+00
9.44888535e-01 8.58608653e-01 -3.71824094e+00 -1.20105009e+00
2.34891827e+00 -6.15491522e-01 -2.44896568e+00 1.47874593e+00
1.36359324e+00 -1.52140330e+00 2.61127873e-01 1.67334820e+00
-1.19467290e-01 6.78732792e-02 2.59484720e+00 8.36266067e-01
-1.28532998e+00 1.56109848e+00 2.32971401e+00 -2.38570910e-01
-9.52924706e-01 1.99207017e+00 1.76866587e+00 -1.19281873e+00
-1.55275495e-02 1.03784860e+00 -3.84576124e-01 -4.39144386e-01
-8.25542342e-01 -3.11238231e-01 5.60426522e-01 -5.04934218e-02
-6.19902801e-01 1.59594600e-02 4.06717423e-01 -5.07243575e-02
-4.61221220e-01 4.73286178e-01 5.44710191e-01 3.31618170e-01
7.74065570e-01 6.55976175e-01 -2.84367333e-01 1.31133607e+00
1.33052544e+00 -1.66118773e+00 -9.77213369e-02 2.35185428e+00
-2.99078692e-01 -1.02636627e+00 9.31870035e-01 1.60750296e-01
-2.23416459e-01 -9.67528003e-01 -7.19607953e-01 3.95900438e-01
3.62698025e-01 -1.24634155e+00 -3.97020531e-01 7.59103298e-01
-9.23420671e-02 -9.41727781e-01 -3.39416240e-01 -1.74895769e-01
9.73957965e-01 -4.57913299e-01 -1.05943674e+00 5.46261687e-01
1.11627834e+00 -5.52053626e-01 -9.08397199e-01 1.36531635e+00
5.48680414e-01 -6.88205428e-01 9.92385175e-01 3.91828962e-01
3.46682697e-01 1.76804444e-02 -1.53973668e-01 1.11786667e+00
1.02942669e+00 -8.37962704e-01 -3.55267461e-01 2.20713407e+00
3.58855075e-01 -2.38241053e+00 8.58953944e-01 1.88976860e+00
-1.80953902e+00 -1.38310865e+00 1.45316809e+00 2.60884780e-01
-2.95018436e+00 2.27596062e-01 1.95410948e+00 -2.22601625e+00
-1.77132677e+00 1.75413132e+00 1.19934110e+00 -1.64258488e+00
6.79978849e-01 2.24981799e+00 -1.78342790e+00 -7.97070894e-01
3.99816858e+00 2.81193723e-01 -3.11332287e+00 1.05439088e+00
3.13785760e+00 -1.46298304e+00 -1.14653944e+00 1.49946851e+00]
####
A is
[[-1.33246104e+00 -7.49380060e-01 1.00097333e+00 ... 3.44362423e-01
-1.70415549e+00 -3.45788473e-01]
[ 8.16480041e-01 1.61342201e-01 -9.45720236e-04 ... 9.15384948e-01
-1.65901295e+00 4.58100583e-01]
[ 8.79386820e-01 1.52986375e-01 4.04174881e-01 ... -4.77844428e-01
1.80550620e-01 -3.56545435e-01]
...
[ 6.69985921e-01 1.13559924e+00 1.79896092e+00 ... 1.00889339e-01
-3.14704441e-01 6.50829335e-01]
[ 1.01088496e+00 -9.70755184e-01 -9.29758865e-01 ... 5.11174873e-02
1.62569041e+00 1.51544386e-01]
[-5.04109259e-01 9.52283542e-01 4.69071950e-01 ... -4.63797994e-01
-3.88256409e-01 1.19741510e+00]]
Max singular value is 60.65385458082814 and min singular value is 53.42357472745473
####
Process finished with exit code 0
Exercise 9.4
import numpy as np
import time
def foo(n):
Z = np.random.normal(0, 1, [n, n])
epsilon = 0.00001
b_k = np.random.normal(0, 1, n)
t0 = time.clock()
times = 0
while True:
# calculate the matrix-by-vector product Ab
b_k1 = np.dot(Z, b_k)
# calculate the norm
b_k1_norm = np.linalg.norm(b_k1)
# re normalize the vector
b_k_new = b_k1 / b_k1_norm
ei=np.linalg.norm(b_k, np.inf)
ei_new=np.linalg.norm(b_k_new, np.inf)
if abs(ei-ei_new) < epsilon:
print("Eigenvalue is "+str(ei_new))
break
b_k=b_k_new
times = times + 1
t1 = time.clock()
print("While n="+str(n))
print("Time used :" + str(t1 - t0))
print("Iteration times:" + str(times))
foo(10)
foo(500)
foo(1000)
输出如下:
Eigenvalue is 0.7655965239191432
While n=10
Time used :0.0025378735353597604
Iteration times:33
Eigenvalue is 0.14577036587313794
While n=500
Time used :1.9784952353636718
Iteration times:5026
Eigenvalue is 0.10487284652777905
While n=1000
Time used :2.12012114158482
Iteration times:2525
Process finished with exit code 0
Exercise 9.5
import numpy as np
from scipy.sparse.linalg import svds
import scipy.linalg as linalg
def foo(n, p):
C = np.random.binomial(1, p, [n, n])
S = linalg.svdvals(C)
print("For n=" + str(n) + " ,p=" + str(p))
print("Max singular value is " + str(max(S)) + "\n")
N = [100, 200, 1000]
P = [0.2, 0.4, 0.5]
for i in range(3):
foo(N[i], P[i])
输出如下:
For n=100 ,p=0.2
Max singular value is 21.519885563687353
For n=200 ,p=0.4
Max singular value is 80.86541981799127
For n=1000 ,p=0.5
Max singular value is 500.8913439778914
Process finished with exit code 0
可以看到最大特征值收敛于
Exercise 9.6
代码如下:
import numpy as np
def fun(z, A):
return A[np.argmin(np.abs(A - z))]
for _ in range(10):
A = np.random.normal(0, 1, 10)
print("A is " + str(A))
z = np.random.normal(0, 1, 1)
print("z is " + str(z))
print("Result is " + str(fun(z, A)))
输出如下:
A is [ 0.73390563 -0.73585313 -2.5098151 -0.35509459 0.8330107 0.30096315
-0.40494035 -2.1881496 -0.68863103 0.62229052]
z is [-0.11963785]
Result is -0.3550945883622094
A is [-0.80093897 0.68515174 -0.04626964 -0.26117038 -0.78344863 0.50260994
0.83917766 0.35072135 3.29341067 -1.53727916]
z is [-0.26792738]
Result is -0.2611703832235001
A is [ 1.84319764 -0.56855173 -0.15086427 -0.5809674 0.31994807 -0.85230422
-2.16952816 1.12286011 0.08552049 0.88710099]
z is [-0.28149594]
Result is -0.15086427191905707
A is [-0.33865872 -0.60588902 -0.35920237 0.79827813 -0.23759762 0.17356719
-1.218413 -0.58077275 -0.67510884 0.42264313]
z is [0.007145]
Result is 0.17356718789912803
A is [-0.58571585 0.16969404 -2.22818415 0.79275314 -2.26781237 -0.33649004
-0.271224 0.37098678 -1.48380289 -1.72379353]
z is [0.11361307]
Result is 0.16969404243267708
A is [-0.83948212 -1.01819914 1.13303191 0.3043191 0.59689304 -0.01964297
-0.76262739 0.45650167 0.74466873 -1.70780183]
z is [0.40290082]
Result is 0.4565016678165629
A is [ 0.82596538 -1.4629943 -2.00398274 -0.23569466 -2.50863289 0.76593974
0.52158516 -0.38550083 -0.19049751 0.09978216]
z is [0.9235855]
Result is 0.825965381008604
A is [-1.13469271e+00 1.49757952e-03 -2.98291216e-02 -1.65084199e+00
1.14577151e+00 -1.47241838e+00 -1.03192458e+00 1.50118144e+00
-7.31931147e-01 -4.59158394e-01]
import sys; print('Python %s on %s' % (sys.version, sys.platform))
sys.path.extend(['F:\\Acadamic_17_4_22\\Python\\HW_numpy', 'F:/Acadamic_17_4_22/Python/HW_numpy'])
z is [-0.21790923]
Result is -0.029829121644671452
A is [ 1.00937722 1.67193368 1.77163855 1.52797915 1.00410169 -0.15337683
0.00439507 0.5958237 0.75671811 0.54606594]
z is [-0.58890639]
Result is -0.15337682958161183
A is [-0.78148815 0.15413545 -0.0415477 0.57832506 0.59987814 0.84374048
-1.16808526 -0.41319689 0.23251396 0.18610539]
z is [1.28905773]
Result is 0.8437404845888975