c语言实现定积分运算

⌚Time: 2022-07-09 14:50:00

👨‍💻Author: Jack Ge

原理:梯形法求积分

https://wuli.wiki/online/NumInt.html

c语言实现:


#include <stdio.h>

//定积分运算函数:integral

//参数1:被积函数 参数2:积分下限 参数3:积分上限 参数4:运算精度(数值越大精度越高)

//返回值:积分运算结果

float integral(float (*f)(float),float a,float b,int precision=1000){

    float h = (b-a)/precision;

    float result = 0;

    for(float i = 0;i<b-a;i+=h){

        result += (f(a+i)+f(a+i+h))/2;

    }

    return result*h;

}

//x^2+3x-29

float fun_1(float x){

    return x*x+3*x-29;

}

int main(){



    printf("函数x^2+3x-29在区间[2,44]的定积分是:%f\n",integral(fun_1,2.0f,44.0f,1000));

    return 0;

}