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")
예제 #3
0
    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))
예제 #4
0
#! /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
예제 #5
0
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)