精細積分python實現

2021-10-01 10:41:03 字數 1720 閱讀 7051

計算dx(t)/dt=ax(t)的近似解,初值條件為x(t0)=x0

import numpy as np

n =20

# 步長h細分為2^n

defprecise_integration

(a, x0, h, t0, t1)

:"""

計算dx(t)/dt=ax(t)的近似解,初值條件為x(t0)=x0

:param a: 矩陣a

:param x0: 初值x0

:param h: 時間步長h

:param t0: 區間左端點t0

:param t1: 區間右端點t1

:return: 近似解x

"""n =

len(x0)

# 未知數個數

m =int(

(t1 - t0)

/ h)

i = np.eye(n=n)

x = np.mat(np.zeros(

(n, m +1)

))x[:,

0]= x0.reshape(3,

1)# 初值

dt =

float

(h)/

pow(

2, n)

# 精細化步長

at = a * dt

bigt = at *

(i + at *

(i + at /

3.0*

(i + at /

4.0))/

2.0)

for i in

range

(n):

bigt =

2* bigt + np.dot(bigt, bigt)

bigt += i

for i in

range

(m):

x[:, i +1]

= np.dot(bigt, x[

:, i]

)return x

defevaluate

(t):

""" 計算真實值

:param t:自變數t

:return:x(t)

"""return-1

/6.0

* np.array([-

1+3* np.exp(

2* t)-8

* np.exp(

3* t),-

5+3* np.exp(

2* t)-4

* np.exp(

3* t),-

2-4* np.exp(

3* t)])

if __name__ ==

"__main__"

:# 已知a,x0

a = np.mat([[

3,-1

,1],

[2,0

,-1]

,[1,

-1,2

]]) x0 = np.array([1

,1,1

])# 步長,區間端點

h =0.2 t0 =

0 t1 =

1

x = precise_integration(a, x0, h, t0, t1)

print

(x) x1 = evaluate(1)

print

(x1)

數值積分 Python實現

原理 利用復化梯形公式,復化simpson公式,計算積分。步驟 測試函式 deff x,i if i 1 return 4 math.sin x 2 0.5 if i 2 if x 0 return 1else return math.sin x x if i 3 return math.exp x...

python 解積分方程

引用 sympy求解極限 積分 微分 二元一次方程 解方程組 2 x y 3,3 x y 7 from sympy import x symbol x y symbol y print solve 2 x y 3,3 x y 7 x,y result is 求積分 n 3 n 2 n,limit n...

機器學習PAI實現精細化營銷

阿里雲大學課程 機器學習pai實現精細化營銷 課程介紹 精細化營銷是企業常用的的一類資料服務,本課程幫助學員了解企業進行精細化營銷過程中的資料處理,掌握客戶分群的基本應用方法,教會學員如何進行資料整體分析 模型構建以及後期的模型評估和生成評估報告,清楚大資料在企業營銷中的作用。本課程通過乙個簡單案例...