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

1 visualización (últimos 30 días)
Minhao Wang
Minhao Wang el 13 de Oct. de 2020
Comentada: Image Analyst el 13 de Oct. de 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?

Respuestas (2)

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

Iniciar sesión para comentar.


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

Iniciar sesión para comentar.

Categorías

Más información sobre Startup and Shutdown en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by