def test_eig_dyn(): v = 0 for i in xrange(5): n = 1 + int(mp.rand() * 5) if mp.rand() > 0.5: # real A = 2 * mp.randmatrix(n, n) - 1 if mp.rand() > 0.5: A *= 10 for x in xrange(n): for y in xrange(n): A[x, y] = int(A[x, y]) else: A = (2 * mp.randmatrix(n, n) - 1) + 1j * (2 * mp.randmatrix(n, n) - 1) if mp.rand() > 0.5: A *= 10 for x in xrange(n): for y in xrange(n): A[x, y] = int(mp.re(A[x, y])) + 1j * int(mp.im(A[x, y])) run_hessenberg(A, verbose=v) run_schur(A, verbose=v) run_eig(A, verbose=v)
def test_eighe_randmatrix(): N = 5 for a in xrange(10): A = (2 * mp.randmatrix(N, N) - 1) + 1j * (2 * mp.randmatrix(N, N) - 1) for i in xrange(0, N): A[i,i] = mp.re(A[i,i]) for j in xrange(i + 1, N): A[j,i] = mp.conj(A[i,j]) run_eighe(A)
def test_eighe_randmatrix(): N = 5 for a in xrange(10): A = (2 * mp.randmatrix(N, N) - 1) + 1j * (2 * mp.randmatrix(N, N) - 1) for i in xrange(0, N): A[i, i] = mp.re(A[i, i]) for j in xrange(i + 1, N): A[j, i] = mp.conj(A[i, j]) run_eighe(A)
def test_svd_c_rand(): for i in xrange(5): full = mp.rand() > 0.5 m = 1 + int(mp.rand() * 10) n = 1 + int(mp.rand() * 10) A = (2 * mp.randmatrix(m, n) - 1) + 1j * (2 * mp.randmatrix(m, n) - 1) if mp.rand() > 0.5: A *= 10 for x in xrange(m): for y in xrange(n): A[x, y] = int(mp.re(A[x, y])) + 1j * int(mp.im(A[x, y])) run_svd_c(A, full_matrices=full, verbose=False)
def test_svd_c_rand(): for i in xrange(5): full = mp.rand() > 0.5 m = 1 + int(mp.rand() * 10) n = 1 + int(mp.rand() * 10) A = (2 * mp.randmatrix(m, n) - 1) + 1j * (2 * mp.randmatrix(m, n) - 1) if mp.rand() > 0.5: A *= 10 for x in xrange(m): for y in xrange(n): A[x,y]=int(mp.re(A[x,y])) + 1j * int(mp.im(A[x,y])) run_svd_c(A, full_matrices=full, verbose=False)
def test_gauss_quadrature_dynamic(verbose = False): n = 5 A = mp.randmatrix(2 * n, 1) def F(x): r = 0 for i in xrange(len(A) - 1, -1, -1): r = r * x + A[i] return r def run(qtype, FW, R, alpha = 0, beta = 0): X, W = mp.gauss_quadrature(n, qtype, alpha = alpha, beta = beta) a = 0 for i in xrange(len(X)): a += W[i] * F(X[i]) b = mp.quad(lambda x: FW(x) * F(x), R) c = mp.fabs(a - b) if verbose: print(qtype, c, a, b) assert c < 1e-5 run("legendre", lambda x: 1, [-1, 1]) run("legendre01", lambda x: 1, [0, 1]) run("hermite", lambda x: mp.exp(-x*x), [-mp.inf, mp.inf]) run("laguerre", lambda x: mp.exp(-x), [0, mp.inf]) run("glaguerre", lambda x: mp.sqrt(x)*mp.exp(-x), [0, mp.inf], alpha = 1 / mp.mpf(2)) run("chebyshev1", lambda x: 1/mp.sqrt(1-x*x), [-1, 1]) run("chebyshev2", lambda x: mp.sqrt(1-x*x), [-1, 1]) run("jacobi", lambda x: (1-x)**(1/mp.mpf(3)) * (1+x)**(1/mp.mpf(5)), [-1, 1], alpha = 1 / mp.mpf(3), beta = 1 / mp.mpf(5) )
def test_eigsy_randmatrix(): N = 5 for a in xrange(10): A = 2 * mp.randmatrix(N, N) - 1 for i in xrange(0, N): for j in xrange(i + 1, N): A[j, i] = A[i, j] run_eigsy(A)
def test_eigsy_randmatrix(): N = 5 for a in xrange(10): A = 2 * mp.randmatrix(N, N) - 1 for i in xrange(0, N): for j in xrange(i + 1, N): A[j,i] = A[i,j] run_eigsy(A)
def test_svd_r_rand(): for i in xrange(5): full = mp.rand() > 0.5 m = 1 + int(mp.rand() * 10) n = 1 + int(mp.rand() * 10) A = 2 * mp.randmatrix(m, n) - 1 if mp.rand() > 0.5: A *= 10 for x in xrange(m): for y in xrange(n): A[x, y] = int(A[x, y]) run_svd_r(A, full_matrices=full, verbose=False)
def test_svd_r_rand(): for i in xrange(5): full = mp.rand() > 0.5 m = 1 + int(mp.rand() * 10) n = 1 + int(mp.rand() * 10) A = 2 * mp.randmatrix(m, n) - 1 if mp.rand() > 0.5: A *= 10 for x in xrange(m): for y in xrange(n): A[x,y]=int(A[x,y]) run_svd_r(A, full_matrices = full, verbose = False)
def test_eig_dyn(): v = 0 for i in xrange(5): n = 1 + int(mp.rand() * 5) if mp.rand() > 0.5: # real A = 2 * mp.randmatrix(n, n) - 1 if mp.rand() > 0.5: A *= 10 for x in xrange(n): for y in xrange(n): A[x,y] = int(A[x,y]) else: A = (2 * mp.randmatrix(n, n) - 1) + 1j * (2 * mp.randmatrix(n, n) - 1) if mp.rand() > 0.5: A *= 10 for x in xrange(n): for y in xrange(n): A[x,y] = int(mp.re(A[x,y])) + 1j * int(mp.im(A[x,y])) run_hessenberg(A, verbose = v) run_schur(A, verbose = v) run_eig(A, verbose = v)
def test(): PF1,PF2 = mp.matrix(2, 1) J1,J2 = mp.randmatrix(2,1)+1j*mp.randmatrix(2,1) j1,j2 = mp.exp(-J1),mp.exp(-J2) basis = spin_basis(3) for i in range(len(basis)): Z1,Z2,Z3 = basis[i] PF1 += mp.exp(J1*Z1*Z2+J2*Z2*Z3) jp,dF = L_transform(j1,j2) Jp = -mp.log(jp) basis = spin_basis(2) for i in range(len(basis)): Z1,Z2 = basis[i] PF2 += mp.exp(dF+Jp*Z1*Z2) print("--------------------------------------") print("L-transform test:") print("Original: ", PF1) print("Renormalized:", PF2) print("--------------------------------------") PF1,PF2 = mp.matrix(2, 1) J0,J1,J2,J3 = mp.randmatrix(4,1)+1j*mp.randmatrix(4,1) j0,j1,j2,j3 = mp.exp(-J0),mp.exp(-J1),mp.exp(-J2),mp.exp(-J3) j1p,j2p,j3p,dF = Y_transform(j0,j1,j2,j3) J1p,J2p,J3p = -mp.log(j1p),-mp.log(j2p),-mp.log(j3p) basis = spin_basis(4) for i in range(len(basis)): Z1,Z2,Z3,Z4 = basis[i] PF1 += mp.exp(J0*Z1*Z2+J1*Z1*Z3+J2*Z2*Z3+J3*Z3*Z4) PF2 += mp.exp(dF+J1p*Z1*Z3+J2p*Z2*Z3+J3p*Z3*Z4) print("--------------------------------------") print("Y-transform test:") print("Original: ", PF1) print("Renormalized:", PF2) print("--------------------------------------") PF1,PF2 = mp.matrix(2, 1) J0,J1,J2 = mp.randmatrix(3,1)+1j*mp.randmatrix(3,1) j0,j1,j2 = mp.exp(-J0),mp.exp(-J1),mp.exp(-J2) j1p,j2p,dF = D_transform(j0,j1,j2) J1p,J2p = -mp.log(j1p),-mp.log(j2p) basis = spin_basis(3) for i in range(len(basis)): Z1,Z2,Z3 = basis[i] PF1 += mp.exp(J0*Z1*Z2+J1*Z1*Z3+J2*Z2*Z3) PF2 += mp.exp(dF+J1p*Z1*Z3+J2p*Z2*Z3) print("--------------------------------------") print("D-transform test:") print("Original: ", PF1) print("Renormalized:", PF2) print("--------------------------------------") #------------------------------------------------------------------------------ PF1,PF2 = mp.matrix(2, 1) J0,J1,J2,J3,J4 = mp.randmatrix(5,1)+1j*mp.randmatrix(5,1) J1=0 j0,j1,j2,j3,j4 = mp.exp(-J0),mp.exp(-J1),mp.exp(-J2),mp.exp(-J3),mp.exp(-J4) j1p,j2p,j3p,j4p,j5p,dF = X_transform(j0,j1,j2,j3,j4) J1p,J2p,J3p,J4p,J5p = -mp.log(j1p),-mp.log(j2p),-mp.log(j3p),-mp.log(j4p),-mp.log(j5p) basis = spin_basis(5) for i in range(len(basis)): Z1,Z2,Z3,Z4,Z5 = basis[i] PF1 += mp.exp(J0*Z1*Z2+J1*Z1*Z3+J2*Z2*Z3+J3*Z3*Z5+J4*Z3*Z4) PF2 += mp.exp(dF+J1p*Z1*Z3+J2p*Z2*Z3+J3p*Z3*Z5+J4p*Z3*Z4+J5p*Z4*Z5) print("--------------------------------------") print("X-transform test:") print("Original: ", PF1) print("Renormalized:", PF2) print("--------------------------------------") return 0
# reajuste 0 d0 = np.identity(100) d0[d0 == 1.0] = abs(-0.00000062521499573893501604735293439538) d2 = mp.matrix(d0) BBT1 = BBT0 + d2 E1 = mp.eig(BBT1, left=False, right=False) E1 = mp.eig_sort(E1) # choslesky B0 = mp.cholesky(BBT0) B1 = mp.cholesky(BBT1) # el modelo x_ant = Feb_80W.T[0, :].T x0 = x_ant - M_Feb alea = mp.randmatrix(100, 1) med_sim = M_Mar mes_sim = ((A * x0) + (B1 * alea)) + med_sim s0 = mp.chop(BBT0 - B1 * B1.H) s1 = mp.chop(BBT1 - B1 * B1.H) Z_ant = np.array(x_ant, dtype=float) Z_sim = np.array(mes_sim, dtype=float) SK = st.ks_2samp(Z_ant, Z_sim) # funciones def parametros(Y, X): M0_act = ((Y * Y.T) / 100)