Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

?trnlspbc_solve

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

Syntax

MKL_INT strnlspbc_solve (_TRNSPBC_HANDLE_t* handle, float* fvec, float* fjac, MKL_INT* RCI_Request);

MKL_INT dtrnlspbc_solve (_TRNSPBC_HANDLE_t* handle, double* fvec, double* fjac, MKL_INT* RCI_Request);

Include Files

  • mkl.h

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[0]

-3

||F(x)||2 < eps[1]

-4

The Jacobian matrix is singular.

||J(x)[m*(j-1)...m*j-1]||2 < eps[2], j = 1, ..., n

-5

||s||2 < eps[3]

-6

||F(x)||2 - ||F(x) - J(x)s||2 < |eps[4]|

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 _TRNSPBC_HANDLE_t.

fvec

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

fjac

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

Output Parameters

fvec

Array of size m. Updated function evaluated at x.

RCI_Request

Informs about the task stage.

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

res

Informs about the task completion.

res = TR_SUCCESS means the routine completed the task normally.

TR_SUCCESS is defined in the mkl_rci.h include file.