迭代法是一种基于递推公式的数值计算方法,通常用于求解方程的近似解。以下是一个用C语言实现的迭代法计算平方根的代码示例:

#include <stdio.h>

double sqrt_iter(double x, double guess, double tol) {
    double new_guess = (guess + x / guess) / 2.0;  // 根据递推公式计算新的近似解
    if (fabs(new_guess - guess) < tol) {  // 如果新的近似解与上一次的差距小于指定误差,则认为已经找到了近似解
        return new_guess;
    }
    return sqrt_iter(x, new_guess, tol);  // 继续迭代
}

double sqrt(double x, double tol) {
    return sqrt_iter(x, 1.0, tol);  // 从1开始迭代求解平方根
}

int main() {
    double x = 2.0;
    double tol = 1e-6;  // 指定误差
    double result = sqrt(x, tol);
    printf("sqrt(%f) = %f\n", x, result);
    return 0;
}

在这个例子中,我们定义了一个sqrt_iter函数来实现迭代过程,它接受三个参数:被开方数x、上一次的近似解guess和指定误差tol。根据平方根的递推公式,我们可以计算出新的近似解new_guess,然后判断它与上一次的差距是否小于指定误差,如果是则返回新的近似解,否则继续迭代。

为了方便使用,我们又定义了一个sqrt函数来调用sqrt_iter,并把迭代起点设为1。在main函数中,我们指定了被开方数和误差,并调用sqrt函数求解平方根,最后输出结果。

用C语言写一段迭代法代码

原文地址: https://www.cveoy.top/t/topic/LxF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录