Calculate the numerical hessian

34 次查看(过去 30 天)
amine&&
amine&& 2016-11-5
Hello!
I have the following function with the two variables alha and beta:
function MSE=mseFunction(alpha,beta,Donnee_6_jours)
moyenneMobile=zeros(240,1);
%Calcul de la moyenne mobile
for i=1:240
moyenneMobile(i)=1/48.*((Donnee_6_jours(i)/2)+sum(Donnee_6_jours(i+1:i+47))+(Donnee_6_jours(i+48)/2));
end
moyenneMobileCentree = padarray(moyenneMobile,24,'both');
composanteSaisonniaire=Donnee_6_jours(25:264)./moyenneMobileCentree(25:264);
composanteSaisonniaireV2 = padarray(composanteSaisonniaire,24,'both');
MatriceComposanteSaisonniaire = reshape(composanteSaisonniaireV2,[48,6]);
MatriceComposanteSaisonniaire(1:24,1)=NaN;
MatriceComposanteSaisonniaire(25:48,6)=NaN;
MedianneComposantsSaisonniers = nanmedian(MatriceComposanteSaisonniaire,2);
LES=zeros(288,1);
LES(25)=moyenneMobileCentree(25);
for i=26:264;
LES(i)=alpha.*moyenneMobileCentree(i)+(1-alpha).*LES(i-1);
end
S=zeros(264,1);
S(1:48,:)=MedianneComposantsSaisonniers;
for j=49:264;
S(j)=beta.*(Donnee_6_jours(j)./LES(j))+(1-beta).*S(j-48);
end
PREV=zeros(264,1);
PREV(26:264)=S(26:264).*LES(25:263);
PREV2=padarray(PREV(:),24,'post');
MSE = mean((Donnee_6_jours(26:264)-PREV2(26:264)).^2);
is there a way to calculate the numerical hessian.
Thanks!

回答(2 个)

Walter Roberson
Walter Roberson 2016-11-6
  4 个评论
amine&&
amine&& 2016-11-7
Hello Roberson,
the fourth line generates an error
mse = arrayfun(@alpha,beta) mseFunction(alpha, beta, Donnee_6_jours), ALPHA, BETA);
|
Error: Unexpected MATLAB expression.
what you think of the following function use to compute the gradient :
function grad_x=gradIent(x1,x2,Donnee_6_jours)
x=zeros(2,1);
x(1)=x1;
x(2)=x2;
h=1*10^-2;
v=eye(2,2);
grad_x=zeros(2,1);
for i=1:2
T1=x+h.*v(:,i);
T2=x-h.*v(:,i);
grad_x(i)=(mseFunction(T1(1),T1(2),Donnee_6_jours)-mseFunction(T2(1),T2(2),Donnee_6_jours))/(2*h);
end
Thanks Roberson.
Walter Roberson
Walter Roberson 2016-11-7
mse = arrayfun(@(alpha,beta) mseFunction(alpha, beta, Donnee_6_jours), ALPHA, BETA);

请先登录,再进行评论。


Matt J
Matt J 2016-11-7
Have a look at this FEX submission, in particular at hessian(fun,x0).

类别

Help CenterFile Exchange 中查找有关 NaNs 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by