<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Problem in using MKL Trust Region dtrnlsp solving system of nonlinear equations in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Problem-in-using-MKL-Trust-Region-dtrnlsp-solving-system-of/m-p/1118592#M24829</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;

&lt;P&gt;Currently, I am using the dtrnlsp_solve (trust region )to sovle a systems of 4 nonlinear equations. I am following the example provided in the &lt;A href="https://software.intel.com/en-us/node/471544"&gt;https://software.intel.com/en-us/node/471544&lt;/A&gt; Howerver , the powell method failured to get solution.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;When I resorted to the&amp;nbsp; fsolve function in Matlab, which uses the trust region method by default as well (pls refer to the link &lt;A href="https://www.mathworks.com/help/optim/ug/fsolve.html"&gt;https://www.mathworks.com/help/optim/ug/fsolve.html&lt;/A&gt;, I can sucessful get the root of the equations.&lt;/P&gt;

&lt;P&gt;Can you pls offer me some suggestions on how to solve it using Dtrnlsp_solver?&amp;nbsp; Thank you in advance。&lt;/P&gt;

&lt;P&gt;the matlab code is shown below:&lt;/P&gt;

&lt;PRE class="brush:;"&gt;function F = EQs(x)
k=190000/3/(1-2*0.3);
g=190000/(1+0.3)/2;
pe=-167.6485 ;
qe=500.0385  ;
p=pe+k*x(1);
q=qe-3*g*x(2);
peeq=x(3);
sm=500+1000*(peeq);
freal=x(4);
ds=sinh(-1.5*p/sm);
dc=cosh(-1.5*p/sm);
a=0.04*exp(-0.5*((peeq-0.3)/0.1)^2)/((2*3.14159)^0.5)/0.1;

F(1) = x(1)* 2*q/sm/sm+x(2)*(-3*1.5*freal*ds/sm);
F(2) = (q/sm)^2+2*freal*1.5*dc-(1+2.25*freal^2);
F(3)=x(3)-(-p*x(1)+q*x(2))/(1-freal)/sm
F(4)=x(4)-(1-freal)*x(1)-a*peeq

 &amp;gt;&amp;gt;options = optimoptions('fsolve','Display','iter','PlotFcn',@optimplotfirstorderopt);

&amp;gt;&amp;gt;x0=0;

&amp;gt;&amp;gt;[x,fval]  = fsolve(@EQs,x0,options)

&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;the fortran code&amp;nbsp; is shown below :&amp;nbsp;&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;!===============================================================================
! Copyright 2004-2016 Intel Corporation All Rights Reserved.
!
! The source code,  information  and material  ("Material") contained  herein is
! owned by Intel Corporation or its  suppliers or licensors,  and  title to such
! Material remains with Intel  Corporation or its  suppliers or  licensors.  The
! Material  contains  proprietary  information  of  Intel or  its suppliers  and
! licensors.  The Material is protected by  worldwide copyright  laws and treaty
! provisions.  No part  of  the  Material   may  be  used,  copied,  reproduced,
! modified, published,  uploaded, posted, transmitted,  distributed or disclosed
! in any way without Intel's prior express written permission.  No license under
! any patent,  copyright or other  intellectual property rights  in the Material
! is granted to  or  conferred  upon  you,  either   expressly,  by implication,
! inducement,  estoppel  or  otherwise.  Any  license   under such  intellectual
! property rights must be express and approved by Intel in writing.
!
! Unless otherwise agreed by Intel in writing,  you may not remove or alter this
! notice or  any  other  notice   embedded  in  Materials  by  Intel  or Intel's
! suppliers or licensors in any way.
!===============================================================================

*   Content : TR Solver Fortran-77 example
*
********************************************************************************

!** NONLINEAR LEAST SQUARE PROBLEM WITHOUT BOUNDARY CONSTRAINTS
      PROGRAM EXAMPLE_DTRNLSP_POWELL
        IMPLICIT NONE
!** HEADER-FILE WITH DEFINITIONS (CONSTANTS, EXTERNALS)
        INCLUDE "mkl_rci.fi"
!** USER'S OBJECTIVE FUNCTION
        EXTERNAL            EXTENDED_POWELL
!** N - NUMBER OF FUNCTION VARIABLES
        INTEGER             N
        PARAMETER           (N = 4)
!** M - DIMENSION OF FUNCTION VALUE
        INTEGER             M
        PARAMETER           (M = 4)
        
         DOUBLE PRECISION    pe,qe,k,g  
         common pe,qe,k,g
!** SOLUTION VECTOR. CONTAINS VALUES X FOR F(X)
        DOUBLE PRECISION    X (N)
!** PRECISIONS FOR STOP-CRITERIA (SEE MANUAL FOR MORE DETAILS)
        DOUBLE PRECISION    EPS (6)
!** JACOBI CALCULATION PRECISION
        DOUBLE PRECISION    JAC_EPS
!** REVERSE COMMUNICATION INTERFACE PARAMETER
        INTEGER             RCI_REQUEST
!** FUNCTION (F(X)) VALUE VECTOR
        DOUBLE PRECISION    FVEC (M)
!** JACOBI MATRIX
        DOUBLE PRECISION    FJAC (M, N)
!** NUMBER OF ITERATIONS
        INTEGER             ITER
!** NUMBER OF STOP-CRITERION
        INTEGER             ST_CR
!** CONTROLS OF RCI CYCLE
        INTEGER             SUCCESSFUL
!** MAXIMUM NUMBER OF ITERATIONS
        INTEGER             ITER1
!** MAXIMUM NUMBER OF ITERATIONS OF CALCULATION OF TRIAL-STEP
        INTEGER             ITER2
!** INITIAL STEP BOUND
        DOUBLE PRECISION    RS
!** INITIAL AND FINAL RESIDUALS
        DOUBLE PRECISION    R1, R2
!** TR SOLVER HANDLE
        INTEGER*8           HANDLE
!** CYCLE'S COUNTERS
        INTEGER             I, J
!** RESULTS OF INPUT PARAMETER CHECKING
        INTEGER             INFO(6)
!** SET PRECISIONS FOR STOP-CRITERIA
        DO I = 1, 6
            EPS (I) = 1.D-5
        END DO
!** SET MAXIMUM NUMBER OF ITERATIONS
        ITER1 = 1000
!** SET MAXIMUM NUMBER OF ITERATIONS OF CALCULATION OF TRIAL-STEP
        ITER2 = 100
!** SET INITIAL STEP BOUND
        RS = 100.D0
!** PRECISIONS FOR JACOBI CALCULATION
        JAC_EPS = 1.D-8
!** SET THE INITIAL GUESS
        x=0
 
      
!** SET INITIAL VALUES
        DO I = 1, M
            FVEC (I) = 0.D0
            DO J = 1, N
                FJAC (I, J) = 0.D0
            END DO
        END DO
!** INITIALIZE SOLVER (ALLOCATE MEMORY, SET INITIAL VALUES)
!**   HANDLE    IN/OUT: TR SOLVER HANDLE
!**   N         IN:     NUMBER OF FUNCTION VARIABLES
!**   M         IN:     DIMENSION OF FUNCTION VALUE
!**   X         IN:     SOLUTION VECTOR. CONTAINS VALUES X FOR F(X)
!**   EPS       IN:     PRECISIONS FOR STOP-CRITERIA
!**   ITER1     IN:     MAXIMUM NUMBER OF ITERATIONS
!**   ITER2     IN:     MAXIMUM NUMBER OF ITERATIONS OF CALCULATION OF TRIAL-STEP
!**   RS        IN:     INITIAL STEP BOUND
        IF (DTRNLSP_INIT (HANDLE, N, M, X, EPS, ITER1, ITER2, RS)
     &amp;amp;      .NE. TR_SUCCESS) THEN
!** IF FUNCTION DOES NOT COMPLETE SUCCESSFULLY THEN PRINT ERROR MESSAGE
            PRINT *, '| ERROR IN DTRNLSP_INIT'
!** RELEASE INTERNAL Intel(R) MKL MEMORY THAT MIGHT BE USED FOR COMPUTATIONS.
!** NOTE: IT IS IMPORTANT TO CALL THE ROUTINE BELOW TO AVOID MEMORY LEAKS
!** UNLESS YOU DISABLE Intel(R) MKL MEMORY MANAGER
            CALL MKL_FREE_BUFFERS
!** AND STOP
            STOP 1
        END IF
!** CHECKS THE CORRECTNESS OF HANDLE AND ARRAYS CONTAINING JACOBIAN MATRIX, 
!** OBJECTIVE FUNCTION, LOWER AND UPPER BOUNDS, AND STOPPING CRITERIA.
        IF (DTRNLSP_CHECK (HANDLE, N, M, FJAC, FVEC, EPS, 
     &amp;amp;     INFO) .NE. TR_SUCCESS) THEN
!** IF FUNCTION DOES NOT COMPLETE SUCCESSFULLY THEN PRINT ERROR MESSAGE
            PRINT *, '| ERROR IN DTRNLSPBC_INIT'
!** RELEASE INTERNAL Intel(R) MKL MEMORY THAT MIGHT BE USED FOR COMPUTATIONS.
!** NOTE: IT IS IMPORTANT TO CALL THE ROUTINE BELOW TO AVOID MEMORY LEAKS
!** UNLESS YOU DISABLE Intel(R) MKL MEMORY MANAGER
            CALL MKL_FREE_BUFFERS
!** AND STOP
            STOP 1
        ELSE
!** THE HANDLE IS NOT VALID.
            IF( INFO(1) .NE. 0 .OR. 
!** THE FJAC ARRAY IS NOT VALID.
     &amp;amp;              INFO(2) .NE. 0 .OR. 
!** THE FVEC ARRAY IS NOT VALID.
     &amp;amp;              INFO(3) .NE. 0 .OR. 
!** THE EPS ARRAY IS NOT VALID.
     &amp;amp;              INFO(4) .NE. 0 ) THEN
                PRINT *, '| INPUT PARAMETERS ARE NOT VALID'
!** RELEASE INTERNAL Intel(R) MKL MEMORY THAT MIGHT BE USED FOR COMPUTATIONS.
!** NOTE: IT IS IMPORTANT TO CALL THE ROUTINE BELOW TO AVOID MEMORY LEAKS
!** UNLESS YOU DISABLE Intel(R) MKL MEMORY MANAGER
                CALL MKL_FREE_BUFFERS
!** AND STOP
                STOP 1
            END IF
        END IF
!** SET INITIAL RCI CYCLE VARIABLES
        RCI_REQUEST = 0
        SUCCESSFUL = 0
!** RCI CYCLE
        DO WHILE (SUCCESSFUL == 0)
!** CALL TR SOLVER
!**   HANDLE        IN/OUT: TR SOLVER HANDLE
!**   FVEC          IN:     VECTOR
!**   FJAC          IN:     JACOBI MATRIX
!**   RCI_REQUEST   IN/OUT: RETURN NUMBER WHICH DENOTE NEXT STEP FOR PERFORMING
            IF (DTRNLSP_SOLVE (HANDLE, FVEC, FJAC, RCI_REQUEST)
     &amp;amp;              .NE. TR_SUCCESS) THEN
!** IF FUNCTION DOES NOT COMPLETE SUCCESSFULLY THEN PRINT ERROR MESSAGE
                PRINT *, '| ERROR IN DTRNLSP_SOLVE'
!** RELEASE INTERNAL Intel(R) MKL MEMORY THAT MIGHT BE USED FOR COMPUTATIONS.
!** NOTE: IT IS IMPORTANT TO CALL THE ROUTINE BELOW TO AVOID MEMORY LEAKS
!** UNLESS YOU DISABLE Intel(R) MKL MEMORY MANAGER
                CALL MKL_FREE_BUFFERS
!** AND STOP
                STOP 1
            END IF
!** ACCORDING WITH RCI_REQUEST VALUE WE DO NEXT STEP
            SELECT CASE (RCI_REQUEST)
            CASE (-1, -2, -3, -4, -5, -6)
!**   STOP RCI CYCLE
                SUCCESSFUL = 1
            CASE (1)
!**   RECALCULATE FUNCTION VALUE
!**     M               IN:     DIMENSION OF FUNCTION VALUE
!**     N               IN:     NUMBER OF FUNCTION VARIABLES
!**     X               IN:     SOLUTION VECTOR
!**     FVEC            OUT:    FUNCTION VALUE F(X)
	   k=190000/3/(1-2*0.3);
         g=190000/(1+0.3)/2;
         pe= -167.6485
         qe= 500.0385;
                CALL EXTENDED_POWELL (M, N, X, FVEC)
            CASE (2)
!**   COMPUTE JACOBI MATRIX
!**     EXTENDED_POWELL IN:     EXTERNAL OBJECTIVE FUNCTION
!**     N               IN:     NUMBER OF FUNCTION VARIABLES
!**     M               IN:     DIMENSION OF FUNCTION VALUE
!**     FJAC            OUT:    JACOBI MATRIX
!**     X               IN:     SOLUTION VECTOR
!**     JAC_EPS         IN:     JACOBI CALCULATION PRECISION
                IF (DJACOBI (EXTENDED_POWELL, N, M, FJAC, X, JAC_EPS)
     &amp;amp;                  .NE. TR_SUCCESS) THEN
!** IF FUNCTION DOES NOT COMPLETE SUCCESSFULLY THEN PRINT ERROR MESSAGE
                    PRINT *, '| ERROR IN DJACOBI'
!** RELEASE INTERNAL Intel(R) MKL MEMORY THAT MIGHT BE USED FOR COMPUTATIONS.
!** NOTE: IT IS IMPORTANT TO CALL THE ROUTINE BELOW TO AVOID MEMORY LEAKS
!** UNLESS YOU DISABLE Intel(R) MKL MEMORY MANAGER
                    CALL MKL_FREE_BUFFERS
!** AND STOP
                    STOP 1
                END IF
            ENDSELECT
        END DO
!** GET SOLUTION STATUSES
!**   HANDLE            IN: TR SOLVER HANDLE
!**   ITER              OUT: NUMBER OF ITERATIONS
!**   ST_CR             OUT: NUMBER OF STOP CRITERION
!**   R1                OUT: INITIAL RESIDUALS
!**   R2                OUT: FINAL RESIDUALS
        IF (DTRNLSP_GET (HANDLE, ITER, ST_CR, R1, R2)
     &amp;amp;          .NE. TR_SUCCESS) THEN
!** IF FUNCTION DOES NOT COMPLETE SUCCESSFULLY THEN PRINT ERROR MESSAGE
            PRINT *, '| ERROR IN DTRNLSP_GET'
!** RELEASE INTERNAL Intel(R) MKL MEMORY THAT MIGHT BE USED FOR COMPUTATIONS.
!** NOTE: IT IS IMPORTANT TO CALL THE ROUTINE BELOW TO AVOID MEMORY LEAKS
!** UNLESS YOU DISABLE Intel(R) MKL MEMORY MANAGER
            CALL MKL_FREE_BUFFERS
!** AND STOP
            STOP 1
        END IF
!** FREE HANDLE MEMORY
        IF (DTRNLSP_DELETE (HANDLE) .NE. TR_SUCCESS) THEN
!** IF FUNCTION DOES NOT COMPLETE SUCCESSFULLY THEN PRINT ERROR MESSAGE
            PRINT *, '| ERROR IN DTRNLSP_DELETE'
!** RELEASE INTERNAL Intel(R) MKL MEMORY THAT MIGHT BE USED FOR COMPUTATIONS.
!** NOTE: IT IS IMPORTANT TO CALL THE ROUTINE BELOW TO AVOID MEMORY LEAKS
!** UNLESS YOU DISABLE Intel(R) MKL MEMORY MANAGER
            CALL MKL_FREE_BUFFERS
!** AND STOP
            STOP 1
        END IF

!** RELEASE INTERNAL Intel(R) MKL MEMORY THAT MIGHT BE USED FOR COMPUTATIONS.
!** NOTE: IT IS IMPORTANT TO CALL THE ROUTINE BELOW TO AVOID MEMORY LEAKS
!** UNLESS YOU DISABLE Intel(R) MKL MEMORY MANAGER
        CALL MKL_FREE_BUFFERS
!** IF FINAL RESIDUAL LESS THEN REQUIRED PRECISION THEN PRINT PASS
        IF (R2 .LT. 1.D-6) THEN
            PRINT *, '|         DTRNLSP POWELL............PASS'
            print *,"x=",x
            print *,"r2=",r2
            !pause
            !STOP 0
!** ELSE PRINT FAILED
        ELSE
            PRINT *, '|         DTRNLSP POWELL............FAILED'
            print *, 'r2=',r2
            print *, 'x=',x
            !STOP 1
		
        END IF
      END PROGRAM EXAMPLE_DTRNLSP_POWELL

!** ROUTINE FOR EXTENDED POWELL FUNCTION CALCULATION
!**   M     IN:     DIMENSION OF FUNCTION VALUE
!**   N     IN:     NUMBER OF FUNCTION VARIABLES
!**   X     IN:     VECTOR FOR FUNCTION CALCULATING
!**   F     OUT:    FUNCTION VALUE F(X)
      SUBROUTINE EXTENDED_POWELL (M, N, X, F)
        IMPLICIT NONE
        INTEGER M, N
        DOUBLE PRECISION X(*),F(*),K,G,PE,QE,SM
     &amp;amp; ,P,Q,PEEQ,FREAL,DS,DC,A
        INTEGER I
       COMMON PE,QE,K,G  
		  P=PE+K*X(1);
            Q=QE-3*G*X(2);
		  PEEQ=X(3);
		  SM=500+1000*(PEEQ);
            FREAL=X(4);
            DS=SINH(-1.5*P/SM);
            DC=COSH(-1.5*P/SM);
            A=0.04*EXP(-0.5*((PEEQ-0.3)/0.1)**2)/((2*3.14159)**0.5)/0.1;
          
          F(1) = X(1)* 2*Q/SM/SM+X(2)*(-3*1.5*FREAL*DS/SM);
          F(2) = (Q/SM)**2+2*FREAL*1.5*DC-(1+2.25*FREAL**2);
	    F(3) = X(3)-(-P*X(1)+Q*X(2))/(1-FREAL)/SM
	    F(4) = X(4)-(1-FREAL)*X(1)-A*PEEQ

      END SUBROUTINE EXTENDED_POWELL&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sun, 18 Dec 2016 13:14:02 GMT</pubDate>
    <dc:creator>peng_z_</dc:creator>
    <dc:date>2016-12-18T13:14:02Z</dc:date>
    <item>
      <title>Problem in using MKL Trust Region dtrnlsp solving system of nonlinear equations</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Problem-in-using-MKL-Trust-Region-dtrnlsp-solving-system-of/m-p/1118592#M24829</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;

