c语言求根公式的代码
时间: 2024-09-24 11:02:50 浏览: 52
在C语言中,牛顿迭代法是一种常见的用于求解非线性方程的数值方法,可以用来近似求解根公式。下面是一个简单的例子,使用双精度浮点数(double)和牛顿迭代法计算平方根:
```c
#include <stdio.h>
#include <math.h> // 需要包含这个头文件才能使用double类型的sqrt函数
// 自定义牛顿法求根函数
double newton_raphson(double f(double), double df(double), double x0, double epsilon) {
double x = x0;
while (fabs(f(x)) > epsilon) { // 判断是否达到精度要求
x -= f(x) / df(x); // 更新x值
}
return x;
}
double square_root(double num) {
return newton_raphson(num, sqrt, num / 2.0, 1e-9); // 使用初始猜测值num / 2
}
int main() {
double number;
printf("请输入一个正数: ");
scanf("%lf", &number);
if (number >= 0) {
printf("该数的平方根为: %.6f\n", square_root(number));
} else {
printf("负数没有实数平方根.\n");
}
return 0;
}
```
在这个代码中,`f(x)`代表目标函数(这里是`x * x - num`),`df(x)`代表它的导数(`2 * x`)。用户输入一个正数后,程序会调用`square_root`函数来计算其平方根。
阅读全文