我想在PHP中实现类似于Microsoft Excel中的Goal Seek的功能。
这样的事情可以在PHP中实现吗?
以下是详细信息
我们正在为一家金融公司撰写个人贷款管理申请表。他们目前使用Excel工作表进行各种负载,EMI等计算。现在,他们希望在线实施此功能,以便他们的员工可以从任何地方访问它。
在此我们必须计划利息计算。这种利息计算非常复杂,但可以说利息是用减少方法计算的,但是,它总是比平面利息少一点。
比如说某人以12%(1年)的10%的利率贷款10000。
在这种情况下,持平利息将为1000(10000 *(10/100))。
我们必须在减少方法中显示借款人利息计算,并且减少方法的总利息应该总是比平均利息少一点。
为此,我们必须计算实际高于10%的利率。为了达到确切的价值,他们(客户)目前正在使用Goal Seek功能,因为这非常快。
在我们正在开发的在线软件中,我们已经实现了用于执行此计算的逻辑,但是由于我们必须执行循环,该循环在时间上超过100000次以达到可接受的值,因此需要非常长的时间。
我希望我已经正确地解释了整个情况。
答案 0 :(得分:4)
有一点(一点点)关于Goal Seek的作用here, on the Microsoft support site。这可能足以让你开始使用。
在您的情况下,性能更快的方法是使用类似Newton-Raphson的方法,因为您有一个已知的公式开头。如果维基百科页面没有足够的帮助,现在你知道google的内容,你可以找到一个不错的php演练。
答案 1 :(得分:2)
目标寻求公式(PHP公式)
<?php
/* PMT Function for goal seek formula
* PMT = (PV(1+i)^n) + FV)i
* -------------------
* 1-(1 + i)^n
*
*
* $i = annual interest rate
* $n = total months
* $p = total loan amount (Principle Amount)
*/
function PMT($i,$n,$p)
{
return $i * $p * pow((1 + $i),$n) / (1 - pow((1 + $i),$n));
}
echo"goal seek = ",(number_format(PMT(7/1200,120,60000),2)); // This will Display result
?>
答案 2 :(得分:1)
如果您具有计算功能并且需要运行100K次,那么该功能的数据馈送不是最佳的。您应该使用粗粒度数据(值之间的大差距)为函数firts提供更精细的数据。
当然,你需要在循环时编码比biiiig更复杂的控制流程。
最简单的方法(代码)
重复直至收敛。请记住,你想要完全消除其余值的1/2。
会很快。
答案 3 :(得分:-5)
由于PHP是Turing-complete,所以是的,这是可能的。当然,您需要为此实现自己的算法和用户界面。请详细说明这个功能的设计,你怎么看,然后我可以给你一些进一步的指示。