2016-09-20 85 views
0

我需要這個表達式改寫成代碼(C或Java):轉換的數學表達式爲C或Java代碼

ghijff0是變量

表達

val = 1/{g+h[ln(f0/f)]+i[ln^2(f0/f)]+j[ln^3(f0/f)]-273.15; 

我的問題是將ln^2(f0/f)轉換爲代碼。

這是(pow(ln(fo/f),2))ln^3(f0/f)pow(ln(f0/f),3)

謝謝。

+1

自然對數是log'在'(X)'代替'LN(x)的C –

+1

添加'#include '並添加'libm'。 – LPs

+2

表達式沒有結束大括號嗎? –

回答

1
double result = 1/(g + h*Math.log(f0/f) + i*Math.pow(Math.log(f0/f), 2) + j*Math.pow(Math.log(f0/f), 3) -273.15); 
+0

你的代碼中有'f0/f0',應該是'f0/f' –

+0

啊是的 - 已更正 – d80tb7

1

在java中,ln^n(f0/f)將是:Math.pow(Math.log(f0/f), n)

3

翻譯表達:

val = 1/{ g + h[ ln(f0/f) ] + i[ ln^2(f0/f) ] + j[ ln^3(f0/f) ] - 273.15} 

爪哇

在Java中,java.lang.Math類提供的數學運算不同的方法:

double logRes = Math.log(f0/f); // As ln(f0/f) is been used more than once, so it's 
// better to have it calculated just once. 
double result = 1.0/(g + (h * logRes) + (i * Math.pow(logRes, 2.0)) + (j * Math.pow(logRes, 3.0)) - 273.15); 

Ç

在C中,math.h提供不同的功能,以執行數學運算:

double logRes = log(f0/f); 
double result = 1.0/(g + (h * logRes) + (i * pow(logRes, 2.0)) + (j * pow(logRes, 3.0)) - 273.15);