|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
求教大神:
& _* e5 Q8 ^) Z0 r% G6 E) N/ kfunction f=nsllh(x)4 j7 @9 K% G& q2 ]
close=xlsread('HW_3_Part2Data','#3','D3 1257');
8 L6 O$ u' t! n) Xnvix=xlsread('HW_3_Part2Data','#3','H4:H1257');
8 A& X/ t) k2 i* t4 ?5 ^alpha=zeros(1,1);beta=zeros(1,1);theta=zeros(1,1);gamma=zeros(1,1);
e: i+ \0 `% Zx=[alpha,beta,theta,gamma];& Z( W! V% w6 \0 q+ v" a! p: ]
r=zeros(1254,1);( ^% ^7 G6 X) h
for i=1:1254
: l! G2 a9 e# z" } r(i+1,1)=log(close(i+1,1)/close(i,1));& E. z/ D/ e' Y( `8 ]# p
end
" B0 v7 I8 ~8 k, S1 Xsigma=var(r);
9 e$ z0 b: K) l( T% H( f- S$ Somega=sigma*(1-alpha*(1+theta^2)-beta);* u0 |# |+ x0 ]" @$ f
npsigma=ones(1254,1);
0 K4 k7 [- F& enpsigma(1,1)=sigma;( Y# Q5 ?! j. }. P
for i=1:1253
. w$ ]$ ]7 I5 ]2 ?) q! S/ J1 lnpsigma(i+1,1)=omega+alpha*(r(i,1)-theta*npsigma(i,1)^0.5)^2+beta*npsigma(i,1)+gamma*nvix(i,1)^2/252;
6 [4 y/ h4 w0 c7 o8 ]end% t% s9 x4 C: L5 M1 r* t* C+ R4 b
alpha=x(1);beta=x(2);theta=x(3);gamma=x(4);
+ }9 C1 C9 k/ {3 y7 U; G# h- Ufor i=1:1254- g) j, |/ ~. \0 i. Z, q& ?
nllh(i,1)=0.5*log(2*3.1415926)+0.5*log(npsigma(i,1))+0.5*(r(i,1)^2/npsigma(i,1));
* a6 i6 `; A0 g6 g0 jend2 A; M1 R; c z+ M, M/ h& z+ N
f=sum(nllh);
_! d' {* V6 H; \' b' ? `
! e/ g2 H9 c; S9 B2 Z另外nonlcon的code是:
' L5 V) [: c+ ]3 {function [c,ceq]=mycon(x)1 F% Y; ]! y4 v
alpha=zeros(1,1);beta=zeros(1,1);theta=zeros(1,1);& F/ l$ o6 R/ x. V) z$ F
x=[alpha,beta,theta];
/ a R# }( }0 w0 F9 F/ H8 [1 [c=alpha*(1+theta^2)+beta-1;
* \! F1 `5 c; |* L9 J# a$ l+ zceq=[];0 R# s3 t6 ~- F# Y# u$ [' P
' P0 F) g0 D0 A: A2 v1 z1 u; U
run出来显示:
. \- v# t$ u" f6 E9 kx0=[0.04;0.5;2;0.07];" e D5 n: k. y1 O# U5 t
Optimization terminated: first-order optimality measure less$ I2 w- P5 Y, y# A/ n
than options.TolFun and maximum constraint violation is less
0 q: ~' {/ i- j3 Vthan options.TolCon.
. o0 l( m- K' E2 N% QNo active inequalities.
9 w" H J6 j& B2 Q- Q
M" N. }( s; _, T) @7 v; `x =, [7 T+ r7 I+ M. d2 q
& K( j$ g2 X2 i% v 0.0400
/ u0 r0 @* y7 M1 a/ X) O 0.5000% C& v: O8 V* W2 n" K
2.0000
& _# x4 b2 g8 C& Q9 I, Z 0.0700, s5 z9 i/ w( R0 k4 A
' t8 k' j" A% ^/ {' L" N
: H2 t, o/ h4 J( j/ j, z
fval =9 Z! x; f9 `, x
* }, V9 _/ |# d* r8 V$ D1 c2 ~* @- w+ j
-3.6963e+003) p$ |5 x3 \9 i' c% d% V4 c0 f0 i7 ^
! S. x1 J6 V* Y4 x, s
) W) _. d# J* iexitflag =
" N7 ` K8 X" a8 K$ h. r4 o6 n# K5 I
4 E& V- ~ w8 S m- e0 T 1
+ |9 a- k8 |9 z7 j+ f' j7 P1 Z4 O+ H' E! c6 `- w, g
3 e1 B8 h' q/ [2 G! ~ Moutput =* C5 n; Q2 _4 D
8 f8 ^( X3 i9 x$ A4 I iterations: 17 ^0 m% u. n. o' e9 W( [
funcCount: 10' V+ u+ W+ f; Z' \) ?3 H
stepsize: 1
- J+ }# A9 [" e$ f algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
5 Y9 A5 b1 t% H firstorderopt: 0
) K$ w3 l0 Q# {6 K/ Q cgiterations: [] E3 [9 w# Z5 W$ o' s
message: [1x144 char]- v" ] D% J/ s) _/ q
; R' y+ O B3 Z
. ^/ m8 m0 U3 z9 \ }( E% ~
lamda =* ~! p! c9 T0 M |9 O
' |3 O$ F+ Y: N, a3 R
lower: [4x1 double]. D a0 O I/ B7 e+ H4 M# k I
upper: [4x1 double]
D/ I7 _8 Y( { eqlin: [1x0 double]3 I8 `/ n1 E1 h N. F
eqnonlin: [1x0 double]1 ~# X1 W( Q& l# k5 f( g; d
ineqlin: [1x0 double] \; f4 e3 K( w% K" X7 t; b
ineqnonlin: 0% u" f. t2 F4 Q& U' v3 U8 m
$ U4 t. ]1 X+ z9 }为什么会这样呢?fval已经改变了但是x不会变?而且iteration只有1# b [+ U+ u2 g! R3 h% T+ ^
" A5 o* ^3 \8 h, t |
|