2010-12-15 25 views
1

我从我的信用卡中支取'金额'的预付现金,支付 预付费(以百分比形式给出),促销价格为“int '时间'len'' 。我必须每月支付至少“最低”的欠款额。查找现金预付费+促销汇率的等值利率

我把“金额”放入一个赚取'p'%利息的投资账户,并且 也从这个账户进行月度支付。

问题:在'len'时间后,我会打破'p'的什么值?

下面是我如何设置它在数学:

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}] 

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

如何强迫Mathematica找到这个值?

我试着解决owed [t],然后用owed [t]代入[t],然后求解[len] ==得到[len],但是这产生了类似的 错误。运行Reduce on“欠[len] ==有[len]”产生了一些复杂和丑陋的东西 。

+0

到目前为止,我强迫人们给我更好的答案的计划并未获得广泛的成功;) – barrycarter 2010-12-16 03:30:43

回答

2

方程式:

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

如果两个INT分钟是常数,仅仅是一个指数函数。初始条件

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}] 

那给你满足你的收支平衡条件的表达。

为了获得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解决。我尝试了一些东西(不是太多,当然),它抗拒强。

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

+0

好吧,这里是你不能在DSolve中放置'have [0] == amount',因为没有通用的解决方案。然而,如果你计算一般的解决方案,然后做'有'数量'',你没事。 – barrycarter 2010-12-16 00:45:12

+0

@barrycarter嗯,我不知道为什么它不适用于“所有内部”,只是试图找到出路... – 2010-12-16 00:55:31

+0

是的,谢谢!我只是想弄清楚我做错了什么,看起来就是这样。 – barrycarter 2010-12-16 00:56:46