• C语言复习---矩形法求定积分函数


    一:分析:

    大一学习积分的时候,我们学习过,可以通过矩形法来求定积分。
    思路就是将积分区间划分成n等份,然后将这n等份近似看成矩形(或梯形),然后对所有的矩形(或梯形)的面积进行求和。

    二:简单的例子

    求函数X^2在的定积分

    矩形法:

    #include<iostream>
    #include<math.h>
    using namespace std;
    int main(){
        float fun(float x);
        float a, b;
        cout << "请输入函数X^2的定积分的下限a和上限b:";
        cin >> a >> b;
        int n = 50;//将区间划分成50份 
        float h = (b - a) / n;//h是每个区间分大小 
        float s = 0;//s是矩形的面积的和
        float i = 0;
        for (i = a; i < b; i += h){
            s = s + fun(i)*h;
        }
        cout << "
    结果是:" << s << endl;
        cout << endl;
    }
    float fun(float x){ return pow(x, 2); }

    三:使用C语言实现下面三个函数的定积分求解

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    
    //使用矩形法来求定积分的通用函数
    //p是函数指针,a是下界,b是上界,n是等分数
    float integral(float(*p)(float), float a, float b, int n)
    {
        int i;
        float area=0;
        float ew = (b - a) / n;
    
        for (i = 1; i <= n;i++)
            area += (*p)(a + i*ew)*ew;
    
        return area;
    }
    
    float f_sin(float x)
    {
        return sin(x);
    }
    
    float f_cos(float x)
    {
        return cos(x);
    }
    
    float f_exp(float x)
    {
        return exp(x);
    }
    
    int main()
    {
        float a, b,area;
        float(*p)(float);
        int n = 20;
    
        printf("test sin,input a,b:");
        scanf("%f,%f", &a, &b);
        p = f_sin;
        area = integral(p, a, b, n);
        printf("get value:%f
    ", area);
    
        printf("test cos,input a,b:");
        scanf("%f,%f", &a, &b);
        p = f_cos;
        area = integral(p, a, b, n);
        printf("get value:%f
    ", area);
    
        printf("test exp,input a,b:");
        scanf("%f,%f", &a, &b);
        p = f_exp;
        area = integral(p, a, b, n);
        printf("get value:%f
    ", area);
    
        system("pause");
        return 0;
    }


  • 相关阅读:
    mybatis批量更新策略
    tk.mybatis扩展通用接口
    IDEA入门——jdbc连接和工具类的使用
    tensorflow——3
    再战tensorflow
    tensorflow初学
    Anaconda和TensorFlow安装遇到的坑记录
    《企业应用架构模式》——阅读笔记3
    机器学习十讲——第十讲
    机器学习十讲——第九讲
  • 原文地址:https://www.cnblogs.com/ssyfj/p/9562727.html
Copyright © 2020-2023  润新知