numPy

import numpy as np
import scipy.linalg as sl;
# 9.1
print("matrix operations\n");
def addMat(A):
    return A+A

def multAAT(A):
    return A*A.T

def multATA(A):
    return A.T*A

def multAB(A,B):
    return A*B

def multAB(A,B):
    return A*B

def compute(num,A,B,m):
    return A*(B-num*np.eye(m))
print("generate A B matrix")
n = 200
m = 500
A = np.asmatrix(np.random.normal(0, 1, (n, m)))
B = sl.toeplitz(range(m))

print(A)
print(B)
print("A+A=",addMat(A))
print("A*At=",multAAT(A))
print("At*A=",multATA(A))
print("A*B=",multAB(A,B))
print(" compute A(B-num*I):\n", compute(3,A, B,m))

#9.2
print("sloving linear system\n");
def solve(B,b):
    return np.linalg.inv(B)*b
b = np.array(np.random.rand(m, 1))
print("\nsolve Bx = b: x = inv(B)*b:\n", solve(B, b))

#9.3
print("\nNorms")
print("The Frobenius norm of A: ||A||F:", np.linalg.norm(A))
print("The infinity norm of B: ||B||∞ ", np.linalg.norm(B, np.inf))
print("The largest singular values of B:", np.linalg.norm(B, 2))
print("The smallest singular values of B:", np.linalg.norm(B, -2))

#9.4
print("power interation\n");
Z = np.mat(np.random.rand(n, n))
print("Z:\n", Z)
w, v = np.linalg.eig(Z)
print("w:\n", w)
print("v:\n", v)

#9.5 singular values
for i in range(10):
    n = np.random.randint(200, 600)
    p = np.random.random()
    C = np.asmatrix(np.random.binomial(1, p, (n, n)))
    print("n: ", n, "p: ", p, "largest: ", n * p, sl.svd(C)[1].max())

#9.6 nearest neighbor

A = np.asmatrix(np.random.normal(0, 1, (5, 5)))
def neighbor(A, z):
    Z = z * np.ones([A.shape[0], A.shape[0]])
    A -= Z
    print(A)
    print(A.flat[abs(A).argmin()] + z)
neighbor(A, 0.5)

程序运行结果:

matrix operations

generate A B matrix
[[ 1.46426306 -0.81618189 -0.98876031 ...  0.31874893 -1.22657195
   0.17629372]
 [ 0.57107045 -0.31130927  0.374815   ...  1.06043566 -0.08870093
   1.23423705]
 [-0.98571481  0.41991493 -1.12696514 ...  0.45477993  1.11200079
   0.61646155]
 ...
 [-1.99215076 -0.41624256 -0.87013017 ...  0.62184374 -0.63195422
  -1.4909774 ]
 [ 1.3242188   1.26026724 -0.11174479 ... -1.07572189  0.64981957
   1.21384059]
 [ 0.3399073  -0.27644711  1.65545218 ... -1.04531467 -0.20573989
  -1.27810368]]
[[  0   1   2 ... 497 498 499]
 [  1   0   1 ... 496 497 498]
 [  2   1   0 ... 495 496 497]
 ...
 [497 496 495 ...   0   1   2]
 [498 497 496 ...   1   0   1]
 [499 498 497 ...   2   1   0]]
A+A= [[ 2.92852613 -1.63236378 -1.97752063 ...  0.63749785 -2.4531439
   0.35258744]
 [ 1.1421409  -0.62261853  0.74963    ...  2.12087132 -0.17740186
   2.4684741 ]
 [-1.97142962  0.83982985 -2.25393029 ...  0.90955985  2.22400159
   1.23292309]
 ...
 [-3.98430153 -0.83248512 -1.74026033 ...  1.24368747 -1.26390845
  -2.9819548 ]
 [ 2.64843759  2.52053449 -0.22348959 ... -2.15144377  1.29963915
   2.42768118]
 [ 0.67981459 -0.55289423  3.31090436 ... -2.09062934 -0.41147978
  -2.55620736]]
