【问题标题】:How do you create unknown algebra variables in numpy?你如何在 numpy 中创建未知的代数变量?
【发布时间】:2021-05-09 13:46:42
【问题描述】:

我正在尝试在 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 以便将其用作代数函数?

【问题讨论】:

标签: python numpy linear-algebra symbolic-math


【解决方案1】:

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.]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 2019-04-27
    • 2018-02-20
    • 2015-09-03
    相关资源
    最近更新 更多