科學(xué)計算應(yīng)該要安裝numpy,你可以去下Anaconda,全套自動打包好了的。
創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營銷推廣、網(wǎng)站重做改版、若羌網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)、成都商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為若羌等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
把代碼改了一下:
#?-*-?coding:?utf-8?-*-
import?math
import?sys
import?time
import?numpy?as?np
def?area():
x1=1????????????#起始區(qū)間
x2=4.5????????????#結(jié)束區(qū)間
dx=0.0001????????#步長,步長越小越精確
y1=0
y2=0
y3=0????????????#結(jié)果
for?x?in?np.arange(x1,?x2,?dx):
y1=y1+dx*x*x????????????#細(xì)小矩形取左邊為高
y2=y2+?dx*(x+0.5*dx)*(x+0.5*dx)?????????????#取中間
y3=y3+dx*(x+dx)*(x+dx)
print?(y1,?y2,?y3)
start?=?time.clock()????????
area()
end?=?time.clock()
print?(end-start)
你好,目前python有一個sympy的包。他提供一個積分計算的函數(shù):
integrate(函數(shù),(變量,下限, 上限))
所以你上面的那個積分計算可以如下:
from sympy import *
x = symbols('x')
print(integrate(abs(x-a), (x, b1, b2)))
用蒙特卡洛方法計算定積分
計算定積分
利用蒙特卡洛計算方法,核心步驟是求取隨機(jī)的 g(X1),………,g(Xn),n∈[a,b],由數(shù)學(xué)期望和大數(shù)定理可以近似計算定積分,公式為
原函數(shù):
導(dǎo)函數(shù):
計算導(dǎo)函數(shù)在[10,15]上的定積分;
Python
用蒙特卡洛方法計算的定積分:
直接用原函數(shù)計算的定積分:
偏差程度為: