我从信用卡中提取“金额”现金,支付了一笔 预付“费用”(按百分比给出),促销费率为“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]”产生了一些东西 复杂而丑陋。
答案 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的最后一个等式似乎不容易解决。我尝试了一些东西(当然不是太多)并且它抵抗力强。
但......给出其余参数的数值可以通过任何数值方法解决(我猜)