PHP中的科学计算

时间:2014-08-06 14:47:22

标签: php scientific-computing

我有一个客户端希望将此计算转换为PHP中的函数。我给了测试数字并给出了答案,我从这个答案中得到了太多的答案,因为它是正确的我不确定计算是错误还是我没有看到问题。

Scientific Calculation

function Density($m1 , $m2, $m3, $pw, $psm){

  return   $m1 /  (($m2 - $m3) / $pw) - (($m2 - $m1) / $psm) ; 
} 
$Density = ( Density(746.2, 761.7, 394.6, (998.1*1000), (761.7-746.2)) / 1000000)

output : 2.02882553228
answer : 2.127

我也尝试过这样的事情,但这对于它来说是正确的

function Density($m1 , $m2, $m3, $pw, $psm){

  return   $m1 /  ((($m2 - $m3) / $pw) - (($m2 - $m1) / $psm )); 
} 

output : -0.001
answer : 2.127

我知道它应该接近答案,因为它可以从正确的答案得到0.010但我不知道我做错了请帮助互联网。

2 个答案:

答案 0 :(得分:3)

记住BEDMAS - 括号指数除法加法减法。您的代码对于操作顺序是错误的:

m1 / (((m2 - m3) / pw) - ((m2 - m1) / psm))

或者,如果该等式已正确排版:

          m1
 --------------------
 m2 - m3      m2 - m1
 -------  -   -------
    pw          psm

答案 1 :(得分:0)

您的实施与要求不同。

您应该确保严格遵守运营商优先级规则:

return   $m1 /  ((($m2 - $m3) / $pw) - (($m2 - $m1) / $psm)) ;