📜  Python| sympy.core() 方法(1)

📅  最后修改于: 2023-12-03 15:34:17.146000             🧑  作者: Mango

Python | sympy.core() 方法

简介

sympy.core() 方法是 SymPy 模块中一个非常强大的函数,能够用于处理代数表达式,并且提供了类似于 MATLAB 或者 Mathematica 的能力。通过使用 sympy.core() 方法,程序员可以轻松地实现符号矩阵计算、方程组解析、和微积分方程求解等复杂的数学任务。

安装

安装 SymPy 模块,可以使用 pip 工具:

pip install sympy
使用

要使用 sympy.core() 方法,需要先导入 SymPy模块:

import sympy
符号变量定义

通常情况下,我们需要定义一些符号变量,以便使用 SymPy 模块对其进行操作。符号变量可以通过 sympy.Symbol() 方法来定义。

from sympy import Symbol

x = Symbol('x')
y = Symbol('y')
z = Symbol('z')
矩阵计算

使用 sympy.Matrix() 方法,我们可以创建符号矩阵,并在矩阵中使用符号变量进行运算。

from sympy import Matrix

A = Matrix([[x,y],[z,x+y]])

print(A.det(), '\n')

print(A.inv(), '\n')

print(A.eigenvals(), '\n')

运行结果如下所示:

x*y - x*(x + y) + y*z 

Matrix([
[(y/(x**2*y + x*y**2 - x*(x + y) + y*z), -y/(x**2*y + x*y**2 - x*(x + y) + y*z))],
[-(x + y - z)/(x**2*y + x*y**2 - x*(x + y) + y*z), x/(x**2*y + x*y**2 - x*(x + y) + y*z)]]) 

{x/2 + y/2 - sqrt(x**2 - 2*x*y + 5*x*z - y**2 + 2*y*z + z**2)/2: 1, x/2 + y/2 + sqrt(x**2 - 2*x*y + 5*x*z - y**2 + 2*y*z + z**2)/2: 1}
方程组求解

Sympy 的方程组求解能力非常强大,其中 solve() 函数可以用于解决一组方程和多个未知数的问题。

from sympy import solve, Eq

x = Symbol('x')
y = Symbol('y')
z = Symbol('z')

eq1 = Eq(3*x + 5*y + z, 30)
eq2 = Eq(2*x - 3*y + z, 10)
eq3 = Eq(-x + y + 2*z, 0)

sol = solve((eq1, eq2, eq3), (x, y, z))

print(sol)

运行结果:

{x: 7, y: 8, z: 3}
微积分方程求解

Sympy 可以用 SymPy 模块解决微积分问题,包括积分、微分、级数、常微分方程等问题。

from sympy import Function, dsolve, Derivative

y = Function('y')(x)

eq = Derivative(y, x) - y**2 - x**2 - 2*x

sol = dsolve(eq, y)

print(sol)

输出结果如下:

Eq(y(x), (C1 + x + sqrt(C1**2 - 4*C1*x - 4*C1))/(2*exp(x)))
总结

通过使用 sympy.core() 方法,程序员可以轻松地实现符号矩阵计算、方程组解析、和微积分方程求解等复杂的数学任务。Sympy 是一个强大的库,涵盖了许多数学计算的方面。它利用 Python 作为底层,易于学习和使用,并且可以与其他 Python 库无缝集成。