Solve Symsum equation for implied discount rate

1 visualizzazione (ultimi 30 giorni)
Dear All,
I am trying to solve for a discount rate which sets the net present value to a specific value.
Stream = [-20000, 2000, 2500, 3500, -5000, 6500,...
9500, 9500, 9500];
syms x k real;
eqn = symsum(Stream(1,k)*(1+x)^-k,k,1, length(Stream)) == 5274;
solx = solve(eqn,x)
Could anyone help to get the exact number for x?
Thanks in advance!

Risposta accettata

Walter Roberson
Walter Roberson il 2 Lug 2016
symsum() cannot be used for indexing. Create a vector of symbolic values and sum() that.
eqn = sum(Stream .* (1+x).^-(1:length(Stream))) == 5274
  1 Commento
peterhack
peterhack il 3 Lug 2016
This did the trick. Additionally I have used vpasolve over a certain intervall to get the numeric value:
syms x k real;
eqn = sum(Stream .* (1+x).^-(1:length(Stream))) == 5274;
alpha = vpasolve(eqn,x,[0 1])

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Physics in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by