gpt4 book ai didi

C++:求解三次方程

转载 作者:太空宇宙 更新时间:2023-11-03 10:32:18 26 4
gpt4 key购买 nike

<分区>

site求解三次方程,并有它使用的方程

我写这个函数是为了得到相同的结果,但它不起作用

void cubicFormula(float a, float b, float c, float d, float *results)
{
float a2 = a*a;
float b2 = b*b;
float b3 = b2*b;

float q = (3*c- b2)/9;
float q2 = q*q;
float q3 = q2*q;
float r = -27*d + b*(9*c-2*b2);
float r2 = r*r;

float discriminant = q3 + r2;

float s = r + sqrtf(discriminant);
float t = r - sqrtf(discriminant);

float term1 = powf((-t + s)/2, 1/3.);

float r13= 2 * sqrtf(q);

results[0] = (- term1 + r13 * cosf(q3/3));
results[1] = (- term1 + r13 * cosf(q3 + (2*M_PI)/3));
results[2] = (- term1 + r13 * cosf(q3 + (4*M_PI)/3));
}

可能是什么问题,是不是我遗漏了什么?

更新:

例如,使用这些值

a = -1.000000;
b = 36.719475;
c = -334.239960;
d = 629.877808;

判别式小于零,所以 r13nan

但是上面提到的网站和我测试过的几个在线求解器找到了三个根

23.775687816485593
2.548516232734247
10.395270950780164

都是实数

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