小智 65
是的,非常受欢迎的NumPy软件包具有执行此操作的功能.他们的例子:
解决方程组
3 * x0 + x1 = 9和x0 + 2 * x1 = 8:Run Code Online (Sandbox Code Playgroud)>>> import numpy as np >>> a = np.array([[3,1], [1,2]]) >>> b = np.array([9,8]) >>> x = np.linalg.solve(a, b) >>> x array([ 2., 3.])https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.linalg.solve.html
您可以在python中使用最小二乘法来求解方程组,例如求解方程3x + 4y = 7和5x + 6y = 8
>>> import numpy
>>> a=[[3,4],[5,6]]
>>> b=[7,8]
>>> numpy.linalg.lstsq(a,b)
(array([-5. , 5.5]), array([], dtype=float64), 2, array([ 9.27110906, 0.21572392]))
Run Code Online (Sandbox Code Playgroud)
使用@Jeremy 的例子:
from sympy import *
x0, x1 = symbols(['x0', 'x1'])
sol = solve([3 * x0 + x1 - 9, x0 + 2 * x1 - 8], [x0, x1])
print(sol)
Run Code Online (Sandbox Code Playgroud)
输出:
{x0: 2, x1: 3}
使用@004 示例,符号略有不同:
from sympy import *
x, y = symbols(['x', 'y'])
system = [
Eq(3*x + 4*y, 7),
Eq(5*x + 6*y, 8)
]
soln = solve(system, [x, y])
print(soln)
Run Code Online (Sandbox Code Playgroud)
{x:-5,y:11/2}
注意:有时您可能会看到以下符号表示法:x, y = symbols('x, y'),这似乎不太像 Python。