"""

#! /usr/bin/env python

from __future__ import print_function
import openturns as ot
from gsobollib import (gsobolSAExact, gsobolDistribution, gsobol)
import numpy as np
import pylab as pl
import openturns.viewer as otv

a = np.array([0, 9, 99])
d = len(a)

# Distribution uniforme associée au cas-test GSobol
distribution = gsobolDistribution(d)

# Indices de sensibilité exacts
[muexact, vexact, sexact, stexact] = gsobolSAExact(a)

# Taille du plan d'expérience de base pour estimer S et ST
sampleSize = 1000

# Nombre de répétition de l'expérience
nrepetitions = 500

# Estimations des indices du premier ordre
sampleFirstMartinez = ot.Sample(nrepetitions, 3)

# Estimations des indices totaux
sampleTotalMartinez = ot.Sample(nrepetitions, 3)
예제 #2
0
    #########################################
    # Sizes of simulation
    n_loops = 10
    list_sampleSize = np.logspace(1, 5,
                                  n_loops)  # n_loops valeurs de 1e1 à 1e5

    ref_sampleSize = 4e5
    ref_nrepetitions = 1000

    ################################################################################
    #################                  GSOBOL                  #####################
    ################################################################################

    a = array([0, 9, 99])
    # Distribution uniforme associée au cas-test GSobol
    distribution_gsobol = gsobolDistribution(len(a))
    model_gsobol = ot.PythonFunction(len(a),
                                     1,
                                     func_sample=lambda X: gsobol(X, a))
    model_gsobol.setName("G-Sobol")

    # Saltelli
    runConvergence(model_gsobol, distribution_gsobol,
                   SaltelliSensitivityAlgorithm, list_sampleSize,
                   ref_sampleSize, ref_nrepetitions)

    # Jansen
    runConvergence(model_gsobol, distribution_gsobol,
                   JansenSensitivityAlgorithm, list_sampleSize, ref_sampleSize,
                   ref_nrepetitions)