k(0)=4,y(t)=k(t)^0.5+3,c(t)的取值为0.05,k(t)/2和k(t),u(t)=ln(c(t))+0.05*k(t),k(t+1)=y(t)-c(t)+0.8*k(t),t取1到50,计算出3^50个k(50),再利用V(t)=u(t)+0.9*V(t+1),V(51)=0,可以得到3^50个V(0),找到最大的V(0)记为Vmax,求解Vmax的matlab代码
时间: 2023-08-05 11:06:34 浏览: 87
2018年高考数学小题精练系列第02期专题24综合训练3理
根据题意,需要先计算出50个k值,然后根据V(t)的公式计算出3^50个V(0),最后找到最大的V(0)。以下是MATLAB代码:
```
k(1) = 4;
for t = 1:50
y(t) = sqrt(k(t)) + 3;
c(t) = 0.05;
k(t+1) = y(t) - c(t) + 0.8*k(t);
end
V(51,:) = zeros(1, 3^50);
for i = 3^49:-1:1
V(51,i) = V(51,i+1) + log(0.05) + 0.05*k(51) + 0.9*0;
end
for t = 50:-1:1
for i = (3^(50-t)-1)*3^t+1:(3^(50-t))*3^t
V(t,i) = log(0.05) + 0.05*k(t) + 0.9*V(t+1, 3*i-2:3*i);
end
end
Vmax = max(V(1,:));
```
这里需要注意的是,V(51,:)需要先赋值为3^50个0,因为题目中给出了V(51)=0。另外,计算V(0)时需要从t=50开始倒推,因为V(51)已知。最后,Vmax的值就是V(0)的最大值。
阅读全文