&lt;P&gt;Currently, I am using the dtrnlsp_solve (trust region )to sovle a systems of 4 nonlinear equations. I am following the example provided in the &lt;A href="https://software.intel.com/en-us/node/471544"&gt;https://software.intel.com/en-us/node/471544&lt;/A&gt; Howerver , the powell method failured to get solution.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;When I resorted to the&amp;nbsp; fsolve function in Matlab, which uses the trust region method by default as well (pls refer to the link &lt;A href="https://www.mathworks.com/help/optim/ug/fsolve.html"&gt;https://www.mathworks.com/help/optim/ug/fsolve.html&lt;/A&gt;, I can sucessful get the root of the equations.&lt;/P&gt;

&lt;P&gt;Can you pls offer me some suggestions on how to solve it using Dtrnlsp_solver?&amp;nbsp; Thank you in advance。&lt;/P&gt;

&lt;P&gt;the matlab code is shown below:&lt;/P&gt;

&lt;PRE class="brush:;"&gt;function F = EQs(x)
k=190000/3/(1-2*0.3);
g=190000/(1+0.3)/2;
pe=-167.6485 ;
qe=500.0385  ;
p=pe+k*x(1);
q=qe-3*g*x(2);
peeq=x(3);
sm=500+1000*(peeq);
freal=x(4);
ds=sinh(-1.5*p/sm);
dc=cosh(-1.5*p/sm);
a=0.04*exp(-0.5*((peeq-0.3)/0.1)^2)/((2*3.14159)^0.5)/0.1;

F(1) = x(1)* 2*q/sm/sm+x(2)*(-3*1.5*freal*ds/sm);
F(2) = (q/sm)^2+2*freal*1.5*dc-(1+2.25*freal^2);
F(3)=x(3)-(-p*x(1)+q*x(2))/(1-freal)/sm
F(4)=x(4)-(1-freal)*x(1)-a*peeq

 &amp;gt;&amp;gt;options = optimoptions('fsolve','Display','iter','PlotFcn',@optimplotfirstorderopt);

&amp;gt;&amp;gt;x0=0;

&amp;gt;&amp;gt;[x,fval]  = fsolve(@EQs,x0,options)

&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;the fortran code&amp;nbsp; is shown below :&amp;nbsp;&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;!===============================================================================
! Copyright 2004-2016 Intel Corporation All Rights Reserved.
!
! The source code,  information  and material  ("Material") contained  herein is
! owned by Intel Corporation or its  suppliers or licensors,  and  title to such
! Material remains with Intel  Corporation or its  suppliers or  licensors.  The
! Material  contains  proprietary  information  of  Intel or  its suppliers  and
! licensors.  The Material is protected by  worldwide copyright  laws and treaty
! provisions.  No part  of  the  Material   may  be  used,  copied,  reproduced,
! modified, published,  uploaded, posted, transmitted,  distributed or disclosed
! in any way without Intel's prior express written permission.  No license under
! any patent,  copyright or other  intellectual property rights  in the Material
! is granted to  or  conferred  upon  you,  either   expressly,  by implication,
! inducement,  estoppel  or  otherwise.  Any  license   under such  intellectual
! property rights must be express and approved by Intel in writing.
!
! Unless otherwise agreed by Intel in writing,  you may not remove or alter this
! notice or  any  other  notice   embedded  in  Materials  by  Intel  or Intel's
! suppliers or licensors in any way.
!===============================================================================

*   Content : TR Solver Fortran-77 example
*
********************************************************************************

!** NONLINEAR LEAST SQUARE PROBLEM WITHOUT BOUNDARY CONSTRAINTS
      PROGRAM EXAMPLE_DTRNLSP_POWELL
        IMPLICIT NONE
!** HEADER-FILE WITH DEFINITIONS (CONSTANTS, EXTERNALS)
        INCLUDE "mkl_rci.fi"
!** USER'S OBJECTIVE FUNCTION
        EXTERNAL            EXTENDED_POWELL
!** N - NUMBER OF FUNCTION VARIABLES
        INTEGER             N
        PARAMETER           (N = 4)
!** M - DIMENSION OF FUNCTION VALUE
        INTEGER             M
        PARAMETER           (M = 4)
        
         DOUBLE PRECISION    pe,qe,k,g  
         common pe,qe,k,g
!** SOLUTION VECTOR. CONTAINS VALUES X FOR F(X)
        DOUBLE PRECISION    X (N)
!** PRECISIONS FOR STOP-CRITERIA (SEE MANUAL FOR MORE DETAILS)
        DOUBLE PRECISION    EPS (6)
!** JACOBI CALCULATION PRECISION
        DOUBLE PRECISION    JAC_EPS
!** REVERSE COMMUNICATION INTERFACE PARAMETER
        INTEGER             RCI_REQUEST
!** FUNCTION (F(X)) VALUE VECTOR
        DOUBLE PRECISION    FVEC (M)
!** JACOBI MATRIX
        DOUBLE PRECISION    FJAC (M, N)
!** NUMBER OF ITERATIONS
        INTEGER             ITER
!** NUMBER OF STOP-CRITERION
        INTEGER             ST_CR
!** CONTROLS OF RCI CYCLE
        INTEGER             SUCCESSFUL
!** MAXIMUM NUMBER OF ITERATIONS
        INTEGER             ITER1
!** MAXIMUM NUMBER OF ITERATIONS OF CALCULATION OF TRIAL-STEP
        INTEGER             ITER2
!** INITIAL STEP BOUND
        DOUBLE PRECISION    RS
!** INITIAL AND FINAL RESIDUALS
        DOUBLE PRECISION    R1, R2
!** TR SOLVER HANDLE
        INTEGER*8           HANDLE
!** CYCLE'S COUNTERS
        INTEGER             I, J
!** RESULTS OF INPUT PARAMETER CHECKING
        INTEGER             INFO(6)
!** SET PRECISIONS FOR STOP-CRITERIA
        DO I = 1, 6
            EPS (I) = 1.D-5
        END DO
!** SET MAXIMUM NUMBER OF ITERATIONS
        ITER1 = 1000
!** SET MAXIMUM NUMBER OF ITERATIONS OF CALCULATION OF TRIAL-STEP
        ITER2 = 100
!** SET INITIAL STEP BOUND
        RS = 100.D0
