c 语言 二分法求方程近似解

c 语言 二分法求方程近似解,第1张

c 语言 二分法求方程近似解

#include 
#include 

#define EPSILON 1e-7

double bisection(int p, int q, double (*func)(int, int, double));
double f(int p, int q, double x);

int main() {
    int p;
    int q;
    scanf("%d%d", &p, &q);
    printf("%.4lfn", bisection(p, q, f));
    return 0;
}

double bisection(int p, int q, double (*func)(int, int, double)) {
        //a,b 是开始选定解的区间,区间越小,计算越少
        double a = -200.0;
        double b = 200.0;
        double m = (a + b)/ 2;
        while(fabs(func(p,q,m)) > EPSILON){
            if((func(p,q,m) * func(p,q,a) < 0)){
                b = m;
                m = (a + b)/2;
            }else{
                a = m;
                m = (a + b)/2;
            }
        }
        return m;
        
        
}

double f(int p, int q, double x) {
    return p * x + q;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5636162.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存