Non Intrusive Spectral Projection Toolbox


This module allows to perform sensitivity analysis. This is the analysis of the uncertainty in the output of a given model, depending on the uncertainty in its inputs.

The analysis is based on chaos polynomials, which are orthogonal polynomials which are used as an approximation of the original model. Once the coefficients of the chaos polynomial are computed, the associated sensitivity indices are straightforward to get.

This toolbox has been created in the context of the OPUS project :

within the workpackage 2.1.1 "Construction de méta-modèles". This project has received funding (2008-2011) by Agence Nationale de la recherche :

See in the help provided in the help/en_US directory of the toolbox for more information about its use. Use cases are presented in the demos directory.


Main Features:

  • randvar:
    • Manage various types of random variables
    • uniform, normal, exponential, log-normal, log-uniform
  • setrandvar:
    • Manage various sampling methods for sets of random variables
    • Monte-Carlo, Sobol Quasi-Random, Latin Hypercube Sampling, LHS Max Min sampling, and various samplings based on Smolyak Cubature points.
  • polychaos:
    • Manage polynomial chaos expansion and get specific outputs
    • mean, variance, sensitivity indices, quantiles, Wilks quantiles, correlation, etc...
    • Generate a stand-alone C source code which computes the output of the polynomial chaos expansion.


  • nisp_theory — Introduction to PC decomposition.
  • setrandvar_tutorial — A tutorial for the designs from setrandvar.

Configuration Functions:

  • nisp_destroyall : Destroy all current objects.
  • nisp_getpath : Returns the path to the current module.
  • nisp_initseed : Sets the seed of the uniform random number generator.
  • nisp_printall : Prints all current objects.
  • nisp_shutdown : Shuts down the NISP toolbox.
  • nisp_startup : Starts up the NISP toolbox.
  • nisp_verboselevelget : Returns the current verbose level.
  • nisp_verboselevelset : Sets the current verbose level.

Sensitivity Analysis

  • nisp_bruteforcesa : Compute sensitivity indices by brute force.
  • nisp_plotsa : Plot sensitivity indices.
  • nisp_sobolsaAll : Compute sensitivity indices by Sobol, Ishigami, Homma.
  • nisp_sobolsaFirst : Compute sensitivity indices by Sobol, Ishigami, Homma.
  • nisp_sobolsaTotal : Compute sensitivity indices by Sobol, Ishigami, Homma.
  • nisp_srcsa : Compute SRC sensitivity indices.

Test functions:

  • nisp_ishigami : Returns the Ishigami function.
  • nisp_ishigamisa : Exact sensitivity analysis for the Ishigami function
  • nisp_product : Returns the value of the Product function
  • nisp_productsa : Exact sensitivity analysis for the Product function
  • nisp_sum : Returns the value of the Product function
  • nisp_sumsa : Returns the sensitivity indices of the Sum function


  • This module depends on Scilab (>=v5.4).
  • This module depends on the apifun module (>=0.2).
  • This module depends on the specfun module (>=0.4).
  • This module depends on the distfun module (>=0.7).
  • This module depends on the stixbox module (>=2.2).


  • Copyright (C) 2012-2014 - Michael Baudin
  • Copyright (C) 2008-2011 - Jean-Marc Martinez - CEA
  • Copyright (C) 2008-2011 - INRIA - Michael Baudin
  • Copyright (C) 2004-2006 - John Burkardt
  • Copyright (C) 2000-2001 - Knut Petras
  • Copyright (C) 2002 - Chong Gu




  • Paul Beaucaire
  • Allan Cornet


This toolbox is released under the terms of the GNU Lesser General Public License license :

Development Team
Vincent Couvert
Michael Baudin
Happy Crew
Sylvain Genin
Abdoulaye Diop

Powered by InDefero,
a Céondo Ltd initiative.