在C語言中,可以使用牛頓迭代法(Newton’s Iteration)來求實數根。牛頓迭代法是一種求解非線性方程零點的迭代算法,對于求解實數根非常有效。以下是一個使用牛頓迭代法求解實數根的C語言程序示例:
#include <stdio.h>
#include <math.h>
// 定義函數f(x),這里以f(x) = x^2 - a為例
double f(double x, double a) {
return pow(x, 2) - a;
}
// 定義函數f'(x),即f(x)的導數
double df(double x, double a) {
return 2 * x;
}
// 牛頓迭代法求解實數根
double newton_iteration(double x0, double a, double epsilon) {
double x = x0;
while (fabs(f(x, a)) > epsilon) {
x = x - f(x, a) / df(x, a);
}
return x;
}
int main() {
double a = 2.0; // 方程系數
double epsilon = 1e-6; // 誤差閾值
double x0 = 1.0; // 初始值
double root = newton_iteration(x0, a, epsilon);
printf("實數根為:%.6lf\n", root);
return 0;
}
在這個示例中,我們定義了一個二次方程f(x) = x^2 - a,并使用牛頓迭代法求解其實數根。newton_iteration函數接受三個參數:初始值x0、方程系數a和誤差閾值epsilon。當迭代結果與真實根的差值小于epsilon時,迭代結束,返回迭代結果作為實數根。
注意:這個示例僅適用于求解二次方程的實數根。對于其他類型的非線性方程,需要相應地修改函數f(x)和df(x)。