2009-06-16 56 views
1

我想在PHP中實現功能,類似於Microsoft Excel中的目標搜索。PHP中的目標尋道功能

這樣的事情可能在PHP中實現嗎?

下面是詳細

我們正在寫一個金融公司個人貸款管理應用程序的故事。他們目前使用Excel工作表來完成各種負載,EMI等計算。現在他們想要在線實施這一功能,以便他們的員工可以從任何地方訪問它。

在這我們必須編程興趣計算。這種利息計算非常複雜,但可以說利息是以減少的方法計算的,但這樣做總是比平息少一點。

假設某人在12個月(1年)內以10%的比率貸款10000。

在這種情況下,平息將爲1000(10000 *(10/100))。

我們必須在減少方法中顯示借款人利息計算,並且減少方法的總利息總是應該少於平息。

爲此,我們必須計算實際高於10%的利率。爲了達到他們(客戶)目前使用的目標搜索功能的確切價值,因爲這非常快。

在我們正在開發的在線軟件中,我們已經實現了執行這種計算的邏輯,但它需要很長時間,因爲我們必須執行一個循環,這個循環在迭代超過100000次時才能達到可接受的值。

我希望我已經正確地解釋了整個情況。

+0

是有可能,你可以詳細一點更請。你究竟想要做什麼?輸入是如何產生的?它是一個像應用程序的電子表格嗎?或者你是從一個CSV文件輸入? – dassouki 2009-06-16 11:51:40

+0

目標追求是什麼:http://www.homeandlearn.co.uk/ME/mes8p4.html – cgp 2009-06-16 12:04:58

回答

-5

由於PHP是圖靈完整的,那麼是的,這是可能的。當然,你需要實現你自己的算法和用戶界面。請詳細說明這種功能的設計,以及如何看待它,然後我可以給你一些進一步的指示。

+0

你在說什麼廢話? – vick 2017-06-08 17:59:27

1

如果您有計算功能,並且您需要運行100K次,則該功能的數據饋送不是最優的。您應該使用粗粒度數據(值之間的大差距)來饋送函數firt,然後使用更精細的數據。

當然,您需要編寫比biiiig循環更復雜的控制流。

最簡單的方法(代碼)

  • 你在目標
  • 飼料中的數據與速度* 0.5偏高,看看它是否會去偏低
  • 等於:你準備好了;低於目標:飼料與率* 0.75仍然更高:飼料與率* 0.25

重複,直到它收斂。請記住,您希望消除剩餘價值的1/2。

它會很快。

4

有關Goal Seek here, on the Microsoft support site的一點(一點點)。這對你來說可能足夠了。

就你而言,更快執行的方法是使用類似Newton-Raphson的東西,因爲你有一個已知的公式。如果維基百科頁面沒有足夠的幫助,現在你知道什麼谷歌爲你可能能夠找到一個很好的PHP演練。

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 

?>