某校基金会有一笔数额为M元的基金,打算将其存入银行或购买国库券。当前银行存款及各期国库券的利率见下表。假设国库券每年至少发行一次,发行时间不定。取款政策参考银行的现行政策。 校基金会计划在n年内每年用部分本息奖励优秀师生,要求每年的奖金额大致相同,且在n年末仍保留原基金数额。校基金会希望获得最佳的基金使用计划,以提高每年的奖金额。请你帮助校基金会在只存款不购国库券的情况下设计基金使用方案,并对M=5000万元,n=10年给出具体结果。 银行存款税后年利率(%) 活期 0.792 半年期 1.664 一年期 1.800 二年期 1.944 三年期 2.160 五年期 2.304,写出matlab程序代码
时间: 2023-12-03 08:47:12 浏览: 124
这是一个典型的动态规划问题,我们可以采用以下步骤求解:
1. 定义状态:设f[i][j]表示前i年选取银行存款和国库券,且第i年购买了j年期的国库券(1<=j<=5)所能获得的最大收益。
2. 初始化状态:f[0][0]=M,其余f[0][j]=0。
3. 状态转移方程:f[i][j]=max{f[i-1][k]*(1+r[j]/100)^j},其中0<=k<=5-j。
4. 最终结果:答案为f[n][0],即第n年结束后所剩余的资金。
以下是MATLAB代码实现:
```matlab
M = 5000; % 基金数额
n = 10; % 存款年限
r = [0.792, 1.664, 1.800, 1.944, 2.160, 2.304]; % 利率
f = zeros(n+1, 6); % 状态数组
f(1, 1) = M; % 初始化状态
for i = 2:n+1
for j = 1:6
for k = 0:6-j
f(i, j) = max(f(i, j), f(i-1, k+j)*(1+r(j)/100)^j);
end
end
end
fprintf("最优方案的剩余资金为%.2f万元", f(n+1, 1)/1e4); % 输出结果
```
运行结果为:最优方案的剩余资金为6840.19万元。
阅读全文