📄 svenson-ns.txt
字号:
function v2=svenson_ns_joint(x) ;
load Data.mat;
bd_qy=zeros(size(p_qy));
d_qy=zeros(size(cf_qy));
m=zeros(size(cf_qy));
j=1;
num=147;
b0=x(1);
b1=x(2);
b2=x(3);
b3=x(4);
t1=x(5);
t2=x(6);
bb0=x(7);
bb1=x(8);
bb2=x(9);
t3=x(10);
for i=1:num
for s=t_qy(i,:)
if s==0
break;
else
m1=-s/t1;
m2=-s/t2;
m3=-s/t3;
r1=b0+b1*((exp(m1)-1)/m1)+b2*((exp(m1)-1)/m1-exp(m1))+b3*((exp(m2)-1)/m2-exp(m2)); %svenson model
r2=bb0+bb1*(-exp(m3)/m3)*exp(m3)+bb2*((exp(m3)-1)/m3-exp(m3)); %nelson-siegel model
b=exp(-r1*s-r2*s); %b=(1+r1*s+r2*s)^(-s);
end
d_qy(i,j)=b;
j=j+1;
end
j=1;
end
m=d_qy.*cf_qy;
for i=1:num
for h=m(i,:)
if h==0
break;
else bd_qy(i)=bd_qy(i)+h;
end
end
end
v2=zeros(size(du_qy));
dd_qy=sum(1./du_qy);
w_qy=du_qy;
for i=1:num
v2(i)=1/w_qy(i)/dd_qy*(p_qy(i)-bd_qy(i))/(num*1000)^(0.5); %为防止函数值过小,在优化时过早收敛乘上1000 不影响结果
end
save jjh.mat;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -