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

# Integration Problems

Provides 23 functions for multidimensional integration.
(2451 downloads for this version - 11515 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
Category
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")`
Report a bug
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)
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
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.