|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
自定义的函数:
J) y( ^5 g m5 Y" z7 ~function f=largejfun(x); ]5 N/ f2 ?) V, X: h: J# U
f=(x-1./1:100).^2;) H9 |& K, a- ^" P5 t) P
end
# u; Z: r- C1 B" v5 I- |# J* K) r+ O! u
调用函数的时候:2 v3 v* B/ U0 c1 m5 K) T
clc
, z% N j. n+ ~( t& z1 o) ?8 lx0=10*ones(1,100);) N0 u' u6 x4 _* A, R
options=optimset('display','iter','TolFun',1e-8);3 i- N+ ?3 w2 q$ S; n: Z
[x,fval,exitflag,output]=fminunc(@largejfun,x0,options)3 S; z5 G1 B& U9 X% Y N2 ]
4 @: C5 X3 i* m0 h: K. ^9 K
2 o: ~4 W+ N l3 t+ F+ x运行结果出错,出错结果显示如下:
) n" M0 i3 u2 Y2 `+ {错误使用 fminunc (line 348)
, ?! f8 n, I; q2 U( E3 n) Q5 k9 OSupplied objective function must return a scalar value.2 a7 R/ D* l5 r9 s& ^2 ]+ _5 M
$ b( L* ^+ N' H
% X# |7 n( ~" [- g
出错 fminu1 (line 4)
) Q4 n9 z& \5 n1 R: ]' g) B$ a[x,fval,exitflag,output]=fminunc(@largejfun,x0,options)2 g% e5 ?( J6 U, s( b* H8 n$ V, j
. H7 ]/ z) ^7 C) c% _. V/ ?
5 X8 U" x) ^# ]( x
$ V# T5 }1 J- x% d3 ~
0 b" Y) g. L( V+ X
, q- r: F1 M: L' j# o: p
9 w4 i* Z( y/ k/ U) l
6 P% r% M/ D# L( @4 R' a' j
4 { X! y4 Q9 P }我将自定义函数改为如下: P5 Q0 t9 W" k! |9 j1 G5 w4 X% L2 h
function f=largejfun(x); Y O$ s- f( L. `9 `
f=0;
5 ~& Q# \6 m- ]for i=1:100
4 Z' a! g9 i$ I# O( z% ] f=f+(x(i)-1/i)^2;# t/ X2 A( j& K" |7 y/ h" G/ q
end/ \1 U$ ?8 }/ b
) g2 P9 z0 R- j1 n; \
最后运行结果没有任何问题。
( k% T- _8 h" c那是哪里有问题呢?
, c2 T. D1 ~ H1 F2 S |
|