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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
如下为NAG library里面e04wc的程序,是别人文章里给的,用来求某函数最小值的,但是我运行时会说错误使用e04wc,输出参数太多,球球大佬怎么搞?7 y% _5 W3 {% P+ g# t
' u5 ?% ^6 v2 C8 w' X( n

! A  h0 V* S/ O& w7 Kfunction e04wc_example2 t* p6 O% |, B9 q9 _! k
% f# Q1 |7 ~7 L8 t, N: D
fprintf('e04wc example results\n\n');
* `$ F) h* e2 U& d7 f& d( @, v$ I) S; Za  = [1, 1, 1, 1];! A' y! g6 Q7 T  Q0 C& u
bl = [1, 1, 1, 1, -1e25, -1e25,   25];
0 a3 q3 E7 R2 v9 a5 Q" P: lbu = [5, 5, 5, 5,    20,    40, 1e25];6 _6 x# r1 q# s2 I+ F1 ]
istate = zeros(7, 1, 'int64');
: f7 j3 X+ G* Accon   = zeros(2,1);4 s& W. j: Y" W* j! ^
cjac   = zeros(2,4);
+ P, N  N% B, a+ A+ }clamda = zeros(7,1);
% g1 g# v5 O6 Y! _0 z, Y, Ohess   = zeros(4,4);
6 P/ j$ o, v" N! C5 ~- Mx      = [1; 5; 5; 1];
  J$ n  K8 }! ?  V[iw,rw,ifail]=e04wc;
; `- \2 R+ c/ }) I9 w( o[majits, istate, ccon, cjac, clamda, objf, grad, hess, x, ...
% d& d6 d1 J" m- P9 X  p! J                                          iw, rw, user, ifail] = ...) ^2 }% Y' m# A
  e04wd(...
9 i, }! E" o- l) [4 B/ y9 F        a, bl, bu, @confun, @objfun, istate, ccon, cjac, clamda, ...! Y2 ~' w7 ?& C  `' F2 ~5 g+ G4 m/ E
        hess, x, iw, rw);
& N. g, @7 X& \4 R1 efprintf('Final objective value    :   %8.1f\n',objf);
  x+ A% A  c+ D2 [7 Jfprintf('Optimal values for x     :  ');
% C1 X0 I9 s, ~' Y+ p& H. J( Wfprintf(' %9.2f',x);
! b. W9 `( B$ a" ?8 C: nfprintf('\nGradients at x           :  ');
' h* [$ Q3 X! X" G6 f# ^7 rfprintf(' %9.2f',grad);8 u! L3 P$ U; U. X( m
fprintf('\nConstraint functions at x:  ');7 a" i% N! V; D% O8 T0 L
fprintf(' %9.2f',ccon);8 ?2 P; r9 d/ ~7 C$ L/ H6 |" k
fprintf('\nNumber of major iterations  = %5d\n',majits);
0 T& k: z( P" J6 w! c
4 y  H& g* V1 |/ x9 B0 Rfunction [mode, ccon, cjac, user] = ...
/ e% w& V! O& ^9 j; Q    confun(mode, ncnln, n, ldcj, needc, x, cjac, nstate, user)6 @$ @* x0 M7 Q2 c0 R+ f  X
  ccon = zeros(ncnln, 1);
" S" Q" d) S6 v. q( [7 u  if (nstate == 1): T7 ]! [8 k5 x$ `2 f$ d- @
%  first call to confun.  set all jacobian elements to zero.0 X& p/ a7 Z5 X' E3 I
%  note that this will only work when 'derivative level = 3'
/ u3 K. U! Q' r" K%  (the default; see section 11.2).2 N5 K$ ~' }8 G
    cjac = zeros(ncnln, n);
! N" r( C; [% [& n% \  end
& [' g, f( Q7 P, r' z  if (needc(1) > 0)
1 T  H2 \' {% V( Q1 ~( Z    if (mode == 0  ||  mode == 2)
) f% C2 c6 n, V* P      ccon(1) = x(1)^2 + x(2)^2 + x(3)^2 + x(4)^2;
$ D3 `, ^: N) d4 V0 _% T    end1 x& F) e  ?: _1 d
    if (mode == 1  ||  mode == 2)4 A' g, ?; [8 e: Q
      cjac(1,1) = 2*x(1);
, s- D* R+ c% i$ y      cjac(1,2) = 2*x(2);
) K: k1 y8 ^; n1 I: Z      cjac(1,3) = 2*x(3);6 P) a. A8 g& I5 {( o9 w3 G) R
      cjac(1,4) = 2*x(4);: }* s3 n5 u0 I2 x' I
    end, o! D4 g5 O& F
  end" X7 B$ [9 R4 l4 U
  if (needc(2) > 0)
8 ]7 V. y9 J/ A/ V' C/ v9 K    if (mode == 0  ||  mode == 2)9 J, p/ D1 `; b" @5 O1 t4 }# M$ }
      ccon(2) = x(1)*x(2)*x(3)*x(4);
& H# T" a7 Q0 J1 O, `+ y' b. e    end, f- A% M, K$ b' x! Y( y
    if (mode == 1  ||  mode == 2)
$ e; U8 U# Y; I1 ^5 j      cjac(2,1) = x(2)*x(3)*x(4);
0 A/ |  O4 f# r5 x( A3 n2 k( E1 K# H      cjac(2,2) = x(1)*x(3)*x(4);/ C0 }4 |* ?( l  J4 B$ a5 k& y3 {) C
      cjac(2,3) = x(1)*x(2)*x(4);
* K9 e: w8 B/ o/ s0 N      cjac(2,4) = x(1)*x(2)*x(3);7 O, r3 s$ F# Z" g/ S# a% N4 B
    end1 u& l+ P+ k7 L8 K# a6 o& D
  end
+ c, L2 O/ r8 R& Y5 ~4 \6 a; o! Z- ~
" }7 M# v) v% `# k/ x; y! m3 yfunction [mode, objf, grad, user] = objfun(mode, n, x, grad, nstate, user): o! r+ c9 i+ y
  if (mode == 0 || mode == 2)
/ E2 w+ V6 [2 |6 I1 y& j    objf = x(1)*x(4)*(x(1)+x(2)+x(3)) + x(3);
, z2 N7 U) j4 r' q4 o, P0 F  end
! F2 u& T1 V+ q' K/ a  if (mode == 1 || mode == 2)
0 R7 ~& N6 g& `! L    grad(1) = x(4)*(2*x(1)+x(2)+x(3));2 H7 a' D) Z+ E4 f, ]' N
    grad(2) = x(1)*x(4);
: O/ j5 @7 `5 }6 R    grad(3) = x(1)*x(4) + 1;& q1 i# }# T& ?6 n) g: w
    grad(4) = x(1)*(x(1)+x(2)+x(3));
  c. W1 |! P+ s& v& j( [  end7 ^6 }( `4 O1 U9 ]' C. c9 }# x
  • 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-24 09:05 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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