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