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

将数学表达式转换为C或Java代码,java,c,expression,Java,C,Expression,我需要将此表达式重写为代码(C或Java): g,h,i,j,f,f0是变量 表达式: 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) 谢谢。为了理解Java中的现成内置数学函数,您可以使用javadoc 例如,您可以在这里找到。为了理解Java中内置的现成数学函数,您可以使用ja

我需要将此表达式重写为代码(C或Java):

g
h
i
j
f
f0
是变量

表达式

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)


谢谢。

为了理解Java中的现成内置数学函数,您可以使用javadoc


例如,您可以在这里找到。

为了理解Java中内置的现成数学函数,您可以使用javadoc


例如,在java中,
ln^n(f0/f)
将是:
Math.pow(Math.log(f0/f),n)
在java中,
ln^n(f0/f)
将是:
Math.pow(Math.log(f0/f),n)
翻译表达式:

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

val = 1/{g+h[ln(f0/f)]+i[ln^2(f0/f)]+j[ln^3(f0/f)]-273.15;
在Java中,类为数学运算提供了不同的方法:

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);
double logRes = log(f0 / f);
double result = 1.0 / (g + (h * logRes) + (i * pow(logRes, 2.0)) + (j * pow(logRes, 3.0)) - 273.15);
C

val = 1/{g+h[ln(f0/f)]+i[ln^2(f0/f)]+j[ln^3(f0/f)]-273.15;
在C语言中,提供不同的函数来执行数学运算:

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);
double logRes = log(f0 / f);
double result = 1.0 / (g + (h * logRes) + (i * pow(logRes, 2.0)) + (j * pow(logRes, 3.0)) - 273.15);

翻译这个短语:

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

val = 1/{g+h[ln(f0/f)]+i[ln^2(f0/f)]+j[ln^3(f0/f)]-273.15;
在Java中,类为数学运算提供了不同的方法:

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);
double logRes = log(f0 / f);
double result = 1.0 / (g + (h * logRes) + (i * pow(logRes, 2.0)) + (j * pow(logRes, 3.0)) - 273.15);
C

val = 1/{g+h[ln(f0/f)]+i[ln^2(f0/f)]+j[ln^3(f0/f)]-273.15;
在C语言中,提供不同的函数来执行数学运算:

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);
double logRes = log(f0 / f);
double result = 1.0 / (g + (h * logRes) + (i * pow(logRes, 2.0)) + (j * pow(logRes, 3.0)) - 273.15);

自然对数是
log(x)
而不是
ln(x)
在Cadding
#include
和adding
libm
中。表达式的任何地方都没有结束括号吗?是的,我错了……自然对数是
log(x)
而不是
ln(x)
在Cadding
#include
和adding
libm
中。表达式的任何地方都没有结束括号吗?是的,我的错误……你的代码中有
f0/f0
,应该是
f0/f
你的代码中有
f0/f0
,应该是
f0/f