将数学表达式转换为C或Java代码

时间:2016-09-20 06:38:16

标签: java c expression

我需要将此表达式重写为代码(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)吗?

谢谢。

4 个答案:

答案 0 :(得分: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

在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);

答案 1 :(得分:1)

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

答案 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);

答案 3 :(得分:0)

为了理解Java中随时可用的指尖数学函数,您可以转到java.lang.Math

的javadoc

例如,您可以找到log(double)