方程的Python數值解法

2021-10-06 04:14:29 字數 1352 閱讀 8179

import numpy as np

result = np.roots(a)

a是方程的係數向量

a =[

an,a

n−1,

...,

a1,a

0]

a=[a_,a_,...,a_,a_]

a=[an​

,an−

1​,.

..,a

1​,a

0​]代表求解方程

a nx

n+an

−1xn

−1+.

..+a

1x+a

0=

0a_x^+a_x^+...+a_x+a_=0

an​xn+

an−1

​xn−

1+..

.+a1

​x+a

0​=0

1、有唯一解:

from numpy.linalg import solve

result = solve(a, b)

求解線性方程組 ax = b

2、無唯一解:

from numpy.linalg import lstsq

result = lstsq(a, b)

求解線性方程組 ax = b 的最小二乘解

from scipy.optimize import fsolve

result = fsolve(func, x0, xtol=

1.49012e-08

)

func:函式,求解方程 func = 0,若求解方程組,可以在定義func的時候輸出多個值

x0:初始的解,即從該點開始尋找方程(組)的解

xtol:如果兩次連續迭代之間的相對誤差不大於「xtol」,則計算將終止

from scipy.integrate import solve_ivp

result = solve_ivp(fun, t_span, y0, method=

'rk45'

, t_eval=

none

)

fun:函式表示式,作用形式是dy/dt=fun(t,y)

t_span:元組形式,求解的自變數上下限

y0:陣列形式,自變數取t_span中的初始值時的函式值

method:求解方法,可選擇』rk45』、『rk23』、『dop853』、『radau』、『bdf』、『lsoda』

t_eval:陣列形式,結果會給出自變數取該陣列每個元素的值時的數值解

常微分方程數值解法 python實現

研究生課程 應用數值分析 結課了,使用python簡單記錄了下常微分方程數值解法。y y i h i f x i,y i y 0 y a end right y x y 1 0 leq x leq 1 y 0 1 end right yi format xi,yi xi,yi xi h,y retu...

非線性方程的數值解法

許多問題都可以歸結為求解一元函式方程 0.若?為?次多項式,則稱其為?次多項式方程或代數方程 若?為超越函式,則稱其為超越方程 求解一元函式方程 0 可大致分為三個步驟 1.二分法 原理 若 f 在 a,b 上連續,且 f a f b 0,則 f 在 a,b 上至少有一實根。基本思想 逐步二分區間 ...

線性方程組的數值解法

1.向量與矩陣的範數 norms of vectors and matrices 為了研究線性方程組數值解法的誤差估計和迭代法的收斂 性,有必要引進向量範數和矩陣範數的概念。歐式範數 設?1,2,1,2,稱 累加1 n 的?為向量?與?的內積,稱非負實數 2 根號 累加1 n的 2的1 2次方為向量...