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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
如下为NAG library里面e04wc的程序,是别人文章里给的,用来求某函数最小值的,但是我运行时会说错误使用e04wc,输出参数太多,球球大佬怎么搞?
& Z2 E( s4 e! z; ^& y  C
, v; e% j& S, u( V6 m3 c. S( o2 \
function e04wc_example. t9 `6 v* ~) i, ~5 z* F

: T* r8 N7 A$ c5 F  ^4 `- Rfprintf('e04wc example results\n\n');! I5 @4 U+ S; n* ]
a  = [1, 1, 1, 1];
0 y4 T$ e* h2 p3 l9 ~, Tbl = [1, 1, 1, 1, -1e25, -1e25,   25];/ i3 g* X8 G& Z3 G
bu = [5, 5, 5, 5,    20,    40, 1e25];
4 P" F' R/ N% R! O* tistate = zeros(7, 1, 'int64');! t5 e5 S0 E7 J. D/ \
ccon   = zeros(2,1);6 Q  B- }7 L% S% t6 j0 @2 t' k3 w
cjac   = zeros(2,4);
' a2 [% @- S! Rclamda = zeros(7,1);% y3 A2 q7 c- \& B5 D
hess   = zeros(4,4);4 L& `* m/ N' f  }. V( Q2 ^# T
x      = [1; 5; 5; 1];
' H. w- U+ M8 K2 _9 N& [+ G  t[iw,rw,ifail]=e04wc;' z" d% O9 H# B: W7 \- o# c* P
[majits, istate, ccon, cjac, clamda, objf, grad, hess, x, ...
$ X6 M% D$ x" ^                                          iw, rw, user, ifail] = ...
/ H" X1 b/ T8 D3 C9 K  m  e04wd(...
6 I6 l& x! Z/ P0 d4 _        a, bl, bu, @confun, @objfun, istate, ccon, cjac, clamda, .... B1 J+ [) J9 g. }4 t
        hess, x, iw, rw);) o* A- r8 W5 k9 g
fprintf('Final objective value    :   %8.1f\n',objf);0 N) R  [* d% s8 H
fprintf('Optimal values for x     :  ');
: ^. z# {, u% ]$ a1 Rfprintf(' %9.2f',x);8 y" z& E- `1 P
fprintf('\nGradients at x           :  ');8 t0 r+ n! M5 _0 l% n1 i- H5 G! n
fprintf(' %9.2f',grad);
  F! u2 z0 I# R* Yfprintf('\nConstraint functions at x:  ');
; N0 y6 [# d8 C, Dfprintf(' %9.2f',ccon);4 g/ V$ i& o3 P
fprintf('\nNumber of major iterations  = %5d\n',majits);
3 f* m# C' O" m: e* b: v% C! s
function [mode, ccon, cjac, user] = ...6 `2 a+ a+ ^; l: t
    confun(mode, ncnln, n, ldcj, needc, x, cjac, nstate, user)4 j, L5 {( f8 c  h
  ccon = zeros(ncnln, 1);, v' m* G1 A" B% X9 E! |
  if (nstate == 1)* a9 m/ `- x( W' o
%  first call to confun.  set all jacobian elements to zero.
8 k9 ?6 v% F/ n%  note that this will only work when 'derivative level = 3'
0 {7 x* P& @9 R1 b%  (the default; see section 11.2).
& Z/ c! q/ y6 ?1 O. Z& ^' R    cjac = zeros(ncnln, n);
0 X* s: d8 L) N) {# d, R  end$ ]  Z3 U  B: F3 \* w; i* `4 h, G
  if (needc(1) > 0)% X/ N' k' d9 [
    if (mode == 0  ||  mode == 2)
% A- n( U0 t) A      ccon(1) = x(1)^2 + x(2)^2 + x(3)^2 + x(4)^2;
7 T4 G3 H+ T7 i: n    end, d. Y5 K5 W4 V/ b5 i, u
    if (mode == 1  ||  mode == 2)
" X7 [; w. U8 R      cjac(1,1) = 2*x(1);2 T: @# o$ y0 C8 k
      cjac(1,2) = 2*x(2);+ N( _4 I- M* _5 x) n) L: y7 I
      cjac(1,3) = 2*x(3);1 y! c2 U' C% r- Z( w+ u% S6 g
      cjac(1,4) = 2*x(4);
9 e0 d, \! W8 S( H    end
% @. [. R* S- E5 M8 k  end
$ m! o- Z; N; W9 y# z* j& t  z4 e  if (needc(2) > 0)% s! m1 ?+ h" y( P- d! N
    if (mode == 0  ||  mode == 2)
( ]# I1 g- P: M0 G0 I      ccon(2) = x(1)*x(2)*x(3)*x(4);, v3 r+ \/ J- C% }3 E6 F
    end6 @0 h# C2 l' `9 [
    if (mode == 1  ||  mode == 2)
/ s* `' \- b7 |' \$ y- U9 f      cjac(2,1) = x(2)*x(3)*x(4);1 ^+ P* z  p6 [% Y7 p% N/ h
      cjac(2,2) = x(1)*x(3)*x(4);
' l- y- T! @8 v- t" x) @4 ?0 S1 C      cjac(2,3) = x(1)*x(2)*x(4);
! L7 y3 O% n7 U( ?$ k: m      cjac(2,4) = x(1)*x(2)*x(3);4 k- v# {# ^! ?; Q  m, ^
    end! D# g* B4 t6 v& Y
  end7 c, q, {! S" Z- ^
1 D* N; W9 P4 _3 k
function [mode, objf, grad, user] = objfun(mode, n, x, grad, nstate, user)
$ u9 b! f2 ~& r  if (mode == 0 || mode == 2)1 ?3 I: ^- U4 [: T" h
    objf = x(1)*x(4)*(x(1)+x(2)+x(3)) + x(3);
9 N; z0 f5 J* ^4 J0 _+ V$ k# N  end
9 p4 W1 U' ^" a& @; I7 [  if (mode == 1 || mode == 2)
2 k1 ^9 O9 q* C/ b    grad(1) = x(4)*(2*x(1)+x(2)+x(3));2 \5 o3 y' ]2 [9 q/ E9 a5 U' T9 g
    grad(2) = x(1)*x(4);; p8 Y/ e2 J5 T9 @2 @* |$ B
    grad(3) = x(1)*x(4) + 1;3 ^7 T3 j) `' M" J0 c& e
    grad(4) = x(1)*(x(1)+x(2)+x(3));+ m/ G( }* n% I
  end
! ?* R" Q2 ^% s, _8 {3 [
  • 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 13:10 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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