一、一元n次方程的解
import numpy as np
result = np.roots(a)
a是方程的系数向量
a
=
[
a
n
,
a
n
−
1
,
.
.
.
,
a
1
,
a
0
]
a=[a_{n},a_{n-1},...,a_{1},a_{0}]
a=[an,an−1,...,a1,a0]
代表求解方程
a
n
x
n
+
a
n
−
1
x
n
−
1
+
.
.
.
+
a
1
x
+
a
0
=
0
a_{n}x^{n}+a_{n-1}x^{n-1}+...+a_{1}x+a_{0}=0
anxn+an−1xn−1+...+a1x+a0=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:数组形式,结果会给出自变量取该数组每个元素的值时的数值解