C言語を使用して方程式の根を求めるための2分法を使う方法は何ですか?

二分法は方程式の根を求めるためによく使われる数値計算法です。以下は、C言語を使用して二分法で方程式の根を求めるサンプルコードです。

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

// 定义方程的函数
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関数は解を求める必要がある方程式を定義し、bisection関数は二分法によるルートのアルゴリズムを実装しています。main関数では、方程式の初期区間aとb、および精度epsilonを定義し、bisection関数を呼び出して方程式の解を求め、結果を出力します。

必要に応じて、方程式の定義と初期範囲を変更し、コードを実行して異なる方程式の根を解くことができます。

bannerAds