A*At= [[ 4.75620558e+02 -7.98431660e-01  1.17423186e+01 ...  1.81149076e+01
  -5.11679535e+00  1.43863690e+01]
 [-7.98431660e-01  5.16859059e+02 -6.29044752e+01 ...  1.19574394e+01
  -2.79947919e+01  1.55441836e+01]
 [ 1.17423186e+01 -6.29044752e+01  5.08200549e+02 ... -2.84703708e+01
   4.27587561e+00 -1.76613038e+01]
 ...
 [ 1.81149076e+01  1.19574394e+01 -2.84703708e+01 ...  5.48945469e+02
  -4.18346978e-01 -1.59516240e+01]
 [-5.11679535e+00 -2.79947919e+01  4.27587561e+00 ... -4.18346978e-01
   5.14835999e+02 -1.63285209e+01]
 [ 1.43863690e+01  1.55441836e+01 -1.76613038e+01 ... -1.59516240e+01
  -1.63285209e+01  4.44757164e+02]]
At*A= [[190.34488908  -3.81031284 -15.16376169 ...  -9.1913775    2.97361226
   14.5471    ]
 [ -3.81031284 199.59397061 -25.40900252 ... -20.77589491  -9.39749952
  -23.71433816]
 [-15.16376169 -25.40900252 218.24049353 ...  28.89014898 -14.03852479
    1.66312075]
 ...
 [ -9.1913775  -20.77589491  28.89014898 ... 194.65958007 -14.00269992
   -6.5902647 ]
 [  2.97361226  -9.39749952 -14.03852479 ... -14.00269992 195.93093201
   13.75899398]
 [ 14.5471     -23.71433816   1.66312075 ...  -6.5902647   13.75899398
  204.59388227]]
A*B= [[-5719.3618112  -5687.32449876 -5656.9195501  ... -8749.45295518
  -8776.46118504 -8805.92255879]
 [-2659.23698445 -2653.80015863 -2648.98595134 ...   529.53812432
    522.95236715   516.18920813]
 [-6219.61000715 -6204.97764087 -6189.50544474 ... -2027.78670539
  -2047.84742597 -2065.68414496]
 ...
 [ 2520.1769202   2515.96503701  2510.9206687  ... -2414.29665209
  -2409.82320718 -2406.61367072]
 [-8301.61315658 -8279.62246857 -8255.11124607 ... -1305.33030135
  -1328.39987211 -1350.16980371]
 [ 1562.83678933  1544.24622108  1525.1027586  ...  8009.01958997
   8031.25765995  8053.08425015]]
 compute A(B-num*I):
 [[-5723.75460039 -5684.87595308 -5653.95326916 ... -8750.40920196
  -8772.78146919 -8806.45143996]
 [-2660.95019581 -2652.86623083 -2650.11039633 ...   526.35681734
    523.21846994   512.48649698]
 [-6216.65286272 -6206.23738564 -6186.1245493  ... -2029.15104517
  -2051.18342835 -2067.5335296 ]
 ...
 [ 2526.15337249  2517.2137647   2513.5310592  ... -2416.1621833
  -2407.92734451 -2402.14073853]
 [-8305.58581297 -8283.4032703  -8254.77601169 ... -1302.10313569
  -1330.34933083 -1353.81132549]
 [ 1561.81706744  1545.07556242  1520.13640206 ...  8012.15553398
   8031.87487963  8056.91856118]]
sloving linear system


solve Bx = b: x = inv(B)*b:
 [[-1.67844827e-01  1.68181865e-01  0.00000000e+00 ... -1.11732278e-15
   2.65298677e-16  3.37037806e-04]
 [ 2.27747671e-01 -4.55495341e-01  2.27747671e-01 ...  2.28126648e-26
   2.07889607e-26  6.62303172e-27]
 [ 1.51433196e-28  4.28491924e-01 -8.56983847e-01 ... -1.34991878e-25
  -5.60735492e-26 -1.85828681e-19]
 ...
 [ 2.73197902e-15 -5.46445832e-15  5.46445832e-15 ... -1.92263535e-01
   9.61317675e-02  6.40366210e-17]
 [ 0.00000000e+00  1.97221316e-15 -3.94442632e-15 ...  6.93910816e-02
  -1.38782163e-01  6.93910816e-02]
 [ 3.89388571e-04 -2.39116077e-29  5.52247732e-15 ... -8.02707690e-26
   1.94304897e-01 -1.93915508e-01]]

