In MATLAB I can issue the command:

[X,L] = eig(A,'nobalance'); 

In order to compute the eigenvalues without the balance option.

What is the equivalent command in NumPy? When I run the NumPy version of eig, it does not produce the same result as the MATLAB result with nobalance turned on.

有帮助吗?

解决方案 2

NumPy can't currently do this. As horchler said, there has been an open ticket open for this for a while now. It is, however, possible to do it using external libraries. Here I write up how to do it using the Python bindings to the NAG library

http://www.walkingrandomly.com/?p=5303

It should be possible to do something similar using any interface to LAPACK such as the Intel MKL etc.

其他提示

You can also consider installing GNU Octave and embed it in Python using oct2py. For example, to determine the eigenvalue of matrix A without balancing,

from oct2py import octave
...
[X,L] = octave.eig(A)

The function eig in Octave does not perform balancing of matrix A.

If you want to balance the matrix A, you can go ahead and write:

from oct2py import octave
...
A = octave.balance(A)
[X,L] = octave.eig(A)

oct2py can be downloaded from this website: https://pypi.python.org/pypi/oct2py

Before you install oct2py, you need to make sure SciPy and GNU Octave have been already installed. Good luck!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top