What did I do wrong in my 'for' loop function?

2 ビュー (過去 30 日間)
Minhao Wang
Minhao Wang 2020 年 10 月 13 日
コメント済み: Image Analyst 2020 年 10 月 13 日
The question is
With the help of an RESP (Registered Education Savings Plan), a parent can start putting aside money for a child's post-secondary education. Suppose that a young couple deposits $2,000 to start the savings plan, and each month thereafter they contribute $200. Assume that a fixed interested rate of 6.25% per year compounded monthly is applied.
Each month the balance increases according to the following formula: New balance = Old balance + (Old balance * Monthly interest rate) + Monthly contribution
nb(1) = 2000; %the initial balance
mir = 0.0625/12; %monthly rate
mc = 200;% contribution for each month
for B = 2 : 216
nb(B) = (nb(B-1)+1) + ((nb(B-1)+1) * mir) + mc;
end
fprintf('At the end of 18 years you will have saved $ %.2f \n',nb(B))
when you run this, you will get 85431.77, But the correct answer should be 85035.09.
Where did I do wrong?

回答 (2 件)

Steven Lord
Steven Lord 2020 年 10 月 13 日
In this line of your code:
nb(B) = (nb(B-1)+1) + ((nb(B-1)+1) * mir) + mc;
What's the old balance? Are you certain that you're accurately carrying over the balance from the previous month into the calculations for the next month? [From the fact that I'm asking these questions, you're probably guessing the answer to that second question is no.]
  2 件のコメント
Minhao Wang
Minhao Wang 2020 年 10 月 13 日
the old balance(the initial balance) is 2000$ , I don't know where did I do wrong...
Steven Lord
Steven Lord 2020 年 10 月 13 日
If your initial balance nb(1) is 2000, when you go to compute the balance for month 2 nb(2) you start with an old balance of 2001. That may not seem like a big difference, but it's big enough compounded over two years to make your answer incorrect by about $400.

サインインしてコメントする。


Image Analyst
Image Analyst 2020 年 10 月 13 日
Why are you adding 1 to the old balance nb(B-1)???
  2 件のコメント
Minhao Wang
Minhao Wang 2020 年 10 月 13 日
I thought that means add a month?
Image Analyst
Image Analyst 2020 年 10 月 13 日
No. B is the month, and the for loop takes care of incrementing the month number. You were improperly adding $1 to the old balance so that's why your answer was more than the correct answer.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by