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

2 Ansichten (letzte 30 Tage)
Minhao Wang
Minhao Wang am 13 Okt. 2020
Kommentiert: Image Analyst am 13 Okt. 2020
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?

Antworten (2)

Steven Lord
Steven Lord am 13 Okt. 2020
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 Kommentare
Minhao Wang
Minhao Wang am 13 Okt. 2020
the old balance(the initial balance) is 2000$ , I don't know where did I do wrong...
Steven Lord
Steven Lord am 13 Okt. 2020
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.

Melden Sie sich an, um zu kommentieren.


Image Analyst
Image Analyst am 13 Okt. 2020
Why are you adding 1 to the old balance nb(B-1)???
  2 Kommentare
Minhao Wang
Minhao Wang am 13 Okt. 2020
I thought that means add a month?
Image Analyst
Image Analyst am 13 Okt. 2020
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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by