!** PRECISIONS FOR JACOBI CALCULATION
        JAC_EPS = 1.D-8
!** SET THE INITIAL GUESS
        x=0
 
      
!** SET INITIAL VALUES
        DO I = 1, M
            FVEC (I) = 0.D0
            DO J = 1, N
                FJAC (I, J) = 0.D0
            END DO
        END DO
!** INITIALIZE SOLVER (ALLOCATE MEMORY, SET INITIAL VALUES)
!**   HANDLE    IN/OUT: TR SOLVER HANDLE
!**   N         IN:     NUMBER OF FUNCTION VARIABLES
!**   M         IN:     DIMENSION OF FUNCTION VALUE
!**   X         IN:     SOLUTION VECTOR. CONTAINS VALUES X FOR F(X)
!**   EPS       IN:     PRECISIONS FOR STOP-CRITERIA
!**   ITER1     IN:     MAXIMUM NUMBER OF ITERATIONS
!**   ITER2     IN:     MAXIMUM NUMBER OF ITERATIONS OF CALCULATION OF TRIAL-STEP
!**   RS        IN:     INITIAL STEP BOUND
        IF (DTRNLSP_INIT (HANDLE, N, M, X, EPS, ITER1, ITER2, RS)
     &amp;amp;      .NE. TR_SUCCESS) THEN
!** IF FUNCTION DOES NOT COMPLETE SUCCESSFULLY THEN PRINT ERROR MESSAGE
            PRINT *, '| ERROR IN DTRNLSP_INIT'
!** RELEASE INTERNAL Intel(R) MKL MEMORY THAT MIGHT BE USED FOR COMPUTATIONS.
!** NOTE: IT IS IMPORTANT TO CALL THE ROUTINE BELOW TO AVOID MEMORY LEAKS
!** UNLESS YOU DISABLE Intel(R) MKL MEMORY MANAGER
            CALL MKL_FREE_BUFFERS
!** AND STOP
            STOP 1
        END IF
!** CHECKS THE CORRECTNESS OF HANDLE AND ARRAYS CONTAINING JACOBIAN MATRIX, 
!** OBJECTIVE FUNCTION, LOWER AND UPPER BOUNDS, AND STOPPING CRITERIA.
        IF (DTRNLSP_CHECK (HANDLE, N, M, FJAC, FVEC, EPS, 
     &amp;amp;     INFO) .NE. TR_SUCCESS) THEN
!** IF FUNCTION DOES NOT COMPLETE SUCCESSFULLY THEN PRINT ERROR MESSAGE
            PRINT *, '| ERROR IN DTRNLSPBC_INIT'
!** RELEASE INTERNAL Intel(R) MKL MEMORY THAT MIGHT BE USED FOR COMPUTATIONS.
!** NOTE: IT IS IMPORTANT TO CALL THE ROUTINE BELOW TO AVOID MEMORY LEAKS
!** UNLESS YOU DISABLE Intel(R) MKL MEMORY MANAGER
            CALL MKL_FREE_BUFFERS
!** AND STOP
            STOP 1
        ELSE
!** THE HANDLE IS NOT VALID.
            IF( INFO(1) .NE. 0 .OR. 
!** THE FJAC ARRAY IS NOT VALID.
     &amp;amp;              INFO(2) .NE. 0 .OR. 
!** THE FVEC ARRAY IS NOT VALID.
     &amp;amp;              INFO(3) .NE. 0 .OR. 
!** THE EPS ARRAY IS NOT VALID.
     &amp;amp;              INFO(4) .NE. 0 ) THEN
                PRINT *, '| INPUT PARAMETERS ARE NOT VALID'
!** RELEASE INTERNAL Intel(R) MKL MEMORY THAT MIGHT BE USED FOR COMPUTATIONS.
!** NOTE: IT IS IMPORTANT TO CALL THE ROUTINE BELOW TO AVOID MEMORY LEAKS
!** UNLESS YOU DISABLE Intel(R) MKL MEMORY MANAGER
                CALL MKL_FREE_BUFFERS
!** AND STOP
                STOP 1
            END IF
        END IF
!** SET INITIAL RCI CYCLE VARIABLES
        RCI_REQUEST = 0
        SUCCESSFUL = 0
!** RCI CYCLE
        DO WHILE (SUCCESSFUL == 0)
!** CALL TR SOLVER
!**   HANDLE        IN/OUT: TR SOLVER HANDLE
!**   FVEC          IN:     VECTOR
!**   FJAC          IN:     JACOBI MATRIX
!**   RCI_REQUEST   IN/OUT: RETURN NUMBER WHICH DENOTE NEXT STEP FOR PERFORMING
            IF (DTRNLSP_SOLVE (HANDLE, FVEC, FJAC, RCI_REQUEST)
     &amp;amp;              .NE. TR_SUCCESS) THEN
!** IF FUNCTION DOES NOT COMPLETE SUCCESSFULLY THEN PRINT ERROR MESSAGE
                PRINT *, '| ERROR IN DTRNLSP_SOLVE'
!** RELEASE INTERNAL Intel(R) MKL MEMORY THAT MIGHT BE USED FOR COMPUTATIONS.
!** NOTE: IT IS IMPORTANT TO CALL THE ROUTINE BELOW TO AVOID MEMORY LEAKS
!** UNLESS YOU DISABLE Intel(R) MKL MEMORY MANAGER
                CALL MKL_FREE_BUFFERS
!** AND STOP
                STOP 1
            END IF
!** ACCORDING WITH RCI_REQUEST VALUE WE DO NEXT STEP
            SELECT CASE (RCI_REQUEST)
            CASE (-1, -2, -3, -4, -5, -6)
!**   STOP RCI CYCLE
                SUCCESSFUL = 1
            CASE (1)
!**   RECALCULATE FUNCTION VALUE
!**     M               IN:     DIMENSION OF FUNCTION VALUE
!**     N               IN:     NUMBER OF FUNCTION VARIABLES
!**     X               IN:     SOLUTION VECTOR
!**     FVEC            OUT:    FUNCTION VALUE F(X)
	   k=190000/3/(1-2*0.3);
         g=190000/(1+0.3)/2;
         pe= -167.6485
         qe= 500.0385;
                CALL EXTENDED_POWELL (M, N, X, FVEC)
            CASE (2)
