2013-10-09 4 views
-1

`ошибка в fmincon Matlab

function [LLF, LL, H ] = garchlike(data) 


p=1; 
q=1; 


if isempty(q) 
    m=p; 
else 
    m = max(p,q); 
end 

%this are the parameters 
psi=[0.01;0.01]; 
gamma=[0;0.02;0.02;0]; 
lambda=[0;0.03;0.03;0]; 
    A=[1;-0.04;-0.03;1]; 

stdestimate = std(data,1);      
data = [stdestimate ; data]; 
T = size(data,1); 

B=(reshape(A,2,2))^-1; 
%I am squaring each element of the inverse of A 
B2=((reshape(A,2,2))^-1).^2; 
%getting the Bl matrix(squared interactions) 

Bl=[B2(1,:);B(1,:).*B(2,:);B2(2,:)]; 

garchc=Bl*psi; 
garcha=Bl*(reshape(gamma,2,2))*reshape(A.^2,2,2); 
garchb= Bl*(reshape(lambda,2,2))*reshape(A.^2,2,2); 

H(1,1).day=[0.001; 0; 0; 0.002; ]; 
%convert to matrix 

    H(1,1).day=ivech(H(1,1).day); 

for t = (m + 1):T 


    H(1,t).day= ivech(garchc + garcha*(diag(H(1,t-1).day))+ garchb*(data((t-1),:).^2)'); 

end 
% Getting the loglikelihood 
LLF=zeros(1,T); 
%the loklikelihood 
for t = (m + 2):T 

    LLF(t)= log(det(H(1,t).day))+ data(t,:)/(H(1,t).day)*data(t,:)'; 

end 
t=(m+2):T; 
LLF=-LLF(t); 
LL=sum(LLF); 
` 

У меня есть эта функция от и пытается свести к минимуму с помощью fmincon:

` [parameters,LLF,EXITFLAG, OUTPUT,HESSIAN] = fmincon('garchlike', [psi;gamma;lambda;A],sumA ,sumB ,[] , [] , LB , UB,[],options, data, p , q);` 

Я не знаю, почему не работает и дает мне ошибку: . «Ошибка при помощи garchlike ошибки с помощью garchlike Слишком много входных аргументов ошибки в fmincon (строка 631) initVals.f = feval (funfcn {3}, Х, varargin {:}); Са используется: Ошибка при первоначальной оценке объективной функции пользователя. FMINCON не может продолжаться «

+0

пожалуйста, отформатируйте его лучше. Это неразборчиво. – Memming

+0

Что возвращает 'garchlike' в исходное состояние? – Memming

+0

garchlike вернет loglikelihood (1x800) LLf, затем сумму loglikelihood LL (одно значение) и Ht (изменяющие время матрицы 3x3). – Lauritta

ответ

0

"Ошибка при помощи garchlike Слишком много входных аргументов" ваша проблема

fmincon звонит garchlike([psi;gamma;lambda;A],data, p , q), но ваш garchlike принимает только 1 аргумент

Pro совет:.... О том, как использовать отладчик Начните настройку dbstop if error

EDIT:... все в порядке, вот еще некоторые детали, пожалуйста, внимательно прочитайте

Ваш.принимает 1 аргумент как вход, а ваш fmincon вызывает его с 4 аргументами. Либо (1) вам нужно удалить эти 3 дополнительных аргумента (а именно, данные, p, q) из fmincon или (2) сделать garchlike еще 3 аргумента !!

+0

Я использовал отладчик и сделал то, что вы мне сказали, но все равно не говорит me more.It показывает мне строку 631 в fmincon.Sorry, но я только начал использовать matlab, и для одномерного дела шла хорошо функция :( – Lauritta

+0

Я очень ценю, если вы могли бы сказать мне, что делать, чтобы улучшить и исправить ошибка? – Lauritta

+0

Я попытался взять все аргументы и не только один, но и дал мне ту же ошибку. – Lauritta

Смежные вопросы