91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python如何實現定積分與二重定積分的操作

發布時間:2021-05-27 10:19:42 來源:億速云 閱讀:460 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關Python如何實現定積分與二重定積分的操作的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

1.概述

最近項目需要使用程序實現數學微積分,最初想用java實現,后來發現可用文檔太少,實現比較麻煩,后來嘗試使用python實現,代碼量較少,主要有sympy與scipy兩種實現方式,本文主要記錄scipy的實現方式。

2.內容

2.1 所求函數

Python如何實現定積分與二重定積分的操作

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) 的數學期望 Python如何實現定積分與二重定積分的操作

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

Python如何實現定積分與二重定積分的操作

其實這個的理解就是要求一個擁有概率密度的函數期望值

期望=積分(每個點的密度函數*每個點的價值函數)

例子 2:

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

Python如何實現定積分與二重定積分的操作

我們將 h(x) 分解成一個函數 f(x) 和一個概率密度函數 p(x) 的乘積,進而又將問題轉換為求解函數 f(x) 關于密度函數 p(x) 的數學期望 Python如何實現定積分與二重定積分的操作

Python如何實現定積分與二重定積分的操作

這里的Ep(x)是相當于把整個分布當時了概率分布,即總發生概率為1.

這里,f(x) 表示為 Python如何實現定積分與二重定積分的操作,則有:

Python如何實現定積分與二重定積分的操作

更一般的,假設我們想要求解 Python如何實現定積分與二重定積分的操作,熟悉積分的同學肯定已經知道答案為 Python如何實現定積分與二重定積分的操作,那么如何用采樣的方法來得到這個值呢?

Python如何實現定積分與二重定積分的操作,0<x<10,那么 Python如何實現定積分與二重定積分的操作

下面是代碼:

'''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),它也是蒙特卡洛法中的一種類型適用于不能直接抽樣的情況。

感謝各位的閱讀!關于“Python如何實現定積分與二重定積分的操作”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

诏安县| 蓬溪县| 屏东市| 盐源县| 浦县| 阳东县| 青神县| 镇安县| 广灵县| 枣强县| 朝阳县| 阿图什市| 沙河市| 察雅县| 全椒县| 漯河市| 广宗县| 崇州市| 林口县| 青龙| 龙井市| 郧西县| 巴里| 通渭县| 长兴县| 梅河口市| 浪卡子县| 印江| 丰台区| 久治县| 高阳县| 潜江市| 卓尼县| 吉隆县| 宣威市| 扎兰屯市| 瑞昌市| 容城县| 靖宇县| 长治县| 专栏|