2011-05-12 50 views
3

我正在使用維基百科上的「closer approximation」製作露點計算器。Javascript:解決方程組

我希望能夠計算露點,如果用戶輸入任何兩個變量。

有沒有簡單的方法來做到這一點,而不是有很多if語句?

更具體地說:如果我想使用溼球溫度而不是相對溼度怎麼辦?我是否必須創建一個新函數或使用if語句來排除一組變量?

目前我使用的溫度和相對溼度:

$('#calculate').click(function(){ 
     //Get Temp 
     var T = parseInt($('#val1').val()); 
     //Get RH 
     var RH = parseInt($('#val2').val()); 
     //Get es and ex 
     var es = 6.112*Math.exp(17.76*T/(T+243.5)); 
     var ex = (RH*es)/100; 
     //Calculate Dew Point 
     var Tdp = (243.5*Math.log(ex/6.112))/(17.67-Math.log(ex/6.112)); 
     $('#output').append("<p>Dew Point"+Tdp+"</p>"); 

    }); 
+0

現在只使用兩個變量。我不確定是否有可能在JavaScript中解決方程組,所以我堅持使用最常見的輸入。 :) –

+0

+1有趣的問題。但是,我很確定它會歸結爲'if'或'switch()case''語句。 – pixelbobby

+0

@KevinBrown:好吧,好多了:)(順便說一句,我不知道如何回答你的問題),只是認爲它可能會更完整。 – Trufa

回答

1

非線性方程組的求解FYI系統通常是一個困難的問題。盡你所能避免這種情況。

我通常的做法是,如果可以使用多對值來計算答案,那就是使用我給出的一對值來計算規範的一對值,然後用它來做真正的計算。此外,由於必須對輸入進行排序以弄清楚給出的內容以便您可以使用DWIM會變得很麻煩,因此對於每一對輸入都有單獨的函數,我會接受的。 (或者它可能不取決於程序中的控制流程,你知道這比我更好。)

+0

我從字面上簡單地認識到了這一點 - 今年夏天沒有工作,所以我在鬼混。 :) 歡迎任何意見。 :) –

+0

這是我一直想要的工具。在某一部分中輸入數學關係的部分,然後輸入您在網格中知道的值,並自動填充它所能包含的值。這可能需要在後臺運行的Maxima等。 – phkahler