亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dtron.f90

?? 牛頓優化算法源fortran代碼
?? F90
?? 第 1 頁 / 共 5 頁
字號:
      
!              Unsuccessful iterate.
      
      task = 'NFGH'
      x(1:n) = xc(1:n)
      f = fc
      
    END IF
    
!           Test for convergence.
    
    IF (f < fmin) task = 'WARNING: F < FMIN'
    IF (ABS(actred) <= fatol .AND. prered <= fatol) task =  &
        'CONVERGENCE: FATOL TEST SATISFIED'
    IF (ABS(actred) <= frtol*ABS(f) .AND. prered <= frtol*ABS(f)) task =  &
        'CONVERGENCE: FRTOL TEST SATISFIED'
    
  END IF
  
!        Determine what needs to be done on the next call.
  
  IF (task == 'F') THEN
    work = 'EVALUATE'
  ELSE
    work = 'COMPUTE'
  END IF
  
!        Continue the search if the step is not successful.
  
  IF (task /= 'NFGH') search = .false.
  
END DO

!     Save local variables.

IF (work == 'COMPUTE') THEN
  isave(1) = 1
ELSE IF (work == 'EVALUATE') THEN
  isave(1) = 2
END IF

isave(2) = iter
isave(3) = iterscg
dsave(1) = fc
dsave(2) = alphac

RETURN
END SUBROUTINE dtron



SUBROUTINE dcauchy(n, x, xl, xu, a, diag, col_ptr, row_ind, g, delta,  &
                   alpha, s)
 
! Code converted using TO_F90 by Alan Miller
! Date: 1999-06-29  Time: 11:18:33

INTEGER, INTENT(IN)        :: n
REAL (dp), INTENT(IN)      :: x(:)
REAL (dp), INTENT(IN)      :: xl(:)
REAL (dp), INTENT(IN)      :: xu(:)
REAL (dp), INTENT(IN)      :: a(:)
REAL (dp), INTENT(IN)      :: diag(:)
INTEGER, INTENT(IN)        :: col_ptr(:)    ! col_ptr(n+1)
INTEGER, INTENT(IN)        :: row_ind(:)
REAL (dp), INTENT(IN)      :: g(:)
REAL (dp), INTENT(IN)      :: delta
REAL (dp), INTENT(IN OUT)  :: alpha
REAL (dp), INTENT(OUT)     :: s(:)


!  **********

!  Subroutine dcauchy

!  This subroutine computes a Cauchy step that satisfies a trust
!  region constraint and a sufficient decrease condition.

!  The Cauchy step is computed for the quadratic

!        q(s) = 0.5*s'*A*s + g'*s,

!  where A is a symmetric matrix in compressed row storage, and
!  g is a vector. Given a parameter alpha, the Cauchy step is

!        s[alpha] = P[x - alpha*g] - x,

!  with P the projection onto the n-dimensional interval [xl,xu].
!  The Cauchy step satisfies the trust region constraint and the
!  sufficient decrease condition

