【发布时间】:2017-01-06 13:30:06
【问题描述】:
我有一个输出复特征值向量的函数。它需要一个参数rho。我需要找到一个rho,它的复特征值位于虚轴上。换句话说,实部必须为 0。
当我运行 fzero() 时,它会引发以下错误
|| 的操作数和 && 运算符必须可转换为逻辑标量值。
而 fsolve() 只是解决虚部 = 0,这正是我想要的相反。
这是我写的函数
function lambda = eigLorenz(rho)
beta = 8/3;
sigma = 10;
eta = sqrt(beta*(rho-1));
A = [ -beta 0 eta;0 -sigma sigma;-eta rho -1];
y = [rho-1; eta; eta];
% Calculate eigenvalues of jacobian
J = A + [0 y(3) 0; 0 0 0; 0 -y(1) 0]
lambda = eig(J)
它输出 3 个特征值、2 个复共轭和 1 个实特征值(复数部分 = 0)。
我需要找到rho,它的复特征值位于虚轴上,因此实部为0。
【问题讨论】:
-
ρ 的有效范围是多少?因为仅仅填写一些随机值并不能给出您描述的 1-real-and-2-conjugates...这实际上是一个要求吗?
-
@RodyOldenhuis 有效范围是 rho > 0。解决方案是 rho = 24.737,但现在我需要一种方法让它在 MATLAB 中工作
-
2 个共轭 + 实数值仅在 ρ > 1.34561 时开始发生...
标签: matlab math mathematical-optimization eigenvalue