求根公式用于解一元二次方程,其一般形式为 \(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` 函数来求解方程的根,然后打印结果。