怎么用C語(yǔ)言二分法求方程的根

小億
206
2024-02-20 15:47:18

二分法是一種常用的數(shù)值計(jì)算方法,可以用來(lái)求解方程的根。下面是一個(gè)用C語(yǔ)言實(shí)現(xiàn)二分法求方程根的示例代碼:

#include <stdio.h>
#include <math.h>

// 定義方程的函數(shù)
double f(double x) {
    return x*x - 2;
}

// 二分法求解方程的根
double bisection(double a, double b, double epsilon) {
    double c;
    
    while ((b - a) > epsilon) {
        c = (a + b) / 2;
        
        if (f(c) == 0) {
            return c;
        } else if (f(c)*f(a) < 0) {
            b = c;
        } else {
            a = c;
        }
    }
    
    return (a + b) / 2;
}

int main() {
    double a = 1.0;
    double b = 2.0;
    double epsilon = 0.0001;
    double root;
    
    root = bisection(a, b, epsilon);
    
    printf("The root of the equation is: %f\n", root);
    
    return 0;
}

在上面的代碼中,f函數(shù)定義了需要求解根的方程,bisection函數(shù)實(shí)現(xiàn)了二分法求根的算法。在main函數(shù)中,我們定義了方程的初始區(qū)間ab,以及精度epsilon,然后調(diào)用bisection函數(shù)求解方程的根,并輸出結(jié)果。

你可以根據(jù)需要修改方程的定義和初始區(qū)間,運(yùn)行代碼來(lái)求解不同方程的根。

0