我需要解决这个等式来找到Y的值,因为我有所有其他参数。
功能是:
我已经用这种方式实现了这个功能。
f = @(x)-bond_price - accruedinterest + (principal/(1+x/200)^(N-1+(differenceindays/E)) + symsum((couponrate/2)/(1+x/200)^(k-1+(differenceindays/E)),k,2,N) + (couponrate/2)/((1+x/200)^(differenceindays/E)));
yield = fzero(f,0);
我得到的错误是:未定义的函数或变量'k'。
btw如何找到解决方案,使其等于零?
不确定我是否正确实施。需要一些指导。
答案 0 :(得分:1)
您可以将symsum
替换为sum
并执行以下操作:
differenceindays = ...
E = ...
bond_price = ...
accruedinterest = ...
principal = ...
couponrate = ...
N = 100;
k = 2:N;
DSC_E = differenceindays/E;
f = @(x)-bond_price-accruedinterest+principal./(1+x/200).^(N-1+DSC_E) ...
+sum(0.5*couponrate./(1+x/200).^(k-1+DSC_E)) ...
+0.5*couponrate./(1+x/200).^DSC_E;
我还删除了一堆多余的括号以提高可读性。这应该与fzero
一起使用(假设等式具有一个或多个写的根)。但当然我们无法测试它,因为它是所有未知的变量。