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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
如下为NAG library里面e04wc的程序,是别人文章里给的,用来求某函数最小值的,但是我运行时会说错误使用e04wc,输出参数太多,球球大佬怎么搞?% U( M/ m2 r3 ^2 s! s4 J0 W! [

6 i* ^( r  z  Z3 t- l# A# ]( R
/ t& Z) [  H* I0 D, zfunction e04wc_example
+ _+ O7 p0 A" g, {; Y  |  V5 s: U+ e- k: v" j% X
fprintf('e04wc example results\n\n');
7 j0 L. {8 a7 O9 i$ k! m6 Ga  = [1, 1, 1, 1];
- g0 X6 e4 ^2 v3 l0 ibl = [1, 1, 1, 1, -1e25, -1e25,   25];
/ {# X: B7 |! Dbu = [5, 5, 5, 5,    20,    40, 1e25];1 S7 Y) j; a4 B" |0 D, l: m% R( P
istate = zeros(7, 1, 'int64');+ C7 a0 |8 t; \9 D% h; i2 U6 U
ccon   = zeros(2,1);
: n+ Y; N9 k& o" Q' kcjac   = zeros(2,4);: B, B% [- t% C9 E
clamda = zeros(7,1);# ?, Q: d8 ?. q) @
hess   = zeros(4,4);- Y+ o7 J5 p6 l0 z8 l5 i6 F
x      = [1; 5; 5; 1];
' I' a: W& C7 L9 D' R1 \* ~[iw,rw,ifail]=e04wc;
. F" ~; ?) A- A6 b& r5 V; C' Q2 K- S[majits, istate, ccon, cjac, clamda, objf, grad, hess, x, ...5 o: _: B* U( Z$ E1 t4 a! H) L
                                          iw, rw, user, ifail] = ...2 c- q8 _" \: r, `5 {( n
  e04wd(...1 o9 p( w( G' ^) Z/ Z" T2 u" h
        a, bl, bu, @confun, @objfun, istate, ccon, cjac, clamda, ...
& A6 Q& _/ d$ I0 o2 u! a        hess, x, iw, rw);
4 y# H1 H9 G3 T' m7 dfprintf('Final objective value    :   %8.1f\n',objf);) h% b  a. t6 ]; o, v
fprintf('Optimal values for x     :  ');
/ Q1 J& w: ^+ B$ h6 |fprintf(' %9.2f',x);' G2 Y+ X) J% o4 m- D% r9 u5 ^
fprintf('\nGradients at x           :  ');
" N9 u6 B0 y- B+ C1 @* _% b5 `fprintf(' %9.2f',grad);
$ U: ?8 Z! M( e' A! m$ v' H0 L$ vfprintf('\nConstraint functions at x:  ');3 }1 _) a# u" V+ z) Z7 a) U9 P9 ^" t
fprintf(' %9.2f',ccon);
7 Z4 ^. b1 n) q  h2 W1 sfprintf('\nNumber of major iterations  = %5d\n',majits);0 |  v! I! P' ~1 }6 Z
4 m) D3 t* i3 {( n. C1 k9 d- y
function [mode, ccon, cjac, user] = ...# ~3 `. u. _7 o2 U
    confun(mode, ncnln, n, ldcj, needc, x, cjac, nstate, user)
: i) N7 {8 @& N2 g5 {  ccon = zeros(ncnln, 1);8 `7 u, i  i, a/ }% m
  if (nstate == 1)
4 M" @  L/ P& O0 O; F" }%  first call to confun.  set all jacobian elements to zero.
2 x5 ?, h% O2 w0 b% V%  note that this will only work when 'derivative level = 3'
0 `$ K% J( ^8 Q8 Q2 \: s  H%  (the default; see section 11.2).
. |" Y3 y9 D) p( \    cjac = zeros(ncnln, n);! T$ X3 Y) K0 y: W0 Q' c
  end
1 n# s/ V4 \0 x, f( b6 k) V  if (needc(1) > 0)0 k6 [) ~& X* n2 E4 b  F
    if (mode == 0  ||  mode == 2)
& H) O4 p: V" [+ b1 \# X      ccon(1) = x(1)^2 + x(2)^2 + x(3)^2 + x(4)^2;
' t5 q* e" e1 B  l) J    end- Z2 |" c* n7 A: c
    if (mode == 1  ||  mode == 2)
: C% t/ I/ {5 V      cjac(1,1) = 2*x(1);: z$ d5 Z. R' e/ F
      cjac(1,2) = 2*x(2);
3 n6 k+ F) F  I1 @' {# I$ d* B      cjac(1,3) = 2*x(3);& h# W) n- g' M1 _/ [
      cjac(1,4) = 2*x(4);) Q+ p0 @) u, ^4 W. f0 g0 ^) M3 Z( T
    end
9 [; M: q2 R  G1 n  end3 \3 Z5 @3 c( d, O
  if (needc(2) > 0)1 B/ z) [, }% z. N. E) J
    if (mode == 0  ||  mode == 2)+ G8 ~3 v4 y: S6 _
      ccon(2) = x(1)*x(2)*x(3)*x(4);
: l  G( W  ?% g5 n    end
2 h8 v3 D* {4 f+ s' \    if (mode == 1  ||  mode == 2)
9 _6 @7 w- g+ ^  H, w; ]; ^      cjac(2,1) = x(2)*x(3)*x(4);
  K. q/ D: B! ^      cjac(2,2) = x(1)*x(3)*x(4);
* V0 D2 v8 A" Z" d      cjac(2,3) = x(1)*x(2)*x(4);
( ^0 [2 B9 g6 q      cjac(2,4) = x(1)*x(2)*x(3);0 Q9 e) D' s+ a# n& b  z9 s5 B# X
    end" B/ N6 {' D4 Z. f- H+ z0 B( a
  end' D( W! |8 p* R6 T
5 i% Z$ f3 l1 z5 [+ @% a
function [mode, objf, grad, user] = objfun(mode, n, x, grad, nstate, user)* _( b: r6 N9 U. r
  if (mode == 0 || mode == 2)) @& w" w2 P4 E* O
    objf = x(1)*x(4)*(x(1)+x(2)+x(3)) + x(3);
! d' `6 S9 Y7 T1 `& {% _  end9 Z, f8 z% [# K9 m
  if (mode == 1 || mode == 2)
4 M/ [( c6 S5 T- M5 L: W2 ^8 C. e1 n    grad(1) = x(4)*(2*x(1)+x(2)+x(3));
% \/ c0 ]+ v. F, s2 d) T, }% g    grad(2) = x(1)*x(4);
: N; R. ?. p; }) T    grad(3) = x(1)*x(4) + 1;. t4 N. C) q: b* d! a' W0 A5 z" k
    grad(4) = x(1)*(x(1)+x(2)+x(3));9 v# l; M& m% @) y
  end
% S0 t: g5 l0 `. W' V5 E6 O; U$ m
  • 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-7-30 13:56 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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