?? objfunc.m
字號:
function [S,OUT]=objfunc(param,data)
n=size(data,1);
m=size(param,1);
%alpha0=param(1);
%alpha1=param(2);
for i=1:m
data_0_pie=data+param(i,1);
data_1=cumsum(data_0_pie);
for k=2:n
z_1(k)=-(param(i,2)*data_1(k-1)+(1-param(i,2))*data_1(k));
end
B=[z_1(2:n)' ones(n-1,1)];
Y=data_0_pie(2:n);
T=inv(B'*B)*B'*Y;
a=T(1);
u=T(2);
for k=1:n
data_1_mao(k)=(data_0_pie(1)-u/a)*exp(-a*(k-1))+u/a;
data_0_pie_mao(k)=(data_0_pie(1)-u/a)*(1-exp(a))*exp(-a*(k-1));
data_0_mao(k)=data_0_pie_mao(k)-param(i,1);
ipsilon_0(k)=data_1(k)-data_1_mao(k);
ipsilon_0_pie(k)=ipsilon_0(k)+param(i,3);
end
ipsilon_1=cumsum(ipsilon_0_pie);
for k=2:n
z_1_xing(k)=param(i,4)*ipsilon_1(k-1)+(1-param(i,4))*ipsilon_1(k);
end
B_xing=[-z_1_xing(2:n)' ones(n-1,1)];
Y_xing=ipsilon_0_pie(2:n);
T=inv(B_xing'*B_xing)*B_xing'*Y;
a_xing=T(1);
u_xing=T(2);
for k=1:n
ipsilon_1_mao(k)=(ipsilon_0_pie(1)-u_xing/a_xing)*exp(-a_xing*(k-1))+u_xing/a_xing;
ipsilon_0_pie_mao(k)=(ipsilon_0_pie(1)-u_xing/a_xing)*(1-exp(a_xing))*exp(-a_xing*(k-1));
ipsilon_0_mao(k)=ipsilon_0_pie_mao(k)-param(i,3);
end
data_1_mao_xing=data_1_mao+ipsilon_0_mao;
for k=2:n
data_0_mao_xing(k)=data_1_mao_xing(k)-data_1_mao_xing(k-1)-param(i,1);
end
data_0_mao_xing(1)=data(1);
S(i)=sum((data-data_0_mao_xing').^2);
OUT(i,:)=[a,u,a_xing,u_xing];
end
S=S';
%plot(1:n,data,'b-o',1:n,data_0_mao_xing,'g-*');
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -