This file is indexed.

/usr/include/openturns/swig/QuadraticLeastSquares_doc.i is in libopenturns-dev 1.7-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
%feature("docstring") OT::QuadraticLeastSquares
"Second order polynomial response surface by least squares.

Available constructors:
    QuadraticLeastSquares(*dataIn, function*)

    QuadraticLeastSquares(*dataIn, dataOut*)

Parameters
----------
dataIn : 2-d sequence of float
    Input data.
function : :class:`~openturns.NumericalMathFunction`
    Function :math:`h` to be approximated.
dataOut : 2-d sequence of float
    Output data. If not specified, this sample is computed such as:
    :math:`dataOut = h(dataIn)`.

Notes
-----
Instead of replacing the model response :math:`h(\\\\vect{x})` for a *local*
approximation around a given set :math:`\\\\vect{x}_0` of input parameters as in
Taylor approximations, one may seek a *global* approximation of
:math:`h(\\\\vect{x})` over its whole domain of definition. A common choice to
this end is global polynomial approximation.

We consider here a global approximation of the model response using  a
quadratic function:

.. math::

    \\\\vect{y} \\\\, \\\\approx \\\\, \\\\widehat{h}(\\\\vect{x}) \\\\,
                      = \\\\, \\\\sum_{j=0}^{P-1} \\\\; a_j \\\\; \\\\psi_j(\\\\vect{x})

where :math:`P = 1+2n_X +n_X (n_X -1)/2` denotes the number of terms,
:math:`(a_j  \\\\, , \\\\, j=0, \\\\cdots,P-1)` is a set of unknown coefficients and the
family :math:`(\\\\psi_j,j=0,\\\\cdots, P-1)` gathers the constant monomial :math:`1`,
the monomials of degree one :math:`x_i`, the cross-terms :math:`x_i x_j` as
well as the monomials of degree two :math:`x_i^2`. Using the vector notation
:math:`\\\\vect{a} \\\\, = \\\\, (a_{0} , \\\\cdots , a_{P-1} )^{\\\\textsf{T}}` and
:math:`\\\\vect{\\\\psi}(\\\\vect{x}) \\\\, = \\\\, (\\\\psi_0(\\\\vect{x}), \\\\cdots, \\\\psi_{P-1}(\\\\vect{x}) )^{\\\\textsf{T}}`,
this rewrites:

.. math::

    \\\\vect{y} \\\\, \\\\approx \\\\, \\\\widehat{h}(\\\\vect{x}) \\\\,
                      = \\\\, \\\\vect{a}^{\\\\textsf{T}} \\\\; \\\\vect{\\\\psi}(\\\\vect{x})

A *global* approximation of the model response over its whole definition domain
is sought. To this end, the coefficients :math:`a_j` may be computed using a
least squares regression approach. In this context, an experimental design
:math:`\\\\vect{\\\\cX} =(x^{(1)},\\\\cdots,x^{(N)})`, i.e. a set of realizations of
input parameters is required, as well as the corresponding model evaluations
:math:`\\\\vect{\\\\cY} =(y^{(1)},\\\\cdots,y^{(N)})`.

The following minimization problem has to be solved:

.. math::

    \\\\mbox{Find} \\\\quad \\\\widehat{\\\\vect{a}} \\\\quad \\\\mbox{that minimizes}
      \\\\quad \\\\cJ(\\\\vect{a}) \\\\, = \\\\, \\\\sum_{i=1}^N \\\\;
                                \\\\left(
                                y^{(i)} \\\\; - \\\\;
                                \\\\vect{a}^{\\\\textsf{T}} \\\\vect{\\\\psi}(\\\\vect{x}^{(i)})
                                \\\\right)^2

The solution is given by:

.. math::

    \\\\widehat{\\\\vect{a}} \\\\, = \\\\, \\\\left(
                               \\\\vect{\\\\vect{\\\\Psi}}^{\\\\textsf{T}} \\\\vect{\\\\vect{\\\\Psi}}
                               \\\\right)^{-1} \\\\;
                               \\\\vect{\\\\vect{\\\\Psi}}^{\\\\textsf{T}}  \\\\; \\\\vect{\\\\cY}

where:

.. math::

    \\\\vect{\\\\vect{\\\\Psi}} \\\\, = \\\\, (\\\\psi_{j}(\\\\vect{x}^{(i)}) \\\\; , \\\\; i=1,\\\\cdots,N \\\\; , \\\\; j = 0,\\\\cdots,n_X)

See also
--------
LinearLeastSquares, LinearTaylor, QuadraticTaylor

Examples
--------
>>> import openturns as ot
>>> formulas = ['x1 * sin(x2)', 'cos(x1 + x2)', '(x2 + 1) * exp(x1 - 2 * x2)']
>>> myFunc = ot.NumericalMathFunction(['x1', 'x2'], ['y1', 'y2', 'y3'], formulas)
>>> data  = [[0.5,0.5], [-0.5,-0.5], [-0.5,0.5], [0.5,-0.5]]
>>> data += [[0.25,0.25], [-0.25,-0.25], [-0.25,0.25], [0.25,-0.25]]
>>> myLeastSquares = ot.QuadraticLeastSquares(data, myFunc)
>>> myLeastSquares.run()
>>> responseSurface = myLeastSquares.getResponseSurface()
>>> print(responseSurface([0.1,0.1]))
[0.00960661,0.976781,1.0138]"

// ---------------------------------------------------------------------

%feature("docstring") OT::QuadraticLeastSquares::getDataIn
"Get the input data.

Returns
-------
dataIn : :class:`~openturns.NumericalSample`
    Input data."

// ---------------------------------------------------------------------

%feature("docstring") OT::QuadraticLeastSquares::getConstant
"Get the constant vector of the approximation.

Returns
-------
constantVector : :class:`~openturns.NumericalPoint`
    Constant vector of the approximation, equal to :math:`a_0`."

// ---------------------------------------------------------------------

%feature("docstring") OT::QuadraticLeastSquares::getDataOut
"Get the output data.

Returns
-------
dataOut : :class:`~openturns.NumericalSample`
    Output data. If not specified in the constructor, the sample is computed
    such as: :math:`dataOut = h(dataIn)`."

// ---------------------------------------------------------------------

%feature("docstring") OT::QuadraticLeastSquares::setDataOut
"Set the output data.

Parameters
----------
dataOut : 2-d sequence of float
    Output data."

// ---------------------------------------------------------------------

%feature("docstring") OT::QuadraticLeastSquares::getInputFunction
"Get the function.

Returns
-------
function : :class:`~openturns.NumericalMathFunction`
    Function :math:`h` to be approximated."

// ---------------------------------------------------------------------

%feature("docstring") OT::QuadraticLeastSquares::getLinear
"Get the linear matrix of the approximation.

Returns
-------
linearMatrix : :class:`~openturns.Matrix`
    Linear matrix of the approximation of the function :math:`h`."

// ---------------------------------------------------------------------

%feature("docstring") OT::QuadraticLeastSquares::getQuadratic
"Get the quadratic term of the approximation.

Returns
-------
tensor : :class:`~openturns.SymmetricTensor`
    Quadratic term of the approximation of the function :math:`h`."

// ---------------------------------------------------------------------

%feature("docstring") OT::QuadraticLeastSquares::getResponseSurface
"Get an approximation of the function.

Returns
-------
approximation : :class:`~openturns.NumericalMathFunction`
    An approximation of the function :math:`h` by Quadratic Least Squares."

// ---------------------------------------------------------------------

%feature("docstring") OT::QuadraticLeastSquares::run
"Perform the least squares approximation."