从谷歌缓存中检索到的James Carter最初的问题:
数组索引必须是正整数或逻辑值
我知道,当你创建这种循环时,你的数组必须是正整数,然而在这个赋值中,我们必须循环取非整数的值,比如0。这个循环的重要部分是允许和在0和1之间有不同的值,包括0和1。其中一个要点是,为了使X3d的最小值等于e3 = 2,为了使X3u成为最大值,theta为0/eps。非常感谢任何关于如何修复代码和启用循环的帮助。
步骤1:定义所有变量
e1 = 1;
e2 = 3;
e3 = 2;
概率= 0.5;
俄文= 1.1;
Rd = 0.90;
γ= 1.5;
每股收益= 10 ^ -10
X1 = e1;
X2 = linspace (e2、e1 *俄文+ e2,100);
θ= linspace (eps, 1100);
α= linspace (0, 1100);
v2_MAX = -10 ^ 20;
IVector = linspace (1100100);
KVector = linspace (eps, 1100);
JVector = linspace (0, 1100);
%%步骤2:创建周期2中获取value函数的循环
为i = IVector
为k = KVector
反对(2 k) =θ(k) * X2(我);
为j = JVector
X3u = max (X2 (i) * (1-theta (k)) *(α(j) *俄文+(1α(j))) + e3);
X3d = min (X2 (i) * (1-theta (k)) *(α(j) * Rd +(1α(j))) + e3);
u3u = (X3u ^ (1-gamma)) / (1-gamma);
u3d = (X3d ^ (1-gamma)) / (1-gamma);
u2 = (con (2 k) ^ (1-gamma)) / (1-gamma);
v2 = u2 +(Prob*u3u+(1-Prob)*u3d);
如果v2 > v2_MAX
v2_MAX = v2;
α(2,)=α(j);
θ(2,)=θ(k);
结束
结束
结束
结束