!**   COMPUTE JACOBI MATRIX
!**     EXTENDED_POWELL IN:     EXTERNAL OBJECTIVE FUNCTION
!**     N               IN:     NUMBER OF FUNCTION VARIABLES
!**     M               IN:     DIMENSION OF FUNCTION VALUE
!**     FJAC            OUT:    JACOBI MATRIX
!**     X               IN:     SOLUTION VECTOR
!**     JAC_EPS         IN:     JACOBI CALCULATION PRECISION
                IF (DJACOBI (EXTENDED_POWELL, N, M, FJAC, X, JAC_EPS)
     &amp;amp;                  .NE. TR_SUCCESS) THEN
!** IF FUNCTION DOES NOT COMPLETE SUCCESSFULLY THEN PRINT ERROR MESSAGE
                    PRINT *, '| ERROR IN DJACOBI'
!** RELEASE INTERNAL Intel(R) MKL MEMORY THAT MIGHT BE USED FOR COMPUTATIONS.
!** NOTE: IT IS IMPORTANT TO CALL THE ROUTINE BELOW TO AVOID MEMORY LEAKS
!** UNLESS YOU DISABLE Intel(R) MKL MEMORY MANAGER
                    CALL MKL_FREE_BUFFERS
!** AND STOP
                    STOP 1
                END IF
            ENDSELECT
        END DO
!** GET SOLUTION STATUSES
!**   HANDLE            IN: TR SOLVER HANDLE
!**   ITER              OUT: NUMBER OF ITERATIONS
!**   ST_CR             OUT: NUMBER OF STOP CRITERION
!**   R1                OUT: INITIAL RESIDUALS
!**   R2                OUT: FINAL RESIDUALS
        IF (DTRNLSP_GET (HANDLE, ITER, ST_CR, R1, R2)
     &amp;amp;          .NE. TR_SUCCESS) THEN
!** IF FUNCTION DOES NOT COMPLETE SUCCESSFULLY THEN PRINT ERROR MESSAGE
            PRINT *, '| ERROR IN DTRNLSP_GET'
!** RELEASE INTERNAL Intel(R) MKL MEMORY THAT MIGHT BE USED FOR COMPUTATIONS.
!** NOTE: IT IS IMPORTANT TO CALL THE ROUTINE BELOW TO AVOID MEMORY LEAKS
!** UNLESS YOU DISABLE Intel(R) MKL MEMORY MANAGER
            CALL MKL_FREE_BUFFERS
!** AND STOP
            STOP 1
        END IF
!** FREE HANDLE MEMORY
        IF (DTRNLSP_DELETE (HANDLE) .NE. TR_SUCCESS) THEN
!** IF FUNCTION DOES NOT COMPLETE SUCCESSFULLY THEN PRINT ERROR MESSAGE
            PRINT *, '| ERROR IN DTRNLSP_DELETE'
!** RELEASE INTERNAL Intel(R) MKL MEMORY THAT MIGHT BE USED FOR COMPUTATIONS.
!** NOTE: IT IS IMPORTANT TO CALL THE ROUTINE BELOW TO AVOID MEMORY LEAKS
!** UNLESS YOU DISABLE Intel(R) MKL MEMORY MANAGER
            CALL MKL_FREE_BUFFERS
!** AND STOP
            STOP 1
        END IF

!** RELEASE INTERNAL Intel(R) MKL MEMORY THAT MIGHT BE USED FOR COMPUTATIONS.
!** NOTE: IT IS IMPORTANT TO CALL THE ROUTINE BELOW TO AVOID MEMORY LEAKS
!** UNLESS YOU DISABLE Intel(R) MKL MEMORY MANAGER
        CALL MKL_FREE_BUFFERS
!** IF FINAL RESIDUAL LESS THEN REQUIRED PRECISION THEN PRINT PASS
        IF (R2 .LT. 1.D-6) THEN
            PRINT *, '|         DTRNLSP POWELL............PASS'
            print *,"x=",x
            print *,"r2=",r2
            !pause
            !STOP 0
!** ELSE PRINT FAILED
        ELSE
            PRINT *, '|         DTRNLSP POWELL............FAILED'
            print *, 'r2=',r2
            print *, 'x=',x
            !STOP 1
		
        END IF
      END PROGRAM EXAMPLE_DTRNLSP_POWELL

!** ROUTINE FOR EXTENDED POWELL FUNCTION CALCULATION
!**   M     IN:     DIMENSION OF FUNCTION VALUE
!**   N     IN:     NUMBER OF FUNCTION VARIABLES
!**   X     IN:     VECTOR FOR FUNCTION CALCULATING
!**   F     OUT:    FUNCTION VALUE F(X)
      SUBROUTINE EXTENDED_POWELL (M, N, X, F)
        IMPLICIT NONE
        INTEGER M, N
        DOUBLE PRECISION X(*),F(*),K,G,PE,QE,SM
     &amp;amp; ,P,Q,PEEQ,FREAL,DS,DC,A
        INTEGER I
       COMMON PE,QE,K,G  
		  P=PE+K*X(1);
            Q=QE-3*G*X(2);
		  PEEQ=X(3);
		  SM=500+1000*(PEEQ);
            FREAL=X(4);
            DS=SINH(-1.5*P/SM);
            DC=COSH(-1.5*P/SM);
            A=0.04*EXP(-0.5*((PEEQ-0.3)/0.1)**2)/((2*3.14159)**0.5)/0.1;
          
          F(1) = X(1)* 2*Q/SM/SM+X(2)*(-3*1.5*FREAL*DS/SM);
          F(2) = (Q/SM)**2+2*FREAL*1.5*DC-(1+2.25*FREAL**2);
	    F(3) = X(3)-(-P*X(1)+Q*X(2))/(1-FREAL)/SM
	    F(4) = X(4)-(1-FREAL)*X(1)-A*PEEQ

      END SUBROUTINE EXTENDED_POWELL&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 18 Dec 2016 13:14:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Problem-in-using-MKL-Trust-Region-dtrnlsp-solving-system-of/m-p/1118592#M24829</guid>
      <dc:creator>peng_z_</dc:creator>
      <dc:date>2016-12-18T13:14:02Z</dc:date>
    </item>
    <item>
      <title>Dear customer,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Problem-in-using-MKL-Trust-Region-dtrnlsp-solving-system-of/m-p/1118593#M24830</link>
      <description>&lt;P&gt;Dear customer,&lt;/P&gt;