Norms
The Frobenius norm of A: ||A||F: 315.8821212638305
The infinity norm of B: ||B||∞  124750.0
The largest singular values of B: 86851.6689846716
The smallest singular values of B: 0.5000049348345923
power interation

Z:
 [[0.78304401 0.64878728 0.76824269 ... 0.1793105  0.52024947 0.81213248]
 [0.85488306 0.43254213 0.30529846 ... 0.22844889 0.66425567 0.33537521]
 [0.90747857 0.75607221 0.31521182 ... 0.36521503 0.85429947 0.40047674]
 ...
 [0.78393234 0.26364528 0.39254761 ... 0.78129777 0.00880283 0.20694316]
 [0.1122305  0.70880716 0.9922037  ... 0.32723309 0.37330037 0.78846063]
 [0.50868475 0.80587521 0.10393355 ... 0.93240596 0.22642978 0.58401211]]
w:
 [ 1.00012882e+02+0.j         -3.52126950e+00+2.18330607j
 -3.52126950e+00-2.18330607j -3.71001817e+00+1.87734066j
 -3.71001817e+00-1.87734066j -1.85533234e+00+3.67585396j
 -1.85533234e+00-3.67585396j  3.33573242e+00+2.37744488j
  3.33573242e+00-2.37744488j  1.46236653e-01+4.04880114j
  1.46236653e-01-4.04880114j -3.90023285e+00+0.j
 -7.13377171e-01+3.91733506j -7.13377171e-01-3.91733506j
  3.88432120e+00+0.97242022j  3.88432120e+00-0.97242022j
  2.58007774e+00+3.0023393j   2.58007774e+00-3.0023393j
  1.84000728e+00+3.4941787j   1.84000728e+00-3.4941787j
  5.23398352e-01+3.83251037j  5.23398352e-01-3.83251037j
 -3.82944575e+00+0.39782017j -3.82944575e+00-0.39782017j
  2.13175708e+00+3.19862335j  2.13175708e+00-3.19862335j
  3.83960922e+00+0.j          3.62599717e+00+1.24877237j
  3.62599717e+00-1.24877237j  2.75577077e+00+2.4726719j
  2.75577077e+00-2.4726719j  -2.34677215e+00+2.86490485j
 -2.34677215e+00-2.86490485j -9.71475057e-01+3.54776726j
 -9.71475057e-01-3.54776726j -3.63213503e+00+0.80622036j
 -3.63213503e+00-0.80622036j  1.72299435e+00+3.25238984j
  1.72299435e+00-3.25238984j  2.92304581e+00+2.18140784j
  2.92304581e+00-2.18140784j -3.53330138e+00+0.j
  6.64211402e-01+3.53733418j  6.64211402e-01-3.53733418j
 -3.38121697e-01+3.58953621j -3.38121697e-01-3.58953621j
 -2.58515764e+00+2.44070759j -2.58515764e+00-2.44070759j
 -3.26550746e+00+1.55135767j -3.26550746e+00-1.55135767j
  3.08705662e+00+1.91008716j  3.08705662e+00-1.91008716j
 -3.02123829e+00+1.82575206j -3.02123829e+00-1.82575206j
 -1.45609742e+00+3.17468525j -1.45609742e+00-3.17468525j
  3.47729375e+00+0.90477295j  3.47729375e+00-0.90477295j
 -3.29687415e+00+1.08779239j -3.29687415e+00-1.08779239j
 -3.41229875e+00+0.6068916j  -3.41229875e+00-0.6068916j
 -1.19505021e+00+3.11150027j -1.19505021e+00-3.11150027j
 -5.31945232e-01+3.26594145j -5.31945232e-01-3.26594145j
 -1.42239978e+00+2.9601158j  -1.42239978e+00-2.9601158j
  1.08036135e+00+3.06493937j  1.08036135e+00-3.06493937j
  1.97429241e-01+3.17989742j  1.97429241e-01-3.17989742j
 -6.10549302e-01+3.09788205j -6.10549302e-01-3.09788205j
  3.28000172e+00+0.11647854j  3.28000172e+00-0.11647854j
  1.53528869e+00+2.84124303j  1.53528869e+00-2.84124303j
  1.72970682e+00+2.6625085j   1.72970682e+00-2.6625085j
  2.72318748e+00+1.67474696j  2.72318748e+00-1.67474696j
 -1.85119977e+00+2.44453792j -1.85119977e+00-2.44453792j
 -3.08346167e+00+0.j         -2.40546907e+00+1.83312475j
 -2.40546907e+00-1.83312475j -2.75694117e+00+1.06569835j
 -2.75694117e+00-1.06569835j  1.82380751e+00+2.33080829j
  1.82380751e+00-2.33080829j  2.96227090e+00+0.77144457j
  2.96227090e+00-0.77144457j -2.82752320e+00+0.70245767j
 -2.82752320e+00-0.70245767j -2.08241671e+00+1.97016551j
 -2.08241671e+00-1.97016551j  2.95770128e+00+0.17077543j
  2.95770128e+00-0.17077543j  2.73804848e+00+1.08273167j
  2.73804848e+00-1.08273167j  2.02138632e+00+2.07845336j
  2.02138632e+00-2.07845336j  2.24179718e+00+1.75289231j
  2.24179718e+00-1.75289231j -1.51895657e+00+2.27594891j
 -1.51895657e+00-2.27594891j  1.00630238e+00+2.64403527j
  1.00630238e+00-2.64403527j  3.13719589e-01+2.74520777j
  3.13719589e-01-2.74520777j  2.74569520e+00+0.62811962j
  2.74569520e+00-0.62811962j -1.60936132e+00+2.03107077j
 -1.60936132e+00-2.03107077j  8.28388354e-01+2.47049229j
  8.28388354e-01-2.47049229j -2.17412348e+00+1.32861691j
 -2.17412348e+00-1.32861691j -2.44207782e+00+0.78638436j
 -2.44207782e+00-0.78638436j  2.49075200e+00+0.j
 -3.67383810e-01+2.44928344j -3.67383810e-01-2.44928344j
 -2.44197694e+00+0.j         -8.10444192e-01+2.21490546j
 -8.10444192e-01-2.21490546j -1.15707743e+00+1.96669336j
 -1.15707743e+00-1.96669336j  1.96940809e+00+1.20962904j
  1.96940809e+00-1.20962904j  9.18687883e-01+2.15365758j
  9.18687883e-01-2.15365758j  2.38068066e-01+2.2807522j
  2.38068066e-01-2.2807522j   2.20065446e+00+0.1142152j
  2.20065446e+00-0.1142152j   1.63952768e+00+1.42688887j
  1.63952768e+00-1.42688887j -3.81618161e-01+2.18519686j
 -3.81618161e-01-2.18519686j -2.24972919e+00+0.51311623j
 -2.24972919e+00-0.51311623j -2.26978107e+00+0.j
  7.85011614e-01+2.03776738j  7.85011614e-01-2.03776738j
  1.82188037e+00+1.10311226j  1.82188037e+00-1.10311226j
  1.91168517e+00+0.78106048j  1.91168517e+00-0.78106048j
 -1.60882452e+00+1.30431942j -1.60882452e+00-1.30431942j
 -1.09851682e-01+1.9475021j  -1.09851682e-01-1.9475021j
  1.05753103e+00+1.66011232j  1.05753103e+00-1.66011232j
 -1.25549113e+00+1.52694411j -1.25549113e+00-1.52694411j
 -1.97838532e+00+0.j         -1.88542774e+00+0.59872839j
 -1.88542774e+00-0.59872839j -1.33263241e+00+1.37157868j
 -1.33263241e+00-1.37157868j -7.36967334e-01+1.60125376j
 -7.36967334e-01-1.60125376j  6.39048729e-01+1.41177228j
  6.39048729e-01-1.41177228j  9.10425745e-01+1.25525695j
  9.10425745e-01-1.25525695j -1.35778758e+00+0.7929235j
 -1.35778758e+00-0.7929235j   6.77416091e-04+1.44598365j
  6.77416091e-04-1.44598365j  4.92219908e-01+1.27440865j
  4.92219908e-01-1.27440865j  1.42014736e+00+0.22864019j
  1.42014736e+00-0.22864019j -7.28334493e-01+1.39320948j
 -7.28334493e-01-1.39320948j  9.23836241e-01+0.75447069j
  9.23836241e-01-0.75447069j  1.24220929e+00+0.3706218j
  1.24220929e+00-0.3706218j   1.01069577e+00+0.j
 -1.21136259e+00+0.79980455j -1.21136259e+00-0.79980455j
 -1.20524066e+00+0.26625581j -1.20524066e+00-0.26625581j
 -6.72563837e-01+0.55390881j -6.72563837e-01-0.55390881j
  5.37305248e-01+0.54768552j  5.37305248e-01-0.54768552j
 -8.32766151e-02+0.72284583j -8.32766151e-02-0.72284583j
  7.19668130e-01+0.j         -5.52877211e-01+0.j
 -2.55014021e-01+0.11555604j -2.55014021e-01-0.11555604j
  4.88654227e-02+0.j          4.26674802e-01+0.j        ]
