Scilab Home Page | Wiki | Bug Tracker | Forge | Mailing List Archives | Scilab Online Help | File Exchange
ATOMS : Integration Problems details
Login with GitLab

Integration Problems

Provides 23 functions for multidimensional integration.
(2477 downloads for this version - 11707 downloads for all versions)
Details
Version
0.2
A more recent valid version exists: 0.4.1
Authors
Michael Baudin - Digiteo
John Burkardt
Alan Genz
Owner Organization
Digiteo
Maintainers
Allan CORNET
Michael BAUDIN
License
Dependency
Creation Date
November 18, 2010
Source created on
Scilab 5.2.x
Binaries available on
Scilab 5.2.x:
Windows 64-bit Windows 32-bit Linux 64-bit Linux 32-bit macOS
Install command
--> atomsInstall("intprbs")
Description
            Purpose
-------

The goal of this toolbox is to provide integration test problems
in order to test integration algorithms.
This allows to test integration algorithms on a larger base of 
functions.
Developping these functions is error-prone, so that using this 
module allows to save much time.
Moreover, testing an algorithm leads to the difficulty 
of chosing a set of test functions.
But all functions are not equally difficult to integrate; 
while some are simple, other might be particularily difficult,
leading to poor results. 
Comparing two algorithms, each on a different set of functions 
will not lead to an accurate view of the algorithm.
This module allows to compare the algorithms more precisely.

In spirit, this module has the same motivations as the Unconstrained 
Optimization Scilab toolbox based on the More, Garbow and Hillstrom 
collection of functions.

A manual, available in pdf, is provided in the doc directory
of this module.
It provides a detailed analysis of each function and references
where each function is used or analysed.

This module depends on the apifun module.

Overview
--------

The module currently provides 23 functions :

No.    file            n    Name
---    ----            -    ----
#  1.  SUM             (10) Sum of X  
#  2.  SQSUM           (10) Sum of Squares
#  3.  SUMSQROOT       (10) Sum of Square Roots
#  4.  PRODONES        (10) Product of Signed Ones
#  5.  PRODEXP         (10) Product of Exponentials
#  6.  PRODCUB         (10) Product of Cubes
#  7.  PRODX           (10) Product of X
#  8.  SUMFIFJ         (10) Sum of fi fj
#  9.  SUMF1FJ         (10) Sum of f1 fj
# 10.  HELLEKALEK      (10) Hellekalek
# 11.  ROOSARNOLD1     (10) Roos and Arnold 1
# 12.  ROOSARNOLD2     (10) Roos and Arnold 2
# 13.  ROOSARNOLD3     (10) Roos and Arnold 3
# 14.  RST1            (10) Radovic, Sobol, Tichy (aj=1)
# 15.  RST2            (10) Radovic, Sobol, Tichy (aj=j)
# 16.  RST3            (10) Radovic, Sobol, Tichy (aj=j^2)
# 17.  SOBOLPROD       (10) Sobol Product
# 18.  OSCILL          (6)  Genz - Oscillatory
# 19.  PRPEAK          (6)  Genz - Product Peak
# 20.  CORPEAK         (6)  Genz - Corner Peak
# 21.  GAUSSIAN        (6)  Genz - Gaussian
# 22.  C0              (6)  Genz - C0 
# 23.  DISCONT         (6)  Genz - Discontinuous

Features
---------

The following is a list of functions of the module.

 * intprb_getexpect : Returns the expectation of the problem.
 * intprb_getfcn : Returns the function value.
 * intprb_getname : Returns the name.
 * intprb_getproblems : Lists the problems.
 * intprb_getsetup : Returns the parameters of the problem.
 * intprb_getvariance : Compute the variance.
 * intprb_getvarprbs : Returns the array of problems with variable n.
 * Integration Algorithms
   * intprb_crudeld : Estimates a multidimensional integral using a Low
Discrepancy sequence.
   * intprb_crudemc : Estimates a multidimensional integral using Monte Carlo.
   * intprb_getcrudeld : Uses a crude Quasi Monte-Carlo to estimate the
integral.
   * intprb_getcrudemc : Uses a crude Monte-Carlo to estimate the integral.
   * intprb_montecarlo : Estimates a multidimensional integral using iterated
Monte Carlo.
 * Support Functions
   * intprb_contour : Draws a 2D contour of the function.
   * intprb_ldgen : Returns uniform numbers from a low discrepancy sequence.
   * intprb_muvblockupdate : Update the mean and the variance of x, given the
mean and the value of disjoint parts of x.
   * intprb_muvstepstart : Returns the starting values for the step-by-step
(mean,variance) computation.
   * intprb_muvstepstop : Finish the computation of the step-by-step
(mean,variance) computation.
   * intprb_muvstepupdate : Update values for the step-by-step (mean,variance)
computation.
   * intprb_shragerandom : A portable random number generator by Schrage.
   * intprb_tuplenext : Computes the next element of a tuple space.

References
----------

 * "Integration Test Problems User's Manual", Michael Baudin, 2010.
 * "Computational investigations of low-discrepancy sequences", Kocis, L. and
Whiten, W. J. 1997. ACM Trans. Math. Softw. 23, 2 (Jun. 1997), 266-294.
 * "Quadrature Rule Applied to Test Integrals", http://people.sc.fsu.edu/~jburkardt/m_src/quadrature_test/quadrature_test.html,
John Burkardt, 2007
 * "Testing Multidimensional Integration Routines", http://people.sc.fsu.edu/~jburkardt/m_src/testpack/testpack.html,
John Burkardt, 2007
 * "Multi-dimensional Integration Test Functions", http://people.sc.fsu.edu/~jburkardt/m_src/test_nint/test_nint.html,
John Burkardt, 2007
 * "Testpack", http://www.math.wsu.edu/faculty/genz/software/fort77/testpack.f,
Alan Genz, 1987

Authors
-------

 * 2010, Michael Baudin
 * 2007, John Burkardt
 * 1987, Alan Genz

            
Files (2)
[1.74 MB]
Source code archive

[1.84 MB]
OS-independent binary for Scilab 5.2.x
Binary version
Automatically generated by the ATOMS compilation chain

News (0)
Comments (2)     Leave a comment 
Comment from Michael BAUDIN -- January 24, 2012, 11:28:25 PM    
This is the changelog for the v0.2.

intprb (0.2)
 * Removed the internal apifun functions from the public API.
 * Updated the readme.txt.
 * Updated the help builder script.
 * Updated the startup script.
 * Used apifun and more consistently.
 * Improved managemend of callbacks.
Comment from Michael BAUDIN -- January 24, 2012, 11:48:00 PM    
The intprbs module v0.2 is correctly packaged in ATOMS.

In order to make the v0.2 fully functionnal, the lowdisc module should be installed 
manually :

atomsInstall("lowdisc")

then restart Scilab.

Once done, most tests pass in Scilab 5.3.3.

-->atomsTest('intprbs')
   TMPDIR = C:\DOCUME~1\Root\LOCALS~1\Temp\SCI_TMP_6032_
   001/020 - [SCI\contrib\intprbs\0.2-1] all.......................failed  : dia and ref 
are not equal 
   002/020 - [SCI\contrib\intprbs\0.2-1] contour...................passed 
   003/020 - [SCI\contrib\intprbs\0.2-1] crudeld...................passed 
   004/020 - [SCI\contrib\intprbs\0.2-1] crudemc...................passed 
   005/020 - [SCI\contrib\intprbs\0.2-1] getcrudeld................passed 
   006/020 - [SCI\contrib\intprbs\0.2-1] getcrudemc................passed 
   007/020 - [SCI\contrib\intprbs\0.2-1] getexpect.................passed 
   008/020 - [SCI\contrib\intprbs\0.2-1] getfcn....................passed 
   009/020 - [SCI\contrib\intprbs\0.2-1] getfunc...................passed 
   010/020 - [SCI\contrib\intprbs\0.2-1] getname...................passed 
   011/020 - [SCI\contrib\intprbs\0.2-1] getproblems...............passed 
   012/020 - [SCI\contrib\intprbs\0.2-1] getsetup..................passed 
   013/020 - [SCI\contrib\intprbs\0.2-1] getvariance...............passed 
   014/020 - [SCI\contrib\intprbs\0.2-1] getvarprbs................passed 
   015/020 - [SCI\contrib\intprbs\0.2-1] ldgen.....................passed 
   016/020 - [SCI\contrib\intprbs\0.2-1] montecarlo................passed 
   017/020 - [SCI\contrib\intprbs\0.2-1] muvblock..................passed 
   018/020 - [SCI\contrib\intprbs\0.2-1] muvstep...................passed 
   019/020 - [SCI\contrib\intprbs\0.2-1] shragerandom..............passed 
   020/020 - [SCI\contrib\intprbs\0.2-1] tuplenext.................passed 

The failing test in "all.tst" indicates a warning in intprb_c0, intprb_gaussian,

intprb_prpeak, intprb_corpeak and intprb_oscill. This is because of a conflict in the 
variable name pbeta from Stixbox. This bug will be fixed in the next version.

Leave a comment
You must register and log in before leaving a comment.
Login with GitLab
Email notifications
Send me email when this toolbox has changes, new files or a new release.
You must register and log in before setting up notifications.