Python 实现定积分与二重定积分的操作

 更新时间:2021年05月26日 09:57:08   作者:qq_33203870  
这篇文章主要介绍了Python 实现定积分与二重定积分的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

1.概述

最近项目需要使用程序实现数学微积分,最初想用java实现,后来发现可用文档太少,实现比较麻烦,后来尝试使用python实现,代码量较少,主要有sympy与scipy两种实现方式,本文主要记录scipy的实现方式。

2.内容

2.1 所求函数

在这里插入图片描述

2.2 python代码

# 引入需要的包
import scipy.integrate
from numpy import exp
from math import sqrt
import math

# 创建表达式
f = lambda x,y : exp(x**2-y**2)

# 计算二重积分:(p:积分值,err:误差)
# 这里注意积分区间的顺序
# 第二重积分的区间参数要以函数的形式传入
p,err= scipy.integrate.dblquad(f, 0, 2, lambda g : 0, lambda h : 1)	
print(p)

2.3 注意问题

1. exp尽量使用numpy的exp

2. 注意积分区间参数的顺序

3. 第二重积分的区间参数要以函数的形式传入

补充:python实现求解积分

例子 1:

假设有随机变量 x,定义域 X,其概率密度函数为 p(x),f(x) 为定义在 X 上的函数,目标是求函数 f(x) 关于密度函数 p(x) 的数学期望

蒙特卡洛法根据概率分布 p(x) 独立地抽样 n 个样本 x1,x2,…..xn,得到近似的 f(x) 期望为:

其实这个的理解就是要求一个拥有概率密度的函数期望值

期望=积分(每个点的密度函数*每个点的价值函数)

例子 2:

假设我们想要求解 h(x) 在 X 上的积分:

我们将 h(x) 分解成一个函数 f(x) 和一个概率密度函数 p(x) 的乘积,进而又将问题转换为求解函数 f(x) 关于密度函数 p(x) 的数学期望

这里的Ep(x)是相当于把整个分布当时了概率分布,即总发生概率为1.

这里,f(x) 表示为 ,则有:

更一般的,假设我们想要求解 ,熟悉积分的同学肯定已经知道答案为 ,那么如何用采样的方法来得到这个值呢?

,0<x<10,那么

下面是代码:

'''import random
num=1000000
sum=0
for i in range(0,num):
    x=random.uniform(0,10)
    sum+=x*x*10
sum/=1000000
print(sum)'''
import random
numSamples=10000
samples=[random.uniform(0,10)for _ in range(numSamples)]
f_samples=[10*sample**2 for sample in samples]
result=1/10000.0*sum(f_samples)
print(result)

result=333.10527012455066

random.uniform(x,y)表示在[x,y)之间生成一个 实数

对于复杂的 h(x),这种方法计算起来显然就更加方便了(特别是忘记积分怎么算的同学)。

蒙特卡洛方法其实就是利用大数定理通过大量统计来算出最后的值。

到这里为止,我们简单的介绍了蒙特卡洛方法,但是依旧没有提到要怎么利用复杂的概率密度函数进行采样。

接下来我们来看一下接受-拒绝法(accept-reject sampling method),它也是蒙特卡洛法中的一种类型适用于不能直接抽样的情况。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持程序员之家。

相关文章

  • TensorFlow实现Softmax回归模型

    TensorFlow实现Softmax回归模型

    这篇文章主要介绍了TensorFlow实现Softmax回归模型,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • 10款最好的Python开发编辑器

    10款最好的Python开发编辑器

    这篇文章主要介绍了10款最好的Python开发编辑器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • python隐藏终端执行cmd命令的方法

    python隐藏终端执行cmd命令的方法

    今天小编就为大家分享一篇python隐藏终端执行cmd命令的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python入门之后再看点什么好?

    Python入门之后再看点什么好?

    看完了基础书,甚至看两遍了,但自己写的时候还是没思路,我该怎么办?这篇文章主要介绍了Python入门之后再看点什么好,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Matplotlib实战之堆叠面积图绘制详解

    Matplotlib实战之堆叠面积图绘制详解

    堆叠面积图和面积图都是用于展示数据随时间变化趋势的统计图表,但它们的特点有所不同,堆叠面积图既能看到各数据系列的走势,又能看到整体的规模,下面我们就来看看如何绘制堆叠面积图吧
    2023-08-08
  • 利用python?pywifi实现破解WiFi密码

    利用python?pywifi实现破解WiFi密码

    家里没有怎么办,只要你会Python,办法总比困难多,本文就利用pywifi?这个库实验一下如何破解Wi-Fi?密码,注意,该方法仅可用来研究学习所用,需要的朋友可以参考下
    2024-03-03
  • python被修饰的函数消失问题解决(基于wraps函数)

    python被修饰的函数消失问题解决(基于wraps函数)

    这篇文章主要介绍了python被修饰的函数消失问题解决(基于wraps函数),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • 基于python实现把json数据转换成Excel表格

    基于python实现把json数据转换成Excel表格

    这篇文章主要介绍了基于python实现把json数据转换成Excel表格,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Python利用subplots_adjust方法解决图表与画布的间距问题

    Python利用subplots_adjust方法解决图表与画布的间距问题

    这篇文章主要介绍了如何在使用python?的?matplotlib库绘图时,?使用subplots_adjust()方法来调整图表与画布之间的间距,以及图表与图表之间的间距,感兴趣的可以了解一下
    2022-04-04
  • Python实现PS图像明亮度调整效果示例

    Python实现PS图像明亮度调整效果示例

    这篇文章主要介绍了Python实现PS图像明亮度调整效果,结合实例形式分析了Python基于skimage模块调整图片明亮度的原理与具体操作技巧,需要的朋友可以参考下
    2018-01-01

最新评论

?


http://www.vxiaotou.com