v:
 [[-0.07096767+0.j         -0.04389969-0.04140018j -0.04389969+0.04140018j
  ...  0.03492436+0.01435462j -0.04411245+0.j
  -0.03392385+0.j        ]
 [-0.06972177+0.j         -0.00126628+0.08321265j -0.00126628-0.08321265j
  ...  0.07258116+0.01517006j -0.06111217+0.j
   0.0476217 +0.j        ]
 [-0.07377892+0.j          0.08453892+0.00017358j  0.08453892-0.00017358j
  ...  0.06239748+0.04125062j -0.06051142+0.j
  -0.03343693+0.j        ]
 ...
 [-0.06513561+0.j         -0.01477797-0.04624721j -0.01477797+0.04624721j
  ... -0.02565731+0.00520387j  0.01046171+0.j
   0.00791768+0.j        ]
 [-0.07458309+0.j          0.00066013-0.09091077j  0.00066013+0.09091077j
  ...  0.06094749+0.021501j   -0.16036246+0.j
   0.01406385+0.j        ]
 [-0.07271759+0.j         -0.09772287-0.04701814j -0.09772287+0.04701814j
  ...  0.04478089-0.00391117j -0.09898911+0.j
   0.02863318+0.j        ]]
n:  476 p:  0.4199509866605583 largest:  199.89666965042576 199.97480704979378
n:  512 p:  0.6294257894132946 largest:  322.26600417960685 323.18761921882435
n:  313 p:  0.6676168967659004 largest:  208.96408868772684 209.16666814939023
n:  229 p:  0.21735998834337267 largest:  49.77543733063234 50.96875441907598
n:  356 p:  0.0814492390624707 largest:  28.99592910623957 29.873689878470337
n:  316 p:  0.38583821013948105 largest:  121.92487440407601 122.87046409333433
n:  549 p:  0.7360906459827864 largest:  404.11376464454975 404.2183051057804
n:  260 p:  0.8102961984562087 largest:  210.67701159861426 211.09395706605434
n:  570 p:  0.5521359753613532 largest:  314.7175059559713 315.138251741639
n:  592 p:  0.8246712550241941 largest:  488.2053829743229 487.75664685491245
[[-0.3169858   1.31508159  1.03055188 -1.53512253  0.30338934]
 [-0.32090681  0.62760445 -0.51129639  0.82698868 -0.14111862]
 [-0.42255256 -0.34763146  0.65547679 -1.18134221 -1.37472535]
 [ 0.06985629 -1.53297786 -1.31236654  0.45726494 -0.23624176]
 [-0.80582088 -0.73231382 -0.70437792  0.01142209  0.3181078 ]]
[[-0.8169858   0.81508159  0.53055188 -2.03512253 -0.19661066]
 [-0.82090681  0.12760445 -1.01129639  0.32698868 -0.64111862]
 [-0.92255256 -0.84763146  0.15547679 -1.68134221 -1.87472535]
 [-0.43014371 -2.03297786 -1.81236654 -0.04273506 -0.73624176]
 [-1.30582088 -1.23231382 -1.20437792 -0.48857791 -0.1818922 ]]
0.45726494372827353

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值