&lt;P&gt;In MKL the final result is 1.540586674360078E-004, failed because you set the limitation for PASS is 1.D-6.&amp;nbsp;I tried with your matlab code, seems there's an error. Could you please provide the output for matlab program and the init value &amp;amp; result value of x(1)~x(4) and the final f(x) value. Thanks.&lt;/P&gt;

&lt;P&gt;Best regards,&lt;BR /&gt;
	Fiona&lt;/P&gt;</description>
      <pubDate>Tue, 20 Dec 2016 03:28:15 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Problem-in-using-MKL-Trust-Region-dtrnlsp-solving-system-of/m-p/1118593#M24830</guid>
      <dc:creator>Zhen_Z_Intel</dc:creator>
      <dc:date>2016-12-20T03:28:15Z</dc:date>
    </item>
    <item>
      <title>A good rule to follow when</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Problem-in-using-MKL-Trust-Region-dtrnlsp-solving-system-of/m-p/1118594#M24831</link>
      <description>&lt;P&gt;A good rule to follow when solving nonlinear equations is not to use all zeros as the guess for the solution, and a second rule is not to give up when an arbitrary initial guess fails to yield a solution.&lt;/P&gt;

&lt;P&gt;I used x&lt;SUB&gt;0&lt;/SUB&gt; = [1d-7, 1d-7, 1d-7, 1d-7], and the solution found by TRNLSP was x = [3.3209d-12, 1.7481d-07, 1.7482d-07, &amp;nbsp;3.1324d-10] .&lt;/P&gt;

&lt;P&gt;Perhaps you need to re-scale your variables x and F so that you can work with reasonable values, or use only a relative error in the termination criterion.&lt;/P&gt;</description>
      <pubDate>Tue, 20 Dec 2016 14:32:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Problem-in-using-MKL-Trust-Region-dtrnlsp-solving-system-of/m-p/1118594#M24831</guid>
      <dc:creator>mecej4</dc:creator>
      <dc:date>2016-12-20T14:32:00Z</dc:date>
    </item>
    <item>
      <title>Dear Fiona,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Problem-in-using-MKL-Trust-Region-dtrnlsp-solving-system-of/m-p/1118595#M24832</link>
      <description>&lt;PRE style="box-sizing: border-box; margin-top: 0px; margin-bottom: 1.06667em; font-size: 13.008px; line-height: 2.13333em; white-space: pre-wrap; color: rgb(96, 96, 96);"&gt;Dear Fiona,  
Thank you for your prompt reply.
I just changed "x0=0" to "x0=[0,0,0,0]" in the Matlab code;
Here is a table showing the input (&lt;STRONG style="box-sizing: border-box;"&gt;x&lt;SPAN style="box-sizing: border-box; font-size: 9.756px; line-height: 0; position: relative; vertical-align: baseline; bottom: -0.25em;"&gt;0&lt;/SPAN&gt;)&lt;SPAN style="box-sizing: border-box; font-size: 9.756px; line-height: 0; position: relative; vertical-align: baseline; bottom: -0.25em;"&gt;j &lt;/SPAN&gt;(j=1,2,3,4),
&lt;/STRONG&gt;the&lt;STRONG style="box-sizing: border-box;"&gt; &lt;/STRONG&gt;solution &lt;STRONG style="box-sizing: border-box;"&gt;x, and &lt;/STRONG&gt;the residual &lt;STRONG style="box-sizing: border-box;"&gt;F&lt;/STRONG&gt;. The correct code is posted below the table. 
Seems like Matlab can get the maxinum residual to a order of 1e-14. &lt;/PRE&gt;

&lt;TABLE style="box-sizing: border-box; border-collapse: collapse; margin-top: 1.06667em; margin-bottom: 1.06667em; line-height: 1.1; color: rgb(85, 85, 85); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 15px;"&gt;
	&lt;TBODY style="box-sizing: border-box;"&gt;
		&lt;TR style="box-sizing: border-box; border-bottom: 1px solid rgb(204, 204, 204);"&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center;"&gt;&amp;nbsp;index j&lt;/TD&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center; background: rgb(230, 230, 230);"&gt;&amp;nbsp;1&lt;/TD&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center;"&gt;2&lt;/TD&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center; background: rgb(230, 230, 230);"&gt;3&lt;/TD&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center;"&gt;4&lt;/TD&gt;
		&lt;/TR&gt;
		&lt;TR style="box-sizing: border-box; border-bottom: 1px solid rgb(204, 204, 204);"&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center;"&gt;initial guess&lt;STRONG style="box-sizing: border-box;"&gt;&amp;nbsp;x&lt;SPAN style="box-sizing: border-box; font-size: 11.25px; line-height: 0; position: relative; vertical-align: baseline; bottom: -0.25em;"&gt;0&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/TD&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center; background: rgb(230, 230, 230);"&gt;0&lt;/TD&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center;"&gt;0&lt;/TD&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center; background: rgb(230, 230, 230);"&gt;0&lt;/TD&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center;"&gt;0&lt;/TD&gt;
		&lt;/TR&gt;
		&lt;TR style="box-sizing: border-box; border-bottom: 1px solid rgb(204, 204, 204);"&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center;"&gt;Final value of&amp;nbsp;&lt;STRONG style="box-sizing: border-box;"&gt;x&lt;/STRONG&gt;&lt;/TD&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center; background: rgb(230, 230, 230);"&gt;6.392630365754150e-17&lt;/TD&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center;"&gt;1.74817817657479e-07&lt;/TD&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center; background: rgb(230, 230, 230);"&gt;1.74817817600321e-07&lt;/TD&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center;"&gt;3.09908247048591e-10&lt;/TD&gt;
		&lt;/TR&gt;
		&lt;TR style="box-sizing: border-box; border-bottom: none;"&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center;"&gt;Final value of&amp;nbsp;&lt;STRONG style="box-sizing: border-box;"&gt;F&lt;/STRONG&gt;&lt;/TD&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center; background: rgb(230, 230, 230);"&gt;-4.26428382337290e-28&lt;/TD&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center;"&gt;-1.78745906964650e-14&lt;/TD&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px; text-align: center; background: rgb(230, 230, 230);"&gt;-4.10047855672419e-17&lt;/TD&gt;
			&lt;TD style="box-sizing: border-box; padding: 9px 10px;"&gt;-4.78885875879918e-21&lt;/TD&gt;
		&lt;/TR&gt;
	&lt;/TBODY&gt;
