Какие есть пакеты для численного нахождения частот релакс.колебаний?

mada05

Задача:
Есть система 6ти дифференциальных уравнений. Необходимо найти частоты релаксационных колебаний малых отклонений от стационарного решения.
Вопрос:
Какими пакетами и как можно найти (численно) эти частоты?
В принципе задача сводится к системе 6ти линейных уравнений. Далее для характеристического уравнения ищутся корни (в комплексном виде). И наконец: искомые частоты - это мнимые части корней. Но решить уравнение шестого порядка аналитически крайне сложно. Допускается численное решение. И теперь возникает другой вопрос: каким численным методом можно решить уравнение шестого порядка, корни которого комплексные ?

Lene81


ZGEEV(1) LAPACK driver routine (version 3.2) ZGEEV(1)

NAME
ZGEEV - computes for an N-by-N complex nonsymmetric matrix A, the eigenvalues and,
optionally, the left and/or right eigenvectors

mada05

LAPACK driver routine
Спасибо!
Для запуска пакета надо ли в каком-то виде иметь FORTRAN? Или есть решения под другие языки или вообще без "платформы"?

terl

Для запуска пакета надо ли в каком-то виде иметь FORTRAN? Или есть решения под другие языки или вообще без "платформы"?
LAPACK написан на фортране, так что естественным решением будет вызывать эту функцию из программы на фортране
Также существует интерфейс LAPACK для языка С, т.е. можно вызвать и из программы на C
Есть кроссплатформенное решение для языка Python (библиотека numpy, также основано на LAPACK):
Type: function
Base Class: <type 'function'>
String Form: <function eig at 0x24a5cf8>
Namespace: Interactive
File: /usr/lib/python2.5/site-packages/numpy/linalg/linalg.py
Definition: linalg.eig(a)
Docstring:
Compute eigenvalues and right eigenvectors of a general matrix.

Parameters
----------
a : array-like, shape (M, M)
A complex or real 2-d array whose eigenvalues and eigenvectors
will be computed.

Returns
-------
w : double or complex array, shape (M
The eigenvalues, each repeated according to its multiplicity.
The eigenvalues are not necessarily ordered, nor are they
necessarily real for real matrices.
v : double or complex array, shape (M, M)
The normalized eigenvector corresponding to the eigenvalue w[i] is
the column v[:,i].

If a is a matrix, so are all the return values.

Raises LinAlgError if eigenvalue computation does not converge
See Also
--------
eigvalsh : eigenvalues of symmetric or Hemitiean arrays.
eig : eigenvalues and right eigenvectors for non-symmetric arrays
eigvals : eigenvalues of non-symmetric array.

Notes
-----
This is a simple interface to the LAPACK routines dgeev and zgeev
that compute the eigenvalues and eigenvectors of general real and
complex arrays respectively.

The number w is an eigenvalue of a if there exists a vector v
satisfying the equation dot(a,v) = w*v. Alternately, if w is a root of
the characteristic equation det(a - w[i]*I) = 0, where det is the
determinant and I is the identity matrix. The arrays a, w, and v
satisfy the equation dot(a,v[i]) = w[i]*v[:,i].

The array v of eigenvectors may not be of maximum rank, that is, some
of the columns may be dependent, although roundoff error may obscure
that fact. If the eigenvalues are all different, then theoretically the
eigenvectors are independent. Likewise, the matrix of eigenvectors is
unitary if the matrix a is normal, i.e., if dot(a, a.H) = dot(a.H, a).

The left and right eigenvectors are not necessarily the (Hermitian)
transposes of each other.

Lene81

Поддерживаю, скриптовый вариант здесь будет в самый раз: матрица маленькая и скорость разработки важнее скорости диагонализации.

terl

важнее скорости диагонализации
а она и не будет отличаться, linalg.eig суть обертка для той же самой функции

Lene81

а она и не будет отличаться, linalg.eig суть обертка для той же самой функции
Вопрос, как там устроены типы данных в питоне. Если так же, как и в фортране, то да, не будет. Но в этом я не уверен, просто потому что питон почти не использую.

lenmas

А что, сейчас MatLab уже не котируется?

Lene81

А что, сейчас MatLab уже не котируется?
Можно и матлабом, и октавом, и мэплом, на худой конец. Но, скажем, у нас в группе матлаба нет — шеф за лицензию просто так платить не хочет (что правильно — почти во всем его замещает октава).

terl

Вопрос, как там устроены типы данных в питоне.
питон просто вызывает соотв. процедуру лапака. и работает непосредственно с фортрановскими массивами (благодаря numpy (благодаря ctypes
питон помимо всего прочего - это супер-"клей"

terl

MatLab уже не котируется?
пережитки проприетарного прошлого
Оставить комментарий
Имя или ник:
Комментарий: