欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python 實(shí)現(xiàn)定積分與二重定積分的操作

 更新時(shí)間:2021年05月26日 09:57:08   作者:qq_33203870  
這篇文章主要介紹了Python 實(shí)現(xiàn)定積分與二重定積分的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

1.概述

最近項(xiàng)目需要使用程序?qū)崿F(xiàn)數(shù)學(xué)微積分,最初想用java實(shí)現(xiàn),后來發(fā)現(xiàn)可用文檔太少,實(shí)現(xiàn)比較麻煩,后來嘗試使用python實(shí)現(xiàn),代碼量較少,主要有sympy與scipy兩種實(shí)現(xiàn)方式,本文主要記錄scipy的實(shí)現(xiàn)方式。

2.內(nèi)容

2.1 所求函數(shù)

在這里插入圖片描述

2.2 python代碼

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

# 創(chuàng)建表達(dá)式
f = lambda x,y : exp(x**2-y**2)

# 計(jì)算二重積分:(p:積分值,err:誤差)
# 這里注意積分區(qū)間的順序
# 第二重積分的區(qū)間參數(shù)要以函數(shù)的形式傳入
p,err= scipy.integrate.dblquad(f, 0, 2, lambda g : 0, lambda h : 1)	
print(p)

2.3 注意問題

1. exp盡量使用numpy的exp

2. 注意積分區(qū)間參數(shù)的順序

3. 第二重積分的區(qū)間參數(shù)要以函數(shù)的形式傳入

補(bǔ)充:python實(shí)現(xiàn)求解積分

例子 1:

假設(shè)有隨機(jī)變量 x,定義域 X,其概率密度函數(shù)為 p(x),f(x) 為定義在 X 上的函數(shù),目標(biāo)是求函數(shù) f(x) 關(guān)于密度函數(shù) p(x) 的數(shù)學(xué)期望 。

蒙特卡洛法根據(jù)概率分布 p(x) 獨(dú)立地抽樣 n 個(gè)樣本 x1,x2,…..xn,得到近似的 f(x) 期望為:

其實(shí)這個(gè)的理解就是要求一個(gè)擁有概率密度的函數(shù)期望值

期望=積分(每個(gè)點(diǎn)的密度函數(shù)*每個(gè)點(diǎn)的價(jià)值函數(shù))

例子 2:

假設(shè)我們想要求解 h(x) 在 X 上的積分:

我們將 h(x) 分解成一個(gè)函數(shù) f(x) 和一個(gè)概率密度函數(shù) p(x) 的乘積,進(jìn)而又將問題轉(zhuǎn)換為求解函數(shù) f(x) 關(guān)于密度函數(shù) p(x) 的數(shù)學(xué)期望

這里的Ep(x)是相當(dāng)于把整個(gè)分布當(dāng)時(shí)了概率分布,即總發(fā)生概率為1.

這里,f(x) 表示為 ,則有:

更一般的,假設(shè)我們想要求解 ,熟悉積分的同學(xué)肯定已經(jīng)知道答案為 ,那么如何用采樣的方法來得到這個(gè)值呢?

,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)之間生成一個(gè) 實(shí)數(shù)

對(duì)于復(fù)雜的 h(x),這種方法計(jì)算起來顯然就更加方便了(特別是忘記積分怎么算的同學(xué))。

蒙特卡洛方法其實(shí)就是利用大數(shù)定理通過大量統(tǒng)計(jì)來算出最后的值。

到這里為止,我們簡(jiǎn)單的介紹了蒙特卡洛方法,但是依舊沒有提到要怎么利用復(fù)雜的概率密度函數(shù)進(jìn)行采樣。

接下來我們來看一下接受-拒絕法(accept-reject sampling method),它也是蒙特卡洛法中的一種類型適用于不能直接抽樣的情況。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實(shí)現(xiàn)的旋轉(zhuǎn)數(shù)組功能算法示例

    Python實(shí)現(xiàn)的旋轉(zhuǎn)數(shù)組功能算法示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的旋轉(zhuǎn)數(shù)組功能算法,結(jié)合實(shí)例形式總結(jié)分析了數(shù)組旋轉(zhuǎn)算法的原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-02-02
  • python進(jìn)度條庫(kù)tqdm使用記錄(特點(diǎn)和用法)

    python進(jìn)度條庫(kù)tqdm使用記錄(特點(diǎn)和用法)

    tqdm是一個(gè)Python庫(kù),用于在命令行界面中創(chuàng)建美觀的進(jìn)度條,以跟蹤代碼中循環(huán)、迭代和任務(wù)的執(zhí)行進(jìn)度,本文給大家介紹python進(jìn)度條庫(kù)tqdm使用記錄,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • 由Python編寫的MySQL管理工具代碼實(shí)例

    由Python編寫的MySQL管理工具代碼實(shí)例

    這篇文章主要介紹了由Python編寫的MySQL管理工具,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 簡(jiǎn)單了解django處理跨域請(qǐng)求最佳解決方案

    簡(jiǎn)單了解django處理跨域請(qǐng)求最佳解決方案

    這篇文章主要介紹了簡(jiǎn)單了解django處理跨域請(qǐng)求最佳解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • python 如何使用find和find_all爬蟲、找文本的實(shí)現(xiàn)

    python 如何使用find和find_all爬蟲、找文本的實(shí)現(xiàn)

    這篇文章主要介紹了python 如何使用find和find_all,爬蟲、找文本,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • python中判斷文件結(jié)束符的具體方法

    python中判斷文件結(jié)束符的具體方法

    在本篇文章里小編給大家分享的是一篇關(guān)于python中判斷文件結(jié)束符的具體方法,有興趣的朋友們可以參考學(xué)習(xí)下。
    2020-08-08
  • python實(shí)現(xiàn)五子棋游戲(pygame版)

    python實(shí)現(xiàn)五子棋游戲(pygame版)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)五子棋游戲,pygame版五子棋,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • 3分鐘學(xué)會(huì)一個(gè)Python小技巧

    3分鐘學(xué)會(huì)一個(gè)Python小技巧

    Python時(shí)間日期轉(zhuǎn)換在開發(fā)中是非常高頻的一個(gè)操作,你經(jīng)常會(huì)遇到需要將字符串轉(zhuǎn)換成 datetime 或者是反過來將 datetime 轉(zhuǎn)換成字符串,今天小編給大家?guī)砹艘粋€(gè)Python小技巧,感興趣的朋友一起看看吧
    2018-11-11
  • Python中xml和dict格式轉(zhuǎn)換的示例代碼

    Python中xml和dict格式轉(zhuǎn)換的示例代碼

    最近在做APP的接口,遇到XML格式的請(qǐng)求數(shù)據(jù),費(fèi)了很大勁來解決,下面小編給大家分享下Python中xml和dict格式轉(zhuǎn)換問題,感興趣的朋友跟隨小編一起看看吧
    2019-11-11
  • Python移位密碼、仿射變換解密實(shí)例代碼

    Python移位密碼、仿射變換解密實(shí)例代碼

    凱撒密碼(Caesar 密碼)是最早的代換密碼,也是古典對(duì)稱密碼體制的典型代表,已經(jīng)初步體現(xiàn)出近代密碼系統(tǒng)的雛形,這篇文章主要給大家介紹了關(guān)于Python移位密碼、仿射變換解密的相關(guān)資料,需要的朋友可以參考下
    2021-06-06

最新評(píng)論