首页/文章/ 详情

计算机模拟定积分的定义

1月前浏览397

黎曼(Riemann)对定积分的定义是:积分区间划分为无数子区间,子区间内任意一点的函数值乘以子区间的长度得到一个矩形面积,然后将这些矩形面积累加起来可以得到积分值。

计算π的值

定积分的精确定义

对于定积分    ,在[0,1]内随机取一个数r,通过    转换成矩形的高。再乘以矩形的宽度1,就是一个矩形的面积。

经过多达1000000000次的重复计算,并把这些面积相加,再除以重复计算的次数,得到的值应该是一个接近PI的实数。且计算的次数越多,误差就越小。以下是C++代码

    #include <iostream>#include <iomanip>#include <random>#include <cmath>const size_t n{ 1000000000 };int main(){    std::random_device rd;    std::default_random_engine rng{ rd() };    std::uniform_real_distribution< > values{ 0.0, 1.0 };    //生成随机数种子    double sum{};    for (auto counter{ 1 }; counter <= n; ++counter)    {        sum += (4 / (1 + pow(values(rng), 2)) );    }    std::cout << "the value of PI is:" << std::fixed << std::setprecision(8) << sum / n << std::endl;    system(" pause ");    return 0;                                                                                }

    运行结果为

    对于uniform_real_distribution是半开范围[  )。也是就是说上面的例子中,能产生0.0,但不会产生1.0。

    ★★★★往期相关★★★★

    数值积分|中点法则(Midpoint Rule)

    数值积分|龙贝格公式

    数值积分|自适应辛普森积分公式

    数值积分|自适应梯形积分

    数值积分|牛顿-柯特斯公式

    数值积分|高斯积分

    数值积分|泰勒(Taylor)公式求积分

    数值积分| 辛普森公式

    Python实现辛普森公式

    来源:数值分析与有限元编程
    SystempythonUM
    著作权归作者所有,欢迎分享,未经许可,不得转载
    首次发布时间:2024-04-02
    最近编辑:1月前
    太白金星
    本科 慢慢来
    获赞 2粉丝 4文章 290课程 0
    点赞
    收藏

    作者推荐

    未登录
    还没有评论

    课程
    培训
    服务
    行家

    VIP会员 学习 福利任务 兑换礼品
    下载APP
    联系我们
    帮助与反馈