濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Python 實(shí)現(xiàn)定積分與二重定積分的操作

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

熱門(mén)標(biāo)簽:地圖標(biāo)注線上如何操作 開(kāi)封自動(dòng)外呼系統(tǒng)怎么收費(fèi) 電銷(xiāo)機(jī)器人的風(fēng)險(xiǎn) 400電話辦理哪種 天津電話機(jī)器人公司 手機(jī)網(wǎng)頁(yè)嵌入地圖標(biāo)注位置 開(kāi)封語(yǔ)音外呼系統(tǒng)代理商 應(yīng)電話機(jī)器人打電話違法嗎 河北防封卡電銷(xiāo)卡

1.概述

最近項(xiàng)目需要使用程序?qū)崿F(xiàn)數(shù)學(xué)微積分,最初想用java實(shí)現(xiàn),后來(lái)發(fā)現(xiàn)可用文檔太少,實(shí)現(xiàn)比較麻煩,后來(lái)嘗試使用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 注意問(wèn)題

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)而又將問(wè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)知道答案為 ,那么如何用采樣的方法來(lái)得到這個(gè)值呢?

,0x10,那么 。

下面是代碼:

'''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ì)算起來(lái)顯然就更加方便了(特別是忘記積分怎么算的同學(xué))。

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

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

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

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

您可能感興趣的文章:
  • python、Matlab求定積分的實(shí)現(xiàn)
  • python 求定積分和不定積分示例
  • python編程通過(guò)蒙特卡洛法計(jì)算定積分詳解

標(biāo)簽:宿遷 江蘇 駐馬店 成都 山東 蘭州 六盤(pán)水 常州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python 實(shí)現(xiàn)定積分與二重定積分的操作》,本文關(guān)鍵詞  Python,實(shí)現(xiàn),定,積分,與,二,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python 實(shí)現(xiàn)定積分與二重定積分的操作》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Python 實(shí)現(xiàn)定積分與二重定積分的操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    延吉市| 徐水县| 新民市| 罗定市| 茶陵县| 衡东县| 丹阳市| 苏尼特左旗| 舟山市| 诏安县| 凉城县| 保定市| 祁阳县| 青神县| 临安市| 甘泉县| 泰宁县| 南华县| 白沙| 陈巴尔虎旗| 简阳市| 赞皇县| 合肥市| 邵阳县| 芒康县| 固原市| 育儿| 五常市| 凉城县| 卓资县| 凤城市| 长岛县| 依兰县| 台安县| 湟中县| 河北区| 宜宾县| 溧阳市| 封开县| 广宗县| 廉江市|