我打算在 Python 中以 0.1 步长绘制 -3 ≤ μ ≤ 3 范围内的雅可比矩阵的特征值。
请参阅下面的代码:
import numpy as np
mu = np.arange(-3,3,0.1)
J =([[0, 1],
[-1, -mu]])
assign lambda
lambda = np.linalg.eigvals(J)
print(lambda)
然后出现:“SyntaxError:无效语法”,它指向“分配 lambda”行中的“lambda”。
那么我的绘图代码是
import matplotlib.pyplot as plt
plt.figure()
plt.plot(mu, lambda, 's')
plt.xlabel('mu')
plt.ylabel('Eigenvalue')
plt.show()
出现另一个“SyntaxError:无效语法”,指向本节中的“lambda”。
我也尝试摆脱“分配 lambda”行,但仍然不起作用。当我尝试定义函数或参数时,以前曾发生过这种错误。
有人可以看一下并帮助我吗?我对 Python 很陌生。
非常感谢!
最佳答案
您正在尝试矢量化mu
,这在您的代码中不是正确的方式。您可以简单地使用 for 循环
import numpy as np
import matplotlib.pyplot as plt
mu = np.arange(-3,3,0.1)
lambda_list = []
for i in mu:
J = [[0, 1],[-1, -i]]
lambda_list.append(np.linalg.eigvals(J))
lambda_list = np.array(lambda_list)
plt.figure()
plt.plot(mu, lambda_list[:, 0], '-r', label='Eigenvalue 1')
plt.plot(mu, lambda_list[:, 1], '-b', label='Eigenvalue 2')
plt.xlabel('mu')
plt.ylabel('Eigenvalue')
plt.legend()
关于python 在计算一般矩阵的特征值时引发语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55120496/