2016-11-26 46 views
1

的公式爲:在C#上寫的是真的嗎?

enter image description here

是不是真的我寫?

Double x = 14.26 
Double y = -1.22 
Double z = 3.5 * Math.Pow(10.0, -2) 
Double t; 

t = (2 * Math.Cos(x - Math.PI/6))/(0.5 + Math.Pow(Math.Sin(y), 2)) * ((1 + Math.Pow(z, 2))/(3 - Math.Pow(z, 2)/5)); 

由於結果不與上述所期望的結果相一致 - T = 0,188451240697501,我需要與T推導0.564849。

+0

什麼'y'?這是度數還是弧度? –

+2

我建議分別計算分子和分母,以使表達更容易理解。 – Dai

+0

@GhostBasenji對不起,但我認爲Ofiris答案包含一個錯誤..他做1 +(Math.Pow(z,2),然後劃分所有for(3-Math.Pow(z,2)/ 5)..但(Math.Pow(z,2)/(3-Math.Pow(z,2)/ 5)),如果你看到你發佈的algebric表達式,這是一個錯誤,因爲你已經添加了1。的表達是正確的 –

回答

1

我認爲,一個錯誤是在這裏:

((1 + Math.Pow(z, 2))/(3-Math.Pow(z, 2)/5)) 

你應該做的:

(1 + (Math.Pow(z, 2)/(3-Math.Pow(z, 2)/5))) 
2
Double x = 14.26, y = -1.22, z = 3.5 * Math.Pow(10.0, -2), t; 
    t = (2*Math.Cos(x-Math.PI/6))/(0.5+Math.Pow(Math.Sin(y), 2)) * (1 + (Math.Pow(z, 2))/(3-Math.Pow(z, 2)/5)); 

    Console.WriteLine(t); // 0.5648... 

你有括號問題,請更改((1 + Math.Pow(z, 2))(1 + (Math.Pow(z, 2)),1加應分割後進行計算。

另外,考慮分別計算分子和分母。

+0

這個答案包含一個明顯的計算錯誤,與代數形式的(Math.pow(z,2))「,然後divi加上」1「 (3 - (Math.pow(z,2)/ 5))「。雖然正確的計算由「(Math.pow(z,2))和(3 - (Math.pow(z,2)/ 5))」之間的除法結果構成「1」。 –