用编程写求根公式怎么写

时间:2025-01-24 11:33:06 游戏攻略

求根公式用于解一元二次方程,其一般形式为 \(ax^2 + bx + c = 0\),其中 \(a\)、\(b\) 和 \(c\) 是常数,\(x\) 是未知数。求根公式为:

\[ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \]

```python

import math

def solve(a, b, c):

discriminant = b2 - 4*a*c

if discriminant > 0:

root1 = (-b + math.sqrt(discriminant)) / (2*a)

root2 = (-b - math.sqrt(discriminant)) / (2*a)

return root1, root2

elif discriminant == 0:

root1 = root2 = -b / (2*a)

return root1, root2

else:

real_part = -b / (2*a)

imaginary_part = math.sqrt(-discriminant) / (2*a)

return complex(real_part, imaginary_part), complex(real_part, -imaginary_part)

示例使用

a, b, c = 1, 4, 3

roots = solve(a, b, c)

print(roots)

```

在这个示例中,我们定义了一个名为 `solve` 的函数,它接受三个参数 \(a\)、\(b\) 和 \(c\),并返回方程的两个根。我们首先计算判别式 \(b^2 - 4ac\),然后根据判别式的值分别计算两个实根或一个实根和一个虚根。

如果你需要使用其他编程语言,基本的求根公式和步骤是相似的。以下是一个使用 C 语言的示例代码:

```c

include

include

void solve_quadratic(double a, double b, double c, double *root1, double *root2) {

double discriminant = b * b - 4 * a * c;

if (discriminant > 0) {

*root1 = (-b + sqrt(discriminant)) / (2 * a);

*root2 = (-b - sqrt(discriminant)) / (2 * a);

} else if (discriminant == 0) {

*root1 = *root2 = -b / (2 * a);

} else {

*root1 = (-b + sqrt(-discriminant)) / (2 * a);

*root2 = (-b - sqrt(-discriminant)) / (2 * a);

}

}

int main() {

double a, b, c;

printf("请输入一元二次方程的系数a, b, c: ");

scanf("%lf %lf %lf", &a, &b, &c);

double root1, root2;

solve_quadratic(a, b, c, &root1, &root2);

printf("方程的根为: root1 = %.2lf, root2 = %.2lf\n", root1, root2);

return 0;

}

```

在这个 C 语言示例中,我们定义了一个名为 `solve_quadratic` 的函数,它接受四个参数:系数 \(a\)、\(b\)、\(c\) 和两个指向根的指针。函数根据判别式的值计算并返回两个根。在 `main` 函数中,我们从用户那里获取系数,并调用 `solve_quadratic` 函数来求解方程的根,然后打印结果。