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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
如下为NAG library里面e04wc的程序,是别人文章里给的,用来求某函数最小值的,但是我运行时会说错误使用e04wc,输出参数太多,球球大佬怎么搞?+ U& ~5 V( ]9 z8 ?
! `5 g% y' V. N( X! `+ f/ N) |- g. p

8 @; v3 _- a" Gfunction e04wc_example
* Z9 S% j+ _1 d  s( e: ^5 @5 }- W5 a, i( z% ?) M7 k" {
fprintf('e04wc example results\n\n');
! B, k7 }) L  A8 }1 i. `& ^a  = [1, 1, 1, 1];
: S' C' U, a+ M/ vbl = [1, 1, 1, 1, -1e25, -1e25,   25];7 n- p/ Y# @8 E1 P5 @/ e  f
bu = [5, 5, 5, 5,    20,    40, 1e25];
$ |' t  _! T5 m3 eistate = zeros(7, 1, 'int64');
2 Y# I- d& `2 W% Pccon   = zeros(2,1);
& _' N% I. v8 c3 ~3 zcjac   = zeros(2,4);1 ^' |5 W7 a6 M1 w: \7 ^" }
clamda = zeros(7,1);: U4 a% Q$ G/ R. i! g! n# Q) z* ]
hess   = zeros(4,4);, l. u9 G' h; k& l. [$ o- j/ f% t
x      = [1; 5; 5; 1];
& Y0 X* N$ L' x/ K; V: b% Q[iw,rw,ifail]=e04wc;
  }6 [, T6 ~5 v+ l) @1 {% @[majits, istate, ccon, cjac, clamda, objf, grad, hess, x, ...- k  m7 K/ d5 y6 _
                                          iw, rw, user, ifail] = ...; H/ b  O& M3 U$ X# Y
  e04wd(.... @  n) [) {* g
        a, bl, bu, @confun, @objfun, istate, ccon, cjac, clamda, ...
# R: `0 r: d" V: U        hess, x, iw, rw);  o0 _$ ], U7 [; }7 K2 o
fprintf('Final objective value    :   %8.1f\n',objf);, j0 d* ?$ i$ q. z
fprintf('Optimal values for x     :  ');1 F  ^9 o! }( J' `. N( B
fprintf(' %9.2f',x);: p( C  X/ J& M" \
fprintf('\nGradients at x           :  ');, E, G6 e0 v9 L% L. \
fprintf(' %9.2f',grad);
  G4 |' d# O  w5 W* {2 T3 O6 [fprintf('\nConstraint functions at x:  ');
. r8 J4 L' h4 z9 {! g" A3 G! N( pfprintf(' %9.2f',ccon);
3 X+ f1 t9 L, W2 i; p! g$ Lfprintf('\nNumber of major iterations  = %5d\n',majits);1 V) Q8 q/ @# P$ T
) G! n, t5 k6 {6 v
function [mode, ccon, cjac, user] = .../ i) |% Y9 g' @, u+ y" T
    confun(mode, ncnln, n, ldcj, needc, x, cjac, nstate, user)1 |+ ~% [* H% B* G0 [7 y, x
  ccon = zeros(ncnln, 1);
& V! M7 V$ T3 E8 V  if (nstate == 1)
" ~& ^$ N  [2 T% H%  first call to confun.  set all jacobian elements to zero.
. S, ~$ w6 T0 q$ _( p%  note that this will only work when 'derivative level = 3'& ]" u4 m2 g9 z* E! l2 _5 v6 c
%  (the default; see section 11.2).
7 k$ `+ O: U; t/ ?    cjac = zeros(ncnln, n);
6 b. H2 U& [) K. D( R  end( e" c2 A6 u+ G) `
  if (needc(1) > 0)5 g: x- a2 X+ c4 D& C
    if (mode == 0  ||  mode == 2), G/ `! ?$ r; Y2 Q5 P
      ccon(1) = x(1)^2 + x(2)^2 + x(3)^2 + x(4)^2;
/ h: q, W9 p: s  w" E+ @    end  h' ~& S" z" ?2 P; ^. U1 P+ t3 r+ N
    if (mode == 1  ||  mode == 2)
- g7 z4 b$ _5 z: ]      cjac(1,1) = 2*x(1);0 c; @- g( J8 W/ N, O9 k/ B
      cjac(1,2) = 2*x(2);
. H' G0 B3 H9 l, U4 V$ I- p% F      cjac(1,3) = 2*x(3);, D4 C' G1 }; a8 m1 }& ^) v
      cjac(1,4) = 2*x(4);
* N" w6 h( U  E) R% U5 K! [    end0 Y& ?1 A- R2 q6 Z) C
  end+ }& C+ q6 p# |& l: `8 A
  if (needc(2) > 0)3 I( _8 h* J* M$ q2 @
    if (mode == 0  ||  mode == 2)/ D' n2 ]) i- R1 ~/ M
      ccon(2) = x(1)*x(2)*x(3)*x(4);9 {$ _- ^. F* G& b' m4 z$ M+ U
    end5 o1 W6 W( J- v- N4 f4 S
    if (mode == 1  ||  mode == 2)
# P1 z2 g6 c4 ^      cjac(2,1) = x(2)*x(3)*x(4);
% z, K/ h5 c; G; \+ F( X* K" g      cjac(2,2) = x(1)*x(3)*x(4);. D! r& X- N, }3 }; W4 M4 j8 S
      cjac(2,3) = x(1)*x(2)*x(4);
+ D8 k( a. i; ]* O$ I1 d# S4 F      cjac(2,4) = x(1)*x(2)*x(3);4 C. O. h# {2 ?6 \: Z1 h4 P
    end
' n5 A  i9 X0 y- d, [) W  end
  a% K- [6 C9 b& n; [) l- ^
! P% H9 P2 m- T0 U& m7 [2 }; Nfunction [mode, objf, grad, user] = objfun(mode, n, x, grad, nstate, user)1 P7 J. ]* f: X) h
  if (mode == 0 || mode == 2)
6 A8 w: ?) l# D  o0 p; v# H    objf = x(1)*x(4)*(x(1)+x(2)+x(3)) + x(3);
: \0 s# z  g' y  end
$ u* n: c, P% N. s' p7 }5 a  if (mode == 1 || mode == 2)7 k+ F, m) \5 ^" M8 {8 a/ N0 T
    grad(1) = x(4)*(2*x(1)+x(2)+x(3));7 N( U: @- U- O" ]# ^; a) C
    grad(2) = x(1)*x(4);  A# D+ u4 T4 X# m; ~8 D
    grad(3) = x(1)*x(4) + 1;
. f4 [. h6 _% J- F7 d    grad(4) = x(1)*(x(1)+x(2)+x(3));
8 \& u) B" Q! X5 x& c  end+ A  }1 b5 q1 k
  • 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-10-7 01:34 , Processed in 0.187500 second(s), 23 queries , Gzip On.

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

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

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