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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
如下为NAG library里面e04wc的程序,是别人文章里给的,用来求某函数最小值的,但是我运行时会说错误使用e04wc,输出参数太多,球球大佬怎么搞?( Z) z" h$ I7 d

' X8 j7 p6 |3 e' w: W9 \6 R6 G  i  U1 h3 }, F, v5 G
function e04wc_example0 H  L, i5 \. M2 c1 \
, ^; d4 k: d3 {. `$ n% a
fprintf('e04wc example results\n\n');
5 B, A* p- Z+ Oa  = [1, 1, 1, 1];
" _% b) s3 x* H: c1 ]- vbl = [1, 1, 1, 1, -1e25, -1e25,   25];
: w: Z1 l" E9 l1 nbu = [5, 5, 5, 5,    20,    40, 1e25];  T* l, k% f+ \- {6 g$ B- w# _/ V
istate = zeros(7, 1, 'int64');: ~6 \5 j& b7 [
ccon   = zeros(2,1);+ `- t  \# X5 _( |3 ^" _
cjac   = zeros(2,4);
* \% L7 n/ A4 W: v7 y" oclamda = zeros(7,1);0 U: M" T) _( L5 u; B* W/ G
hess   = zeros(4,4);" `: T! k2 d' p
x      = [1; 5; 5; 1];
" h0 c: }' B% O. o7 k# I: g8 D[iw,rw,ifail]=e04wc;
; T# ]% d- Q. g4 |4 e[majits, istate, ccon, cjac, clamda, objf, grad, hess, x, ...! {& D  _7 Q6 v! Q8 _% I
                                          iw, rw, user, ifail] = ...* j( [5 X1 U9 Q5 X4 u9 L  _* ?) M
  e04wd(...
9 I, p7 z( F$ G3 {, R        a, bl, bu, @confun, @objfun, istate, ccon, cjac, clamda, ...
% e& Z2 u4 O' _* D" A, L        hess, x, iw, rw);' f9 `! h- C' s  t) e4 t; R: t
fprintf('Final objective value    :   %8.1f\n',objf);
1 \* p8 _7 H, u' Hfprintf('Optimal values for x     :  ');
2 Y5 u* |; I3 {4 |/ Dfprintf(' %9.2f',x);% g! G0 f1 f; A, T! Q+ G  Z2 e
fprintf('\nGradients at x           :  ');
5 v9 \5 c2 `% S: w7 m' gfprintf(' %9.2f',grad);) j0 C: b4 j  r! K/ Y
fprintf('\nConstraint functions at x:  ');7 K- s8 o! U! u% w4 E
fprintf(' %9.2f',ccon);
! `1 G6 x3 t+ [0 L7 i5 dfprintf('\nNumber of major iterations  = %5d\n',majits);. i; r. L4 [, e" K0 V4 n
5 f0 l7 p$ p- `. i) W
function [mode, ccon, cjac, user] = ...
3 O: p9 Y; k; T- l& f    confun(mode, ncnln, n, ldcj, needc, x, cjac, nstate, user)
: W( x& H7 Y1 h) F# Y' f2 F# o1 m  ccon = zeros(ncnln, 1);* E/ `7 _, J4 M( ]2 _7 z6 ^, t
  if (nstate == 1)( Q" p: B) ]) I* h4 [) n2 w
%  first call to confun.  set all jacobian elements to zero.
; y0 d( M$ L: i6 _! ^3 P; L%  note that this will only work when 'derivative level = 3'
; W/ @& R! E7 v- z* f%  (the default; see section 11.2).1 i6 B: w+ u1 J
    cjac = zeros(ncnln, n);( Y3 x5 |; C% d/ I9 d
  end1 i6 `3 s7 }7 M9 _
  if (needc(1) > 0)" {( |4 I$ N3 g
    if (mode == 0  ||  mode == 2), W: J( M& U) B5 U" V% O' K
      ccon(1) = x(1)^2 + x(2)^2 + x(3)^2 + x(4)^2;- X( P9 v% A: B) F
    end" a7 X. h# P4 ?& T8 c9 j
    if (mode == 1  ||  mode == 2)
& I: @; m! v+ u0 S: e      cjac(1,1) = 2*x(1);+ {2 G$ j7 e9 p# o  x" w4 ]  z# g0 Y
      cjac(1,2) = 2*x(2);
6 K( |4 J* x) c      cjac(1,3) = 2*x(3);
' A  @) `9 O( r( y' f" d( P      cjac(1,4) = 2*x(4);
+ }+ D: ]5 `2 V; s2 i; L    end3 o7 W8 |' k( o
  end3 n6 ?8 Q. ^% B5 v5 c' O
  if (needc(2) > 0)  h) P9 k: ?/ H/ E- {
    if (mode == 0  ||  mode == 2)) x0 D! n5 V: _4 O
      ccon(2) = x(1)*x(2)*x(3)*x(4);
) p! f$ f7 l  r5 T" m! P2 c    end$ w1 N% z- p3 o6 c3 \
    if (mode == 1  ||  mode == 2)
. _* q" s$ w- m' j7 ^& j3 a; J      cjac(2,1) = x(2)*x(3)*x(4);" Z$ ?4 m  J+ e# u5 ?
      cjac(2,2) = x(1)*x(3)*x(4);
$ E: F0 k. c& l( m; Z% U      cjac(2,3) = x(1)*x(2)*x(4);9 M: M$ p* z, i5 p0 n
      cjac(2,4) = x(1)*x(2)*x(3);
: v# E  c+ `* `3 d/ y5 Z    end
! N: `2 N  j. e- c7 y# |2 D  end
8 w! B% N8 N8 ?3 m8 i) v, Y* w$ F& I! R6 Y
function [mode, objf, grad, user] = objfun(mode, n, x, grad, nstate, user)
! d: Z* O+ U/ j# Z! K* |9 s5 s& M$ ]  if (mode == 0 || mode == 2)
1 _) Z. V" _: H7 x    objf = x(1)*x(4)*(x(1)+x(2)+x(3)) + x(3);
- r" }5 y( q' l0 f9 M  end5 f" @' {7 k& Y& m
  if (mode == 1 || mode == 2)3 {# E, B: T! `/ F6 v
    grad(1) = x(4)*(2*x(1)+x(2)+x(3));$ F% W# x, i- s4 Y! F  h* a+ [
    grad(2) = x(1)*x(4);1 R9 t5 X+ l; e3 c0 @! R  K7 k0 o" {3 I# Q
    grad(3) = x(1)*x(4) + 1;
$ Z- Y  `8 j: W2 w9 L& m9 J9 k" ^$ h    grad(4) = x(1)*(x(1)+x(2)+x(3));
/ l, v! @  X" f- H+ d  end* g# |( x4 o, l5 _6 S

该用户从未签到

3#
发表于 2020-11-2 19:20 | 只看该作者
哪里有问题啊
  • TA的每日心情

    2019-11-29 15:37
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2020-11-2 16:35 | 只看该作者
    来了,来了,专业赚积分顶起来
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 08:02 , Processed in 0.171875 second(s), 24 queries , Gzip On.

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

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

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