Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 3/22/2024
Public
Document Table of Contents

?trnlspbc_solve

Solves a nonlinear least squares problem with linear (bound) constraints using the Trust-Region algorithm.

Syntax

res = strnlspbc_solve(handle, fvec, fjac, RCI_Request)

res = dtrnlspbc_solve(handle, fvec, fjac, RCI_Request)

Include Files

  • Fortran: mkl_rci.fi, mkl_rci.f90

Description

The ?trnlspbc_solve routine, based on RCI, uses the Trust-Region algorithm to solve nonlinear least squares problems with linear (bound) constraints. The problem is stated as follows:


Equation

where

lixiui

i = 1, ..., n.

The RCI_Request parameter provides additional information:

RCI_Request Value

Description

2

Request to calculate the Jacobian matrix and put the result into fjac

1

Request to recalculate the function at vector X and put the result into fvec

0

One successful iteration step on the current trust-region radius (that does not mean that the value of x has changed)

-1

The algorithm has exceeded the maximum number of iterations

-2

Δ < eps(1)

-3

||F(x)||2 < eps(2)

-4

The Jacobian matrix is singular.

||J(x)(1:m,j)||2 < eps(3), j = 1, ..., n

-5

||s||2 < eps(4)

-6

||F(x)||2 - ||F(x) - J(x)s||2 < |eps(5)|

Note:

  • J(x) is the Jacobian matrix.

  • Δ is the trust-region area.

  • F(x) is the value of the functional.

  • s is the trial step.

Input Parameters

handle

Type INTEGER*8.

fvec

REAL for strnlspbc_solve

DOUBLE PRECISION for dtrnlspbc_solve

Array of size m. Contains the function values at X, where fvec(i) = (yifi(x)).

fjac

REAL for strnlspbc_solve

DOUBLE PRECISION for dtrnlspbc_solve

Array of size m by n. Contains the Jacobian matrix of the function.

Output Parameters

fvec

REAL for strnlspbc_solve

DOUBLE PRECISION for dtrnlspbc_solve

Array of size m. Updated function evaluated at x.

RCI_Request

INTEGER. Informs about the task stage.

See the Description section for the parameter values and their meaning.

res

INTEGER. Informs about the task completion.

res = TR_SUCCESS means the routine completed the task normally.

TR_SUCCESS is defined in the mkl_rci.fi include file.