查找现金预付费+促销费率的等价利率

时间:2010-12-15 22:23:17

标签: wolfram-mathematica financial differential-equations

我从信用卡中提取“金额”现金,支付了一笔 预付“费用”(按百分比给出),促销费率为“int” 时间'len'。我必须每月支付至少“最低”的欠款金额。

我将'金额'存入一个赚取'p'%利息的投资账户,并且 还可以通过此帐户进行每月付款。

问题:在“len”时间之后,“p”的值是什么?

以下是我在Mathematica中设置的方法:

DSolve[{ 

(* I start off owing amount plus the fee *) 
owed[0] == amount*(1+fee), 

(* The amount I owe increases due to credit card interest, 
   but decreases due to monthly payments *) 
owed'[t] == int*owed[t]-min*12*owed[t], 

(* I start off having amount *) 
have[0] == amount, 

(* The amount I have increases due to investment interest, 
   but decreases due to monthly payments *) 
have'[t] == p*have[t]-min*12*owed[t], 

(* After len, I want to break even *) 
owed[len] == have[len] 
}, 
{owed[t], have[t]}, {t}] 

Mathematica返回“DSolve :: bvnul:对于将军的某些分支 解决方案,给定的边界条件导致空解“, 这实际上是合理的:只有一个'p'值 产生上述微分方程的解。

如何强迫Mathematica找到这个值?

我尝试解决欠了[t],然后将欠[t]代入have [t], 然后解决欠[len] ==有[len],但这产生了类似的结果 错误。运行Reduce on“owed [len] == have [len]”产生了一些东西 复杂而丑陋。

1 个答案:

答案 0 :(得分:2)

等式:

owed'[t] == int owed[t]-min 12 owed[t] 

如果 int min 都是常量,则只是一个指数函数。初始条件

owed[0] == amount*(1 + fee)  

给出

owed[t_] := amount E^((int - 12 min) t) (1 + fee)  

这是欠[t]

的解决方案

现在你可以使用[t]:

DSolve[{
  have'[t] == p*have[t] - min*12*owed[t],
  have[len] == owed[len]},
 {have[t]}, {t}]  

这为你提供了满足你的收支平衡条件的[t]的表达式。

要获得p的值,必须使用最后一个等式:

 have[0] == amount  

或者,在更换后为其值为[0]:

(amount E^(-len p) (1 + fee) (12 E^(len p) min + 
   E^(len (int - 12 min)) (-int + p)))/(-int + 12 min + p) == amount 

p的最后一个等式似乎不容易解决。我尝试了一些东西(当然不是太多)并且它抵抗力强。

但......给出其余参数的数值可以通过任何数值方法解决(我猜)