&lt;/TABLE&gt;

&lt;P style="box-sizing: border-box; margin-bottom: 1.06667em; line-height: 1.4; max-width: none; color: rgb(85, 85, 85); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 15px;"&gt;&amp;nbsp;&lt;SPAN style="box-sizing: border-box; color: rgb(96, 96, 96); font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, Menlo, Monaco, &amp;quot;DejaVu Sans Mono&amp;quot;, monospace, sans-serif; font-size: 13.008px; white-space: pre-wrap;"&gt;!*********save the function as EQs.m file*****&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="box-sizing: border-box; margin-bottom: 1.06667em; line-height: 1.4; max-width: none; color: rgb(85, 85, 85); font-family: &amp;quot;Helvetica Neue&amp;quot;, Helvetica, Arial, sans-serif; font-size: 15px;"&gt;&lt;SPAN style="box-sizing: border-box; color: rgb(96, 96, 96); font-family: Consolas, &amp;quot;Lucida Console&amp;quot;, Menlo, Monaco, &amp;quot;DejaVu Sans Mono&amp;quot;, monospace, sans-serif; font-size: 13.008px; white-space: pre-wrap;"&gt;function F = EQs(x)&lt;/SPAN&gt;&lt;/P&gt;

&lt;PRE style="box-sizing: border-box; margin-top: 0px; margin-bottom: 1.06667em; font-size: 13.008px; line-height: 2.13333em; white-space: pre-wrap; color: rgb(96, 96, 96);"&gt;k=190000/3/(1-2*0.3);
g=190000/(1+0.3)/2;
pe=-167.6485 ;
qe=500.0385  ;
p=pe+k*x(1);
q=qe-3*g*x(2);
peeq=x(3);
sm=500+1000*(peeq);
freal=x(4);
ds=sinh(-1.5*p/sm);
dc=cosh(-1.5*p/sm);
a=0.04*exp(-0.5*((peeq-0.3)/0.1)^2)/((2*3.14159)^0.5)/0.1;

F(1) = x(1)* 2*q/sm/sm+x(2)*(-3*1.5*freal*ds/sm);
F(2) = (q/sm)^2+2*freal*1.5*dc-(1+2.25*freal^2);
F(3)=x(3)-(-p*x(1)+q*x(2))/(1-freal)/sm
F(4)=x(4)-(1-freal)*x(1)-a*peeq
&lt;/PRE&gt;

&lt;PRE style="box-sizing: border-box; margin-top: 0px; margin-bottom: 1.06667em; font-size: 13.008px; line-height: 2.13333em; white-space: pre-wrap; color: rgb(96, 96, 96);"&gt;!**************end of EQs.m file**************&lt;/PRE&gt;

&lt;PRE style="box-sizing: border-box; margin-top: 0px; margin-bottom: 1.06667em; font-size: 13.008px; line-height: 2.13333em; white-space: pre-wrap; color: rgb(96, 96, 96);"&gt;&amp;gt;&amp;gt;options = optimoptions('fsolve','Display','iter','PlotFcn',@optimplotfirstorderopt);
&amp;gt;&amp;gt;x0=[0,0,0,0];
&amp;gt;&amp;gt;[x,fval]  = fsolve(@EQs,x0,options)&lt;/PRE&gt;</description>
      <pubDate>Tue, 20 Dec 2016 23:44:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Problem-in-using-MKL-Trust-Region-dtrnlsp-solving-system-of/m-p/1118595#M24832</guid>
      <dc:creator>peng_z_</dc:creator>
      <dc:date>2016-12-20T23:44:00Z</dc:date>
    </item>
    <item>
      <title>Hi mecej4,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Problem-in-using-MKL-Trust-Region-dtrnlsp-solving-system-of/m-p/1118596#M24833</link>
      <description>&lt;P&gt;Hi mecej4,&lt;/P&gt;

&lt;P&gt;Thanks for your reply, &amp;nbsp;your result is very close to what I have got via Matlab using initial guess x0=[0,0,0,0], &amp;nbsp;pls see the result in my above comment.&lt;/P&gt;

&lt;UL&gt;
	&lt;LI&gt;However, I tried x0=[1d-7,&lt;SPAN style="font-size: 13.008px;"&gt;1d-7,1d-7,1d-7,], failed still. &amp;nbsp;Have you changed other line of Fortran code?&lt;/SPAN&gt;&lt;/LI&gt;
	&lt;LI&gt;&lt;SPAN style="font-size: 13.008px;"&gt;What do you mean by "rescale" x and F? &amp;nbsp;Could you pls elaborate on how to do so in &amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 12px;"&gt;TRNLSP ?&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;

&lt;P&gt;&lt;SPAN style="font-size: 13.008px;"&gt;Kind regards,&lt;/SPAN&gt;&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 13.008px;"&gt;P&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 21 Dec 2016 00:18:04 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Problem-in-using-MKL-Trust-Region-dtrnlsp-solving-system-of/m-p/1118596#M24833</guid>
      <dc:creator>peng_z_</dc:creator>
      <dc:date>2016-12-21T00:18:04Z</dc:date>
    </item>
    <item>
      <title>Dear customer,</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Problem-in-using-MKL-Trust-Region-dtrnlsp-solving-system-of/m-p/1118597#M24834</link>
      <description>&lt;P&gt;Dear customer,&lt;/P&gt;

&lt;P&gt;The calculation relay on EPS, you set the EPS as 1E-5, it is too large for your sample. You'd better set smaller than the smallest value of x you would like to get, for instance 1.D-17. The result of MKL should be same as Matlab. That means all result of x would not be smaller than 1.D-17, thus the function value will also be different. You could print the result of function "FVEC" to check with it. Thanks.&lt;/P&gt;

&lt;P&gt;Best regards,&lt;BR /&gt;
	Fiona&lt;/P&gt;</description>
      <pubDate>Wed, 21 Dec 2016 01:40:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/Problem-in-using-MKL-Trust-Region-dtrnlsp-solving-system-of/m-p/1118597#M24834</guid>
      <dc:creator>Zhen_Z_Intel</dc:creator>
      <dc:date>2016-12-21T01:40:00Z</dc:date>
    </item>
  </channel>
</rss>

