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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
如下为NAG library里面e04wc的程序,是别人文章里给的,用来求某函数最小值的,但是我运行时会说错误使用e04wc,输出参数太多,球球大佬怎么搞?
% u1 ~' |/ j1 Q9 F# w
+ a# K# e/ I3 D1 V9 q
# _+ `' S: {  X: V7 F7 o# G  `function e04wc_example
7 J: V2 S! H" l: }& t) _7 ~
5 }0 V5 |& Z. |* h* j- Afprintf('e04wc example results\n\n');
9 g) \' U4 M, z3 @8 j% E/ la  = [1, 1, 1, 1];' k' p4 H3 f- u
bl = [1, 1, 1, 1, -1e25, -1e25,   25];
4 _' Y& |, X, cbu = [5, 5, 5, 5,    20,    40, 1e25];* D. z9 ^- W: N" h5 E
istate = zeros(7, 1, 'int64');
5 Z' W+ |; E* j4 }ccon   = zeros(2,1);. l/ y6 c, |0 J, x- }7 H! }8 x
cjac   = zeros(2,4);/ E6 V  j+ O& j5 N. W. f
clamda = zeros(7,1);. t5 h3 T" A; ]$ _. K& w
hess   = zeros(4,4);
2 U0 p9 o9 @' j% t5 w) dx      = [1; 5; 5; 1];, b( U) s( x0 V' x6 e1 V6 ^; C
[iw,rw,ifail]=e04wc;
6 y3 v$ n7 E# Q# W[majits, istate, ccon, cjac, clamda, objf, grad, hess, x, ...
8 i6 T' @9 [) F' d                                          iw, rw, user, ifail] = ...
; m; e7 V$ k  ?9 T7 X6 x  e04wd(...; K# B/ C% C$ A1 j1 P4 \! g5 ]
        a, bl, bu, @confun, @objfun, istate, ccon, cjac, clamda, ...2 p; D: ?! ^$ I) h
        hess, x, iw, rw);
6 a3 b4 u9 Y- j/ efprintf('Final objective value    :   %8.1f\n',objf);7 W, g8 D: u/ y+ p) J: a
fprintf('Optimal values for x     :  ');
4 x9 Y9 Q5 U3 e- p. z" L) C% O! Yfprintf(' %9.2f',x);
3 g4 q/ B% f8 h5 hfprintf('\nGradients at x           :  ');
, m9 B) I3 I7 ?# ?fprintf(' %9.2f',grad);
6 n8 G# I& t+ r% e& b' b0 j6 }fprintf('\nConstraint functions at x:  ');0 }; n1 H/ j" c/ _
fprintf(' %9.2f',ccon);
3 {! `) C0 O4 Cfprintf('\nNumber of major iterations  = %5d\n',majits);
' b8 I& W5 l% E$ h1 G/ F' P$ _9 I% `
function [mode, ccon, cjac, user] = ...1 n$ d* ^6 b) Y- G6 |
    confun(mode, ncnln, n, ldcj, needc, x, cjac, nstate, user)
* b0 @( W( c- I! l! g  ccon = zeros(ncnln, 1);* S: X+ Q6 W6 T' h: Z0 e$ W
  if (nstate == 1)+ R7 l! [* {6 B# y/ `; @/ U5 }
%  first call to confun.  set all jacobian elements to zero.& I8 ^+ Q) I" q, T' \
%  note that this will only work when 'derivative level = 3') `: O/ o+ l! L3 U  Y' c& b
%  (the default; see section 11.2).
8 D! Z* e1 r6 r$ [" r. {* r3 S    cjac = zeros(ncnln, n);
$ p2 q$ V. [: @% W5 b  end  s0 J+ B9 _" S7 ]4 b
  if (needc(1) > 0)
/ k) P- l6 X8 O; B+ `    if (mode == 0  ||  mode == 2)/ O& f/ H- j3 }. @0 w* n0 N% k# n
      ccon(1) = x(1)^2 + x(2)^2 + x(3)^2 + x(4)^2;
. y! ^9 `: o- q* Z    end0 A& ?; j) F& y; `
    if (mode == 1  ||  mode == 2)( ^# |  `. H8 B* Z1 @- N) L
      cjac(1,1) = 2*x(1);
+ a* F  n8 K0 z: `1 K      cjac(1,2) = 2*x(2);( ^  R( t; o3 J1 f3 W
      cjac(1,3) = 2*x(3);
# r- m# D0 @  N( U      cjac(1,4) = 2*x(4);
% C- ^. K0 H. w1 ^    end% z- ?$ ^! f& e; H( V7 r$ ^
  end
$ M" U8 C/ E) }( T0 o  U6 W  if (needc(2) > 0)4 V! G9 K' G5 z- \& M9 M/ C2 v
    if (mode == 0  ||  mode == 2)
2 z7 Z9 D/ Z8 l, r! Y      ccon(2) = x(1)*x(2)*x(3)*x(4);, s, n. a0 @% i
    end' O3 N4 U% g$ a  c$ |) z& n6 k
    if (mode == 1  ||  mode == 2)9 S0 ?, z5 n7 d2 o' w
      cjac(2,1) = x(2)*x(3)*x(4);
+ U& f! E; v% Q; {5 ~      cjac(2,2) = x(1)*x(3)*x(4);5 h: A; G0 J9 C. n8 P; a& h8 s0 }
      cjac(2,3) = x(1)*x(2)*x(4);
: |+ P" Z6 L5 s6 I      cjac(2,4) = x(1)*x(2)*x(3);
5 d3 |* I: o2 D% y0 w+ J    end! S# H- I, B- L5 W1 b% Q
  end# {$ J* `9 y6 h
9 ], s5 \- ~; W0 H* ^3 \
function [mode, objf, grad, user] = objfun(mode, n, x, grad, nstate, user)
) B# ~5 D% C% l+ U( ?  if (mode == 0 || mode == 2)  \- y) R* l1 v6 p* Z
    objf = x(1)*x(4)*(x(1)+x(2)+x(3)) + x(3);- S  N9 S3 R! k; X& ^
  end
9 q$ q! |  ^$ F$ K  if (mode == 1 || mode == 2)
% A; Y/ n4 `5 t1 r    grad(1) = x(4)*(2*x(1)+x(2)+x(3));
( B8 Z# M8 F! O% d7 O' f" i0 G    grad(2) = x(1)*x(4);
8 q- K9 ?, ~2 K3 F8 _" m# K    grad(3) = x(1)*x(4) + 1;
7 P  O1 y+ G4 P    grad(4) = x(1)*(x(1)+x(2)+x(3));  a: J# B* K1 d8 q" [& m) R( ?( ?
  end
( u! S/ [# M" L9 P; f
  • 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-11-2 07:54 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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