如何在java中编写sin squared

时间:2016-01-31 23:47:00

标签: java

double maxHeight = 0.0;

velocity = v;
angle = theta;

maxHeight = Math.pow(velocity, 2.0);
maxHeight = Math.pow(sin, 2.0);
maxHeight *= Math.sin(angle) / (2 * gravity);

我正试图获得Math.pow(sin, 2.0);。它要我宣布sin。我应该放下什么呢?我只是试图让罪恶平方。

2 个答案:

答案 0 :(得分:0)

首先 - Math.pow(x,2.0)等于sin * sin,第二种方法应该更有效率。

当谈到你的问题时 - 变量" sin"你想在第二个Math.pow()中使用吗?

示例代码:

// assuming that "v", "theta" and "gravity" are known variables

double sin = Math.sin(theta);
double maxHeight = (v * v * sin * sin) / (gravity * 2);

更正了原始代码:

double maxHeight = 0.0;

velocity = v;
angle = theta;

maxHeight = Math.pow(velocity, 2.0);
double sin = Math.sin(angle);
maxHeight *= Math.pow(sin, 2.0) / (2 * gravity);

答案 1 :(得分:0)

您当前代码的问题在于您尝试访问名为sin的变量,但该变量不存在。既然你是从Java开始的,那就让我们重新开始吧。

您想要计算h = v² sin²( θ ) / ( 2 g )。我们已经有vtheta

首先,分子是v² sin²(θ)。这意味着我们需要计算。然后我们需要计算sin(θ)并将结果平方。然后我们需要将这两个数相乘。加入代码,我们有:

double vSquared = Math.pow(v, 2);
double sinTheta = Math.sin(theta);
double sinThetaSquared = Math.pow(sinTheta, 2);
double numerator = vSquared * sinThetaSquared;

分母只是2*g所以我们有:

double maxHeight = numerator / (2 * gravity);

如果我们将其简化为单个表达式,我们会提出:

//test data
double v = 1.0;
double theta = 1.5;
double gravity = 9.8;

double maxHeight = Math.pow(v, 2) * Math.pow(Math.sin(theta), 2) / (2 * gravity);