matlab用辛普森公式求积分_标准正态分布概率密度函数的定积分计算方法及Python实现代码...

efb0bd91594f57ae838c7c96948802c3.png

最近利用碎片时间在读Allen B.Downey的《贝叶斯思维:统计建模的Python学习法》,顺便用手机上的Pythonista写实例。因为Pythonista没有scipy科学计算包,遇上需求标准正态累积分布函数的时候就只能抓瞎,为此决定自己写一个。累积分布函数(Cumulative Distribution Function,CDF)就是概率密度函数(Probability Density Function,PDF)的积分,利用原函数计算定积分的方法建立在牛顿-莱布尼兹公式之上

。然而,原函数可以用初等函数表示的函数为数不多,大部分的可积函数的积分无法用初等函数表示,甚至无法有解析表达式,比如在统计学上很重要的正态分布函数
就是这样一个无法用初等函数直接计算的函数。

在知乎上查找一遍这个积分的计算方法,没找到理想的答案。所以决定写下来和大家一起学习一下。分别用数值积分法的复化辛普森公式和无穷级数的泰勒级数法求解这个积分,包括部分理论、算法和Python代码。

定积分

在几何上可以解释为由
,
,
以及
这四条边所围成的曲边梯形面积。如图1所示。而这个面积之所以难于计算是因为它有一条曲边

ffa3db7dd34116d096fe4b901373a920.png
图1:定积分原理

一、数值积分是利用黎曼积分等数学定义,用数值逼近的方法近似计算给定的定积分值。

1. 矩形公式:就是常见的黎曼和,矩形的高由函数值来决定,可选择使用左矩形、右矩形或中矩形。

28a9bf5026113d2c21698aadfd08b850.png
图2

如图2所示,用矩形面积来拟合积分,公式为

。通常将积分区间
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
书,然后修改该图书的存馆数量。注意,在借阅时需要检查该图书的存馆数量是否大于0。 ```c void borrow_book() { char isbn[20]; printf("请输入要借阅的图书的以下是使用辛普森公式math.exp(-x**2)的积分以及计算估计误差的书号:"); scanf("%s", isbn); int i; for (i = 0; i < num_books; iPython代码: ```python import math # 定义被积函数 def f(x): return math.exp(-x**2) ++) { if (strcmp(isbn, books[i].isbn) == 0) { // 找到了要借阅的图# 定义辛普森公式 def simpson(a, b, n): h = (b - a) / n 书 if (books[i].quantity > 0) { books[i].quantity--; printf("借阅成功\n"); sum1 = 0 sum2 = 0 for i in range(1, n, 2): sum } else { printf("该图书已经全部借出\n"); } break; } } if1 += f(a + i * h) for i in range(2, n, 2): sum2 += f(a + (i == num_books) { printf("未找到该书号对应的图书\n"); } } void return_book i * h) return (b - a) / 3 / n * (f(a) + f(b) + 4 *() { char isbn[20]; printf("请输入要归还的图书的书号:"); scanf("%s", isbn sum1 + 2 * sum2) # 计算积分和估计误差 a = 0 b = 1); int i; for (i = 0; i < num_books; i++) { if (strcmp(isbn, books n = 100 integral = simpson(a, b, n) error = abs((1 / math.sqrt(math.pi) - integral[i].isbn) == 0) { // 找到了要归还的图书 books[i].quantity++; printf) / 1 / math.sqrt(math.pi)) # 输出结果 print('积分结果:', integral) print('估计误差("归还成功\n"); break; } } if (i == num_books) { printf("未找到该:', error) ``` 在上面的代码中,我们首先定义了被积函数f(x),然后定义了辛书号对应的图书\n"); } } ``` 以上是一个初步的设计,可以根据需要进行修改和普森公式simpson(a, b, n)。最后,我们使用定义好的函数计算积分和估计误差,并输出结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值