如何解决你如何在 numpy 中创建未知的代数变量?
我试图在 numpy 中创建一个未知变量,以便在不使用内置函数的情况下计算特征值。我想创建一个看起来像这样的矩阵
-x 1
-2 -3-x
但是将 x
输入矩阵,它不会识别 x
是什么,我不知道如何正确定义它。到目前为止,这是我的代码,它说 x 未定义。
x=x
A = np.array([[0,1-x],[-2,-3-x]])
B = np.array([[0,1],-3]])
print(B)
如何定义变量 x
以便将其用作代数函数?
解决方法
Numpy 不处理符号数学,但 sympy 处理。
import numpy as np
import sympy as sym
x = sym.symbols('x')
a = sym.Matrix([[0,1-x],[-2,-3-x]])
b = sym.Matrix([[0,1],-3]])
print(a.eigenvals(multiple=True))
print(b.eigenvals(multiple=True))
# If everything is numerical,you can convert it to a numpy array
b_num = np.array(b).astype(np.float64)
# According to the documentation they aren't necessarily in order
print(np.linalg.eigvals(b_num))
输出
[-x/2 - sqrt(x**2 + 14*x + 1)/2 - 3/2,-x/2 + sqrt(x**2 + 14*x + 1)/2 - 3/2]
[-2,-1]
[-1. -2.]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。