!        || s || <= delta,      q(s) <= mu_0*(g'*s),

!  where mu_0 is a constant in (0,1).

!  The subroutine statement is

!    subroutine dcauchy(n, x, xl, xu, a, diag, col_ptr, row_ind, g, delta,
!                       alpha, s)

!  where


!    n is an integer variable.
!      On entry n is the number of variables.
!      On exit n is unchanged.

!    x is a REAL (dp) array of dimension n.
!      On entry x specifies the vector x.
!      On exit x is unchanged.

!    xl is a REAL (dp) array of dimension n.
!      On entry xl is the vector of lower bounds.
!      On exit xl is unchanged.

!    xu is a REAL (dp) array of dimension n.
!      On entry xu is the vector of upper bounds.
!      On exit xu is unchanged.

!    a is a REAL (dp) array of dimension nnz.
!      On entry a must contain the strict lower triangular part
!         of A in compressed column storage.
!      On exit a is unchanged.

!    diag is a REAL (dp) array of dimension n.
!      On entry diag must contain the diagonal elements of A.
!      On exit diag is unchanged.

!    col_ptr is an integer array of dimension n + 1.
!      On entry col_ptr must contain pointers to the columns of A.
!         The nonzeros in column j of A must be in positions
!         col_ptr(j), ... , col_ptr(j+1) - 1.
!      On exit col_ptr is unchanged.

!    row_ind is an integer array of dimension nnz.
!      On entry row_ind must contain row indices for the strict
!         lower triangular part of A in compressed column storage.
!      On exit row_ind is unchanged.

!    g is a REAL (dp) array of dimension n.
!      On entry g specifies the gradient g.
!      On exit g is unchanged.

!    delta is a REAL (dp) variable.
!      On entry delta is the trust region size.
!      On exit delta is unchanged.

!    alpha is a REAL (dp) variable.
!      On entry alpha is the current estimate of the step.
!      On exit alpha defines the Cauchy step s[alpha].

!    s is a REAL (dp) array of dimension n.
!      On entry s need not be specified.
!      On exit s is the Cauchy step s[alpha].

!  Subprograms called

!    MINPACK-2  ......  dbreakpt, dgpstep, dssyax

!    Level 1 BLAS  ...  ddot, dnrm2

!  MINPACK-2 Project. March 1999.
!  Argonne National Laboratory.
!  Chih-Jen Lin and Jorge J. More'.

!  **********

REAL (dp), PARAMETER :: p5=0.5_dp

!     Constant that defines sufficient decrease.

REAL (dp), PARAMETER :: mu0=0.01_dp

!     Interpolation and extrapolation factors.

REAL (dp), PARAMETER :: interpf=0.1_dp, extrapf=10.0_dp

LOGICAL   :: search, interp
INTEGER   :: nbrpt, nsteps
REAL (dp) :: alphas, brptmax, brptmin, gts, q
REAL (dp) :: wa(n)

! REAL (dp) :: dnrm2, ddot
! EXTERNAL dnrm2, ddot

!     Find the minimal and maximal break-point on x - alpha*g.

wa(1:n) = g(1:n)
wa(1:n) = - wa(1:n)
CALL dbreakpt(n, x, xl, xu, g, nbrpt, brptmin, brptmax)

!     Evaluate the initial alpha and decide if the algorithm
!     must interpolate or extrapolate.

CALL dgpstep(n, x, xl, xu, -alpha, g, s)
IF (dnrm2(n, s, 1) > delta) THEN
  interp = .true.
ELSE
  CALL dssyax(n, a, diag, col_ptr, row_ind, s, wa)
  gts = DOT_PRODUCT( g(1:n), s(1:n) )
  q = p5*DOT_PRODUCT( s(1:n), wa(1:n) ) + gts
  interp = (q >= mu0*gts)
END IF

nsteps = 1

!     Either interpolate or extrapolate to find a successful step.

IF (interp) THEN
  
!        Reduce alpha until a successful step is found.
  
  search = .true.
  DO WHILE (search)
    
!           This is a crude interpolation procedure that
!           will be replaced in future versions of the code.
    
    nsteps = nsteps + 1
    alpha = interpf*alpha
    CALL dgpstep(n, x, xl, xu, -alpha, g, s)
    IF (dnrm2(n, s, 1) <= delta) THEN
      CALL dssyax(n, a, diag, col_ptr, row_ind, s, wa)
      gts = DOT_PRODUCT( g(1:n), s(1:n) )
      q = p5*DOT_PRODUCT( s(1:n), wa(1:n) ) + gts
      search = (q > mu0*gts)
    END IF
  END DO
  
ELSE
  
!        Increase alpha until a successful step is found.
  
  search = .true.
  DO WHILE (search .AND. alpha <= brptmax)
    
!           This is a crude extrapolation procedure that
!           will be replaced in future versions of the code.
    
    nsteps = nsteps + 1
    alphas = alpha
    alpha = extrapf*alpha
    CALL dgpstep(n, x, xl, xu, -alpha, g, s)
    IF (dnrm2(n, s, 1) <= delta) THEN
      CALL dssyax(n, a, diag, col_ptr, row_ind, s, wa)
      gts = DOT_PRODUCT( g(1:n), s(1:n) )
      q = p5*DOT_PRODUCT( s(1:n), wa(1:n) ) + gts
      search = (q < mu0*gts)
    ELSE
      search = .false.
    END IF
  END DO
  
!        Recover the last successful step.
  
  alpha = alphas
  CALL dgpstep(n, x, xl, xu, -alpha, g, s)
END IF

RETURN

END SUBROUTINE dcauchy



SUBROUTINE dspcg(n, x, xl, xu, a, adiag, acol_ptr, arow_ind, g, delta,  &
                 rtol, s, nv, itermax, iters, info,  &
                 b, bdiag, bcol_ptr, brow_ind,  &
                 l, ldiag, lcol_ptr, lrow_ind)
 
! Code converted using TO_F90 by Alan Miller
! Date: 1999-06-29  Time: 11:18:32

INTEGER, INTENT(IN)        :: n
REAL (dp), INTENT(IN OUT)  :: x(:)
REAL (dp), INTENT(IN)      :: xl(:)
REAL (dp), INTENT(IN)      :: xu(:)
REAL (dp), INTENT(IN)      :: a(:)
REAL (dp), INTENT(IN)      :: adiag(:)
INTEGER, INTENT(IN)        :: acol_ptr(:)    ! acol_ptr(n+1)
INTEGER, INTENT(IN)        :: arow_ind(:)
REAL (dp), INTENT(IN)      :: g(:)
REAL (dp), INTENT(IN)      :: delta
REAL (dp), INTENT(IN)      :: rtol
REAL (dp), INTENT(IN OUT)  :: s(:)
INTEGER, INTENT(IN)        :: nv
INTEGER, INTENT(IN)        :: itermax
INTEGER, INTENT(OUT)       :: iters
INTEGER, INTENT(OUT)       :: info
REAL (dp), INTENT(OUT)     :: b(:)
REAL (dp), INTENT(OUT)     :: bdiag(:)
INTEGER, INTENT(OUT)       :: bcol_ptr(:)    ! bcol_ptr(n+1)
INTEGER, INTENT(OUT)       :: brow_ind(:)
REAL (dp), INTENT(OUT)     :: l(:)
REAL (dp), INTENT(OUT)     :: ldiag(:)
INTEGER, INTENT(OUT)       :: lcol_ptr(:)    ! lcol_ptr(n+1)
INTEGER, INTENT(OUT)       :: lrow_ind(:)


!  *********

!  Subroutine dspcg

!  This subroutine generates a sequence of approximate minimizers
!  for the subproblem

!        min { q(x) : xl <= x <= xu }.

!  The quadratic is defined by

!        q(x[0]+s) = 0.5*s'*A*s + g'*s,

!  where x[0] is a base point provided by the user, A is a symmetric
!  matrix in compressed column storage, and g is a vector.

!  At each stage we have an approximate minimizer x[k], and generate a direction
!  p[k] by using a preconditioned conjugate gradient method on the subproblem

!        min { q(x[k]+p) : || L'*p || <= delta, s(fixed) = 0 },

!  where fixed is the set of variables fixed at x[k], delta is the trust region
!  bound, and L is an incomplete Cholesky factorization of the submatrix

!        B = A(free:free),

!  where free is the set of free variables at x[k]. Given p[k],
!  the next minimizer x[k+1] is generated by a projected search.

!  The starting point for this subroutine is x[1] = x[0] + s, where
!  x[0] is a base point and s is the Cauchy step.

!  The subroutine converges when the step s satisfies

!        || (g + A*s)[free] || <= rtol*|| g[free] ||

!  In this case the final x is an approximate minimizer in the
!  face defined by the free variables.

!  The subroutine terminates when the trust region bound does
!  not allow further progress, that is, || L'*p[k] || = delta.
!  In this case the final x satisfies q(x) < q(x[k]).

!  The subroutine statement is

!    subroutine dspcg(n, x, xl, xu, a, adiag, acol_ptr, arow_ind, g, delta,
!                     rtol, s, nv, itermax, iters, info,
!                     b, bdiag, bcol_ptr, brow_ind,
!                     l, ldiag, lcol_ptr, lrow_ind)

!  where

!    n is an integer variable.
!      On entry n is the number of variables.
!      On exit n is unchanged.

!    x is a REAL (dp) array of dimension n.
!      On entry x specifies the vector x.
!      On exit x is the final minimizer.

!    xl is a REAL (dp) array of dimension n.
!      On entry xl is the vector of lower bounds.
!      On exit xl is unchanged.

!    xu is a REAL (dp) array of dimension n.
!      On entry xu is the vector of upper bounds.
!      On exit xu is unchanged.

!    a is a REAL (dp) array of dimension nnz.
!      On entry a must contain the strict lower triangular part
!         of A in compressed column storage.
!      On exit a is unchanged.

!    adiag is a REAL (dp) array of dimension n.
!      On entry adiag must contain the diagonal elements of A.
!      On exit adiag is unchanged.

!    acol_ptr is an integer array of dimension n + 1.
!      On entry acol_ptr must contain pointers to the columns of A.
!         The nonzeros in column j of A must be in positions
!         acol_ptr(j), ... , acol_ptr(j+1) - 1.
!      On exit acol_ptr is unchanged.

!    arow_ind is an integer array of dimension nnz.
!      On entry arow_ind must contain row indices for the strict
!         lower triangular part of A in compressed column storage.
!      On exit arow_ind is unchanged.

!    g is a REAL (dp) array of dimension n.
!      On entry g must contain the vector g.
!      On exit g is unchanged.

!    delta is a REAL (dp) variable.
!      On entry delta is the trust region size.
!      On exit delta is unchanged.

!    rtol is a REAL (dp) variable.
!      On entry rtol specifies the accuracy of the final minimizer.
!      On exit rtol is unchanged.

!    s is a REAL (dp) array of dimension n.
!      On entry s is the Cauchy step.
!      On exit s contain the final step.

!    nv is an integer variable.
!      On entry nv specifies the amount of memory available for the
!         incomplete Cholesky factorization.
!      On exit nv is unchanged.

!    itermax is an integer variable.
!      On entry itermax specifies the limit on the number of
!         conjugate gradient iterations.
!      On exit itermax is unchanged.

!    iters is an integer variable.
!      On entry iters need not be specified.
!      On exit iters is set to the number of conjugate
!         gradient iterations.

!    info is an integer variable.
!      On entry info need not be specified.
!      On exit info is set as follows:

!          info = 1  Convergence. The final step s satisfies
!                    || (g + A*s)[free] || <= rtol*|| g[free] ||,
!                    and the final x is an approximate minimizer
!                    in the face defined by the free variables.

!          info = 2  Termination. The trust region bound does
!                    not allow further progress.

!          info = 3  Failure to converge within itermax iterations.

!    b is a REAL (dp) array of dimension nnz.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品美女久久久久久2018 | 黄色日韩网站视频| 欧美人xxxx| 午夜av一区二区三区| 制服.丝袜.亚洲.另类.中文| 天堂va蜜桃一区二区三区| 欧美精品色综合| 丝袜美腿亚洲综合| 欧美xxxx在线观看| 国产999精品久久| 亚洲色图欧美激情| 欧美日韩电影在线播放| 久久精品国产77777蜜臀| 久久影音资源网| 99久久99久久精品国产片果冻| 亚洲素人一区二区| 欧美精品乱码久久久久久按摩| 麻豆精品一区二区三区| 国产亚洲制服色| 91尤物视频在线观看| 午夜电影网一区| 久久尤物电影视频在线观看| 一本色道久久综合狠狠躁的推荐 | 欧美乱妇23p| 精品一区二区在线播放| 久久久精品影视| 不卡欧美aaaaa| 日本午夜精品一区二区三区电影| 欧美精品一区二区在线播放 | 色综合久久综合| 日日摸夜夜添夜夜添亚洲女人| 欧美一级二级三级蜜桃| 国内一区二区在线| 一区二区久久久久| 日韩精品影音先锋| 在线观看中文字幕不卡| 免费高清视频精品| 国产精品美日韩| 欧美亚洲免费在线一区| 国产另类ts人妖一区二区| 亚洲精品欧美激情| 欧美精品一区二区三区蜜桃视频| 99精品桃花视频在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品久久久久久久第一福利| 欧美一区二区三区在线观看视频| 不卡视频在线观看| 精品无人区卡一卡二卡三乱码免费卡| 亚洲欧美在线视频| 久久人人爽爽爽人久久久| 欧美羞羞免费网站| 国产成人精品1024| 久久精品国产久精国产| 亚洲成va人在线观看| 亚洲欧洲日韩综合一区二区| 2021国产精品久久精品| 欧美男男青年gay1069videost| 成人午夜视频在线观看| 久久99久久久久| 亚洲aaa精品| 一区二区在线观看不卡| 国产欧美一区二区精品仙草咪| 日韩三级中文字幕| 欧美年轻男男videosbes| 在线观看日韩毛片| 99久久精品国产导航| 成人一级黄色片| 久久99久久久久久久久久久| 蜜臀av在线播放一区二区三区| 一区二区三区国产精华| 国产精品卡一卡二| 国产欧美一区二区精品仙草咪| 久久日韩精品一区二区五区| 日韩三级免费观看| 日韩视频123| 日韩欧美一级片| 精品剧情在线观看| 精品女同一区二区| 久久女同互慰一区二区三区| 久久精品人人爽人人爽| 国产亚洲欧美激情| 国产欧美日韩麻豆91| 日本一区免费视频| 国产精品久久久久影院老司| 中文字幕日韩精品一区| 亚洲图片另类小说| 一区二区三区欧美在线观看| 亚洲第一在线综合网站| 亚洲成人精品影院| 日本va欧美va瓶| 久久99精品国产.久久久久| 久久99精品久久只有精品| 激情综合五月天| 国产传媒久久文化传媒| 99re热视频这里只精品| 在线看国产一区| 欧美一区二区观看视频| 精品久久久久久亚洲综合网| 欧美国产一区二区| 亚洲人成网站精品片在线观看| 一区二区三区高清在线| 日日摸夜夜添夜夜添亚洲女人| 久久99精品视频| 成人h动漫精品| 欧美中文字幕一区二区三区| 欧美一级理论性理论a| 久久久久久久久久久99999| 国产精品视频一二三区| 一个色在线综合| 久久精品国产网站| 成人sese在线| 91精品黄色片免费大全| 久久久精品免费免费| 成人免费在线播放视频| 日韩和的一区二区| 国产精品一区一区三区| 欧美在线免费视屏| 欧美大片免费久久精品三p| 国产精品久久二区二区| 五月激情综合婷婷| 国产91在线看| 91 com成人网| 最近中文字幕一区二区三区| 日韩成人av影视| 白白色 亚洲乱淫| 91精品国产色综合久久不卡蜜臀 | 性感美女久久精品| 国产永久精品大片wwwapp | 国产精品99久久不卡二区| 91福利视频网站| 久久日一线二线三线suv| 亚洲一区二区三区影院| 国产精品18久久久久久久久久久久 | 日韩一区二区三区在线视频| 亚洲视频一区二区免费在线观看| 日本女人一区二区三区| 波多野结衣的一区二区三区| 欧美一卡二卡三卡| 亚洲男帅同性gay1069| 国产在线精品一区二区夜色 | 图片区日韩欧美亚洲| 国产91丝袜在线播放0| 在线成人免费观看| 亚洲精选在线视频| 粉嫩aⅴ一区二区三区四区五区 | 日本高清不卡一区| 国产日产欧美一区二区三区| 1区2区3区精品视频| 国产婷婷精品av在线| 精品国产乱码久久久久久闺蜜| 亚洲色图欧美偷拍| 国产精品88av| 精品免费国产一区二区三区四区| 亚洲bt欧美bt精品777| 亚洲综合区在线| 欧美欧美欧美欧美| 久久国产精品第一页| 久久综合狠狠综合久久综合88| 国产成人在线影院| 国产精品乱人伦一区二区| 91女厕偷拍女厕偷拍高清| 亚洲精品精品亚洲| 欧美精品日韩精品| 狠狠色丁香九九婷婷综合五月 | 国产精品久久久久一区 | 国产91丝袜在线18| 亚洲免费在线观看| 51精品视频一区二区三区| 国产一区二区三区视频在线播放| 中文字幕欧美一区| 欧美日韩国产综合视频在线观看 | 久久看人人爽人人| 成人av网站在线| 亚洲1区2区3区4区| 久久影院视频免费| 91成人免费网站| 黄页视频在线91| 亚洲韩国精品一区| 久久精品人人做人人爽97| 在线观看国产日韩| 国内精品写真在线观看| 亚洲女人的天堂| 欧美第一区第二区| 在线日韩国产精品| 激情综合亚洲精品| 亚洲二区在线观看| 日本一区免费视频| 欧美一区二区成人| 91美女片黄在线| 毛片一区二区三区| 伊人色综合久久天天| 久久免费国产精品| 欧美日韩精品电影| 99久久婷婷国产综合精品电影| 日本三级亚洲精品| 亚洲欧美日韩综合aⅴ视频| 精品国产污污免费网站入口 | 成人的网站免费观看| 麻豆91在线观看| 夜夜操天天操亚洲|