gpt4 book ai didi

java - 用java求解一个复杂的代数公式

转载 作者:搜寻专家 更新时间:2023-11-01 01:07:29 26 4
gpt4 key购买 nike

我正在尝试使用 Java 求解以下等式中的 y:

enter image description here

为了可见性,我将分子和分母分为单独的变量。我需要计算 x = -3x = 40.5 为增量移动。

for(double x = -3; x <= 4; x += .5)
{
// Now we compute the formula for all values in between -3 and 4 in increments of 0.5

double top = ( 9 * Math.pow(x, 3) ) - ( 27 * Math.pow(x, 2) ) - ( (4 * x) + 12 );
double bottom = ( Math.pow(( 3 * Math.pow(x, 2) + 1 ) , 1/2) + Math.abs( 5 - (Math.pow(x, 4)) ) );

double y = top / bottom;

System.out.print("X = " + x + "\t Y = " + y);
}

我得到的值不符合预期。

X = -3.0     Y = -6.311688311688312 
X = -2.5 Y = -8.880570409982175
X = -2.0 Y = -15.333333333333334
X = -1.5 Y = -91.41176470588235
X = -1.0 Y = -8.8
X = -0.5 Y = -3.0105263157894737
X = 0.0 Y = -2.0
X = 0.5 Y = -3.305263157894737
X = 1.0 Y = -6.8
X = 1.5 Y = -45.529411764705884
X = 2.0 Y = -4.666666666666667
X = 2.5 Y = -1.429590017825312
X = 3.0 Y = -0.3116883116883117
X = 3.5 Y = 0.19940094137783482
X = 4.0 Y = 0.4603174603174603

我使用在线工具计算 X = 0,得到的是 2 而不是 -2。我的计算方式有问题吗?

最佳答案

您在执行表达式时犯了一个错误。

... - ( (4 * x) + 12 )

应该是

... - (4 * x) + 12

或者在完整的表达式中:

double top = ( 9 * Math.pow(x, 3) ) - ( 27 * Math.pow(x, 2) ) - (4 * x) + 12;

也如 @JacobG 所述:

1/2 的计算结果为 0,因为它是整数除法。不过,如果您对 x = 0 求值,这没有任何区别。这可以改用 0.5 来纠正。

关于java - 用java求解一个复杂的代数公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50688322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com