找回密码
 注册
关于网站域名变更的通知
查看: 434|回复: 2
打印 上一主题 下一主题

错误使用e04wc,输出参数太多

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-11-2 14:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
如下为NAG library里面e04wc的程序,是别人文章里给的,用来求某函数最小值的,但是我运行时会说错误使用e04wc,输出参数太多,球球大佬怎么搞?6 g! B4 U4 Z8 o2 w' b8 Y/ b

- ^! f3 o8 Q4 |4 ]3 J# H+ _1 Y! O! ]2 s7 x% e( O0 y+ J
function e04wc_example
  {+ w0 H: V7 `
5 O+ c% Q; }' l' f' Y6 Cfprintf('e04wc example results\n\n');
$ |0 J& u! t& ~- i. Oa  = [1, 1, 1, 1];
0 j/ z( w4 O) F9 {2 q6 Hbl = [1, 1, 1, 1, -1e25, -1e25,   25];* F0 }! K  E* h, O# H! U: M
bu = [5, 5, 5, 5,    20,    40, 1e25];8 t' M  p( v6 E. z; Q/ k
istate = zeros(7, 1, 'int64');
% Q: }2 ^! G' ?: J% t" jccon   = zeros(2,1);, E% d( v* f! H7 t
cjac   = zeros(2,4);% o2 U) o9 Z. q* X
clamda = zeros(7,1);: P8 o& c* E1 r3 N; Q+ H
hess   = zeros(4,4);
, U7 P& q1 K1 ?x      = [1; 5; 5; 1];
5 @; e7 [( D3 o  h0 C9 {[iw,rw,ifail]=e04wc;; @3 {+ t9 g, n" F" q  A, U! d
[majits, istate, ccon, cjac, clamda, objf, grad, hess, x, ...9 x3 a" H3 D" j- t8 T
                                          iw, rw, user, ifail] = ...
8 J/ j% G! e1 f; B$ x  e04wd(...
5 {( ^2 S( y  ~* z        a, bl, bu, @confun, @objfun, istate, ccon, cjac, clamda, ...4 G" l- e! d1 [, T) u1 x( Y& b+ j
        hess, x, iw, rw);' Q& D  q, L6 ^& O8 a$ h. p
fprintf('Final objective value    :   %8.1f\n',objf);
* A2 K4 a) r4 ]" dfprintf('Optimal values for x     :  ');2 f# M+ V6 V/ R6 h: L
fprintf(' %9.2f',x);
' L- c3 M4 w5 P) dfprintf('\nGradients at x           :  ');3 e) W; c! C  Q2 m( g; i
fprintf(' %9.2f',grad);; u1 x6 @9 k( {/ l: p
fprintf('\nConstraint functions at x:  ');
! b( L3 o8 O2 Z% b$ Dfprintf(' %9.2f',ccon);
: O) e( V+ g! k6 x/ Cfprintf('\nNumber of major iterations  = %5d\n',majits);; S  V0 k! J7 D

  Z1 N: x' `& ?2 t: p5 Zfunction [mode, ccon, cjac, user] = ...5 Z0 u( [! ]4 n6 E! R
    confun(mode, ncnln, n, ldcj, needc, x, cjac, nstate, user)
! z6 R) H$ q1 ]! l4 s" A  ccon = zeros(ncnln, 1);. z9 h3 E2 |6 I- r1 z
  if (nstate == 1)' B: Y2 i) E' \! X
%  first call to confun.  set all jacobian elements to zero.: o3 X4 B" \$ Q/ T
%  note that this will only work when 'derivative level = 3', ?9 v& j; S- p7 e, N4 Y( P7 D
%  (the default; see section 11.2).7 p6 `+ B% J' o
    cjac = zeros(ncnln, n);2 \  Z  L8 Y9 }7 P
  end: G# {; ]# z5 Q0 ?9 E
  if (needc(1) > 0)
- P' e* z& X5 C4 L7 C# g  z: ?    if (mode == 0  ||  mode == 2)$ M* _$ X+ r+ o4 w( r
      ccon(1) = x(1)^2 + x(2)^2 + x(3)^2 + x(4)^2;
& c  q+ \' y$ t& T9 [    end
5 T$ T: b% Z, v5 J  \9 {4 h    if (mode == 1  ||  mode == 2)
& b% h# n/ J0 K      cjac(1,1) = 2*x(1);# J+ S7 I) L1 v% G; M( D9 X' U
      cjac(1,2) = 2*x(2);3 b8 B2 H4 R( R( C
      cjac(1,3) = 2*x(3);! P+ g* a" x5 c$ s5 y
      cjac(1,4) = 2*x(4);
2 k( n7 _8 m' T2 _( w6 z" D& C    end
" U+ g- S# i& ^/ r  v- a0 ~  end
5 r8 X% ]7 G1 H* J5 N. @  R  if (needc(2) > 0)
# R" _# W; M/ c3 |' V2 \: Z; g5 E    if (mode == 0  ||  mode == 2)
+ f; F+ ^# l5 c5 z1 x: Q      ccon(2) = x(1)*x(2)*x(3)*x(4);) d  y% M  i" ?, l
    end
  b  P( Z' Y2 `) d2 G! v( s    if (mode == 1  ||  mode == 2)
, I- g; j9 V& K5 I      cjac(2,1) = x(2)*x(3)*x(4);; M" \6 `. d! z, t( V
      cjac(2,2) = x(1)*x(3)*x(4);) h- o1 }- j, W" q" b$ |; I
      cjac(2,3) = x(1)*x(2)*x(4);
. Y3 `1 |+ Z. ?$ w+ a7 G      cjac(2,4) = x(1)*x(2)*x(3);; F3 Y$ S6 u2 j1 Y
    end
4 B) e- y+ D0 W" `; ]) |/ Q& F& p  end6 K. ]; ]5 f0 [1 h; a

0 v& J5 [  [! `( M4 ~, Vfunction [mode, objf, grad, user] = objfun(mode, n, x, grad, nstate, user)# z! T4 f# P/ g, b& q
  if (mode == 0 || mode == 2), \& _$ F' S! S& ^. g7 h
    objf = x(1)*x(4)*(x(1)+x(2)+x(3)) + x(3);
8 U% ^, H; ?/ C) a7 m5 `  end' F# H1 x7 W9 ^( P) d
  if (mode == 1 || mode == 2)  w- W$ h8 b2 [4 B: W6 I( ]
    grad(1) = x(4)*(2*x(1)+x(2)+x(3));
, {/ O( i5 I" Z: J    grad(2) = x(1)*x(4);
. t( {& r% V0 a  L- I- a! X  }    grad(3) = x(1)*x(4) + 1;
& R+ c5 A% {9 B7 j! T2 @# D9 r    grad(4) = x(1)*(x(1)+x(2)+x(3));" p# Q  h4 V" `, y7 W& B4 l
  end
' W" d' }( ^5 ~2 |' x' Q/ C+ n
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-11-2 16:35 | 只看该作者
    来了,来了,专业赚积分顶起来

    该用户从未签到

    3#
    发表于 2020-11-2 19:20 | 只看该作者
    哪里有问题啊
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-20 23:06 , Processed in 0.078125 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表