2017-10-06 110 views
0

我正在嘗試爲我的熱力學類做出自動迭代,但是當我嘗試將通過計算獲得的值替換爲相同的公式並執行操作小於請求的錯誤,但不起作用。我想我真的不知道該怎麼做...有人可以幫我嗎?如何用先前計算的變量替換變量的值

do {  
    vn = (((r * t)/p)*(1 + (b/v)+(c/(v^2))+(d/(v^3)))); 
    vn = v 

    document.getElementById("termo").innerHTML = "The value of the real volume is:" + vn; 
} 
while ((v-vn) <= e) 

回答

1

首先您需要存儲最後一個值v = vn
然後計算新值vn = (((r * t) ...
現在您寫出新值document.getElementById(...
然後比較這些值並查看它是否低於閾值while(...
如果不是,那麼重新做一遍。

do { 
    v = vn; 
    vn = (((r * t)/p) * (1 + (b/v) + (c/(v^2)) + (d/(v^3)))); 

    document.getElementById("termo").innerHTML = "The value of the real volume is:" + vn; 
} while (Math.abs(v-vn) > e); 

JSFiddle
記住,雖然我只是設置一些隨機數初始值,因爲我不知道你想什麼來計算(但我猜關於理想氣體容器容積)做的。

但是,您的等式中也有可能存在錯誤。我不知道使用XOR^是javascript中的XOR)的任何熱力學方程式。你可能意思是v to the second powerv to the third power。那麼你的方程應該是這樣的:

vn = (((r * t)/p) * (1 + (b/v) + (c/Math.pow(v, 2) + (d/Math.pow(v, 3)))));