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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
如下为NAG library里面e04wc的程序,是别人文章里给的,用来求某函数最小值的,但是我运行时会说错误使用e04wc,输出参数太多,球球大佬怎么搞?" z6 @4 v1 e# c

9 U/ A8 M! R$ R1 b
6 ?8 h$ ^' z, S0 \; {: \function e04wc_example2 ]7 B/ N( f2 J9 [! [

1 s9 C" z1 r  P3 ]fprintf('e04wc example results\n\n');
0 K' t( {! Z1 c2 Q- ya  = [1, 1, 1, 1];
9 w: R: n+ m* S' Z  z3 N* lbl = [1, 1, 1, 1, -1e25, -1e25,   25];4 a  y& G7 o, {3 e3 m- F
bu = [5, 5, 5, 5,    20,    40, 1e25];2 t( O& T/ R$ ?1 D$ O5 T  {* A* O
istate = zeros(7, 1, 'int64');
9 ]  g0 G. |6 ?8 C4 w5 Z* C/ sccon   = zeros(2,1);
. o; g+ _$ }- n/ i4 i2 }; r: X' Jcjac   = zeros(2,4);
% s2 ~) c, A0 A% L0 bclamda = zeros(7,1);
: m# {  n' _, Phess   = zeros(4,4);; v' o8 g) N% U2 C4 c
x      = [1; 5; 5; 1];
0 u; ~5 l; B& o5 a% o; ]1 r& Z[iw,rw,ifail]=e04wc;
4 ]9 h  V) F4 w' O[majits, istate, ccon, cjac, clamda, objf, grad, hess, x, ...
/ M: ^- ]4 a4 Q2 u                                          iw, rw, user, ifail] = ...4 }* }3 T3 [2 N' D; J! {
  e04wd(...
# p+ z1 K/ `5 Q, P/ P8 }        a, bl, bu, @confun, @objfun, istate, ccon, cjac, clamda, ...
& ]( L- L* u. Z+ H4 k        hess, x, iw, rw);4 ]8 ?2 \. E0 O) K) S$ T8 N
fprintf('Final objective value    :   %8.1f\n',objf);. |9 `! T" }5 s/ l3 y
fprintf('Optimal values for x     :  ');
) P, a$ d. r/ P: B$ y. ^# zfprintf(' %9.2f',x);
7 ]" t1 e8 v( nfprintf('\nGradients at x           :  ');4 H) H% G" r4 B( F
fprintf(' %9.2f',grad);
/ j" n7 K) _+ n) [fprintf('\nConstraint functions at x:  ');
( ^- ^& |, k3 ?/ `3 \) Wfprintf(' %9.2f',ccon);% l5 P% x9 J: f; ~$ d+ D
fprintf('\nNumber of major iterations  = %5d\n',majits);
5 P- Q% U1 _$ \" K% {/ `) K* E5 [8 k$ q0 W" r( U; ^2 ?! J5 @- h
function [mode, ccon, cjac, user] = ...+ f4 j. r5 Z/ C1 D
    confun(mode, ncnln, n, ldcj, needc, x, cjac, nstate, user)$ a8 V  A  o8 ?8 h/ g6 M
  ccon = zeros(ncnln, 1);' R) i2 i# t9 V; O/ n$ P9 Q. l2 G
  if (nstate == 1)
6 o7 V3 s: n$ \% h2 }4 x%  first call to confun.  set all jacobian elements to zero.
  J) {: k) w% V%  note that this will only work when 'derivative level = 3'
' B: U  l$ p- a%  (the default; see section 11.2).
5 t) v6 W( X9 r# Q$ F2 {" P    cjac = zeros(ncnln, n);# L7 Z& U1 e  ]1 m7 L
  end* `/ Q1 D4 y+ w/ k& Y- t* y/ {
  if (needc(1) > 0)
# U; b4 Y. e' l: g& T7 Z& K" ?2 P8 i    if (mode == 0  ||  mode == 2)
0 c* O0 I# k/ T. h      ccon(1) = x(1)^2 + x(2)^2 + x(3)^2 + x(4)^2;
5 _1 Q+ A7 U& O! `0 v% n* ]+ n    end
9 Q. h. n+ K7 n" h- Y  E    if (mode == 1  ||  mode == 2)
1 |% C/ C8 A, _8 f; `& X      cjac(1,1) = 2*x(1);
+ z4 {; b+ y2 M( D3 n5 ]3 L4 V      cjac(1,2) = 2*x(2);  F: B# N0 r1 k9 L. Q8 M, a7 f
      cjac(1,3) = 2*x(3);
& o% z* i- x- B/ }, J# v! W, P      cjac(1,4) = 2*x(4);; P( Y4 |) c/ r4 p' S- ]
    end
! Q0 z" R, R8 W7 _  end7 o' w# A& C1 O
  if (needc(2) > 0)& \4 s" j5 Z0 I. F
    if (mode == 0  ||  mode == 2)0 L. r; n8 W5 J0 w; S1 U* q
      ccon(2) = x(1)*x(2)*x(3)*x(4);
- W. a3 x% X! `# ~9 ?0 |+ L1 k    end* K% i$ x& N) T
    if (mode == 1  ||  mode == 2)& o3 r. }+ @4 u: _4 i4 X, {
      cjac(2,1) = x(2)*x(3)*x(4);4 i+ I/ m- V8 x% w; s
      cjac(2,2) = x(1)*x(3)*x(4);
: d" m8 X9 E0 J) l- |& @      cjac(2,3) = x(1)*x(2)*x(4);
! A7 O' Y3 P9 I7 n7 S7 @) T) d+ Q6 c      cjac(2,4) = x(1)*x(2)*x(3);
+ I# a& b% x0 |: P1 \1 Q; z* t    end2 ?+ ^) ?, R( c% `" y" ~5 ]) S( L
  end
2 {8 A+ f. t5 I; e* a! K$ s1 {0 ]+ w3 u
function [mode, objf, grad, user] = objfun(mode, n, x, grad, nstate, user)+ H3 J2 T: N7 x
  if (mode == 0 || mode == 2)9 w  ?0 m! m' ^) G7 Z1 h9 s
    objf = x(1)*x(4)*(x(1)+x(2)+x(3)) + x(3);* _' q. N" t; R+ f  D5 H9 \
  end1 j1 n- D- K5 |4 R/ R* N
  if (mode == 1 || mode == 2)- k9 ^3 |$ m: w0 j5 a
    grad(1) = x(4)*(2*x(1)+x(2)+x(3));  g3 Z! H+ s; }% Y) A; e/ a2 r5 w8 e
    grad(2) = x(1)*x(4);! c" `* M' A4 l. y
    grad(3) = x(1)*x(4) + 1;
, i; Q& q* H% o; f. g- `+ I    grad(4) = x(1)*(x(1)+x(2)+x(3));
  d- b6 i2 Y( S  end! d: Z  O, I& y8 ^6 T& ^. ~
  • 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:45 , Processed in 0.187500 second(s), 23 queries , Gzip On.

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

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

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