python - 你如何在 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],[-2,-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],[-2,-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.]
推荐阅读
- azure - Power BI desktop 无法使用 Azure 成本管理连接器导入数据
- javascript - 当对象具有 ID 时,React map 返回对象的 ID,如 undefined
- vb.net - Run PowerPoint with the exe macro file
- java - 是否可以在 kotlin 中为内部委托属性提供自定义名称?
- scikit-learn - Calculating f-statistic in sklearn
- javascript - Webpack hooks to dynamically alter SCSS imports
- ios - Facebook error “App not setup:still in development mode”
- java - JMeter - How to pass Multiline response data to the ForEach Controller request
- node.js - 无法使用 setTimeout 解决承诺
- python - 向 LSTM 添加嵌入层的输入形状错误