ot.SoizeGhanemFactory(ot.ComposedDistribution(marginals, copula), False), ot.SoizeGhanemFactory(ot.ComposedDistribution(marginals, copula), True) ] x = [0.5] * 2 kMax = 5 ot.ResourceMap.SetAsUnsignedInteger("IteratedQuadrature-MaximumSubIntervals", 2048) ot.ResourceMap.SetAsScalar("IteratedQuadrature-MaximumError", 1.0e-6) for soize in factories: distribution = soize.getMeasure() print('SoizeGhanem=', soize) functions = list() for k in range(kMax): functions.append(soize.build(k)) print('SoizeGhanem(', k, ')=', functions[k].getEvaluation()) print('SoizeGhanem(', k, ')(', x, '=', functions[k](x)) M = ot.SymmetricMatrix(kMax) for m in range(kMax): for n in range(m + 1): def wrapper(x): return functions[m](x) * functions[n]( x)[0] * distribution.computePDF(x) kernel = ot.PythonFunction(distribution.getDimension(), 1, wrapper) value = ot.IteratedQuadrature().integrate( kernel, distribution.getRange())[0] if abs(value) >= 1.0e-6: M[m, n] = value print('M=\n', M)
print("isSPD=", isSPD) matrix2 = matrix1.computeCholesky() print("matrix2=" + repr(matrix2)) b = ot.Matrix(2, 3) b[0, 0] = 5.0 b[1, 0] = 0.0 b[0, 1] = 10.0 b[1, 1] = 1.0 b[0, 2] = 15.0 b[1, 2] = 2.0 result2 = matrix1.solveLinearSystem(b, True) print("result2=" + repr(result2)) matrix3 = ot.CovarianceMatrix(3) matrix3[1, 0] = float('nan') try: print("ev=", matrix3.computeSingularValues()) except: print("ok") # from SymmetricMatrix sym = ot.SymmetricMatrix(3) sym[0, 0] = 1.0e-02 sym[1, 1] = 1.0e-02 sym[2, 2] = 1.0e-02 sym[0, 1] = 7.0e-04 ot.CovarianceMatrix(sym) print("ok")
ot.Beta(0.5, 1.0, -2.0, 3.0), ot.Gamma(1.0, 3.0), ot.Arcsine() ] for n in range(len(distributionCollection)): distribution = distributionCollection[n] name = distribution.getClassName() polynomialFactory = ot.StandardDistributionPolynomialFactory( ot.AdaptiveStieltjesAlgorithm(distribution)) print("polynomialFactory(", name, "=", polynomialFactory, ")") for i in range(iMax): print(name, " polynomial(", i, ")=", clean(polynomialFactory.build(i))) roots = polynomialFactory.getRoots(iMax - 1) print(name, " polynomial(", iMax - 1, ") roots=", roots) nodes, weights = polynomialFactory.getNodesAndWeights(iMax - 1) print(name, " polynomial(", iMax - 1, ") nodes=", nodes, " and weights=", weights) M = ot.SymmetricMatrix(iMax) for i in range(iMax): pI = polynomialFactory.build(i) for j in range(i + 1): pJ = polynomialFactory.build(j) def kernel(x): return [pI(x[0]) * pJ(x[0]) * distribution.computePDF(x)] M[i, j] = ot.GaussKronrod().integrate(ot.PythonFunction(1, 1, kernel), distribution.getRange())[0] print("M=\n", M.clean(1.0e-6))
#! /usr/bin/env python import openturns as ot ref_values = [[1.0, 0.0], [0.0, 0.5]] mats = [ot.Matrix(ref_values), ot.SquareMatrix(ref_values), ot.TriangularMatrix(ref_values), ot.SymmetricMatrix(ref_values), ot.CovarianceMatrix(ref_values), ot.CorrelationMatrix(ref_values)] mats.extend([ ot.ComplexMatrix(ref_values), ot.HermitianMatrix(ref_values), ot.TriangularComplexMatrix(ref_values), ot.SquareComplexMatrix(ref_values)]) for a in mats: # try conversion ref = ot.Matrix([[1.0, 0.0], [0.0, 0.5]]) iname = a.__class__.__name__ print('a=', a) # try scalar mul try: s = 5. ats = a * s print('a*s=', ats) sta = s * a
print(sample.getDescription()) sample.setDescription(('y0', 'y1', 'y2')) print(sample.getDescription()) sample.setDescription(np.array(('z0', 'z1', 'z2'))) print(sample.getDescription()) # Check Matrix tuple constructor t0 = (1., 2., 3., 4.) m0 = ot.Matrix(2, 2, t0) print("tuple", t0, "=> Matrix", m0) m0 = ot.SquareMatrix(2, t0) print("tuple", t0, "=> SquareMatrix", m0) m0 = ot.SymmetricMatrix(2, t0) print("tuple", t0, "=> SymmetricMatrix", m0) m0 = ot.Tensor(2, 2, 1, t0) print("tuple", t0, "=> Tensor", m0) m0 = ot.SymmetricTensor(2, 1, t0) print("tuple", t0, "=> SymmetricTensor", m0) m0 = ot.CorrelationMatrix(2, t0) print("tuple", t0, "=> CorrelationMatrix", m0) m0 = ot.CovarianceMatrix(2, t0) print("tuple", t0, "=> CovarianceMatrix", m0) t0c = (1. + 3.j, 2. - 5.j, 3. + 7.j, 4. - 9.j)