|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
自定义的函数:+ T" i M3 c5 Z2 b# | y8 H$ h
function f=largejfun(x)
+ p4 ~5 F2 ^& Q. l: m8 z# ]9 vf=(x-1./1:100).^2;
. b* b- }1 ^' @# R) qend- ]" E3 m3 H. l
( L7 |! f$ r5 n
调用函数的时候:/ S& a6 c) n4 n" Y% f3 y; K
clc( c) s; ~9 x- @
x0=10*ones(1,100);
0 J9 V2 O7 U9 v/ x) Moptions=optimset('display','iter','TolFun',1e-8);
& c1 j- x2 U& U" z[x,fval,exitflag,output]=fminunc(@largejfun,x0,options) K1 h, ?# ` p; W# h r
( r7 {4 @7 h5 U7 p* s' ~! I0 H& j1 ~8 B7 s& B" D7 {7 Z! G) t
运行结果出错,出错结果显示如下:9 x# [1 q: h) A/ Q0 } |' U
错误使用 fminunc (line 348)4 n" i6 g' @( Q* P2 ?9 \ i
Supplied objective function must return a scalar value.
- k! I' J; ~5 [5 \; h7 i0 q3 p% c3 c& M |# p
+ j% ]+ J: e( @. E2 X出错 fminu1 (line 4)* u' [9 D c6 p8 W$ K
[x,fval,exitflag,output]=fminunc(@largejfun,x0,options), I( S0 @% L" M- C& L6 @# b; z% [
4 z3 d' v) e- R5 H, s3 _! i
; D$ c! l, H; B( m$ R) B
4 F. Q. s- G/ x' J( g/ h
+ o- J- Z4 ^2 U# ]
9 J, U3 C8 J: T# h: l' p1 o9 b3 Z
1 y2 f7 t5 b% X% g' U/ }
3 @0 S, k) p/ Y2 m7 |) W4 m) v
T4 p& c$ U$ H* }2 U$ S/ h我将自定义函数改为如下:6 Y! g( s# }# h! y( ?
function f=largejfun(x)
/ } j7 {4 E' X3 df=0;
" `5 X3 i. q9 T& jfor i=1:100, k/ A/ ?3 [6 {: Y. t
f=f+(x(i)-1/i)^2;* ?3 X+ }2 B1 M5 B0 y0 q
end& o7 F: L) b+ Y3 f$ ~; N. l' ^
* @# ^2 V. k: F9 t
最后运行结果没有任何问题。" E$ G# q, l' P* ]9 H/ i' `
那是哪里有问题呢?
L; o: Q3 a. [: n/ s2 u |
|