Найти действительную часть комплекса в матрице Симпи - PullRequest
0 голосов
/ 15 октября 2018

У меня есть эта матрица, полученная из MyMat.eigenvals().keys() из sympy (это собственные значения из четырехмерной якобианской матрицы):

egV = [5728761814608399/400000000000000 + sqrt(116481370240190604554434649577057/100000000000000000000000000000 - 2*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3) - 542870217167939624258689632311630767295785372177/(20000000000000000000000000000000000000000000*sqrt(116481370240190604554434649577057/200000000000000000000000000000 + 84525541314107370029729686916824478617779085658015330937307969/(20000000000000000000000000000000000000000000000000000000000*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3)) + 2*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3))) - 84525541314107370029729686916824478617779085658015330937307969/(20000000000000000000000000000000000000000000000000000000000*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3)))/2 - sqrt(116481370240190604554434649577057/200000000000000000000000000000 + 84525541314107370029729686916824478617779085658015330937307969/(20000000000000000000000000000000000000000000000000000000000*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3)) + 2*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3))/2, 5728761814608399/400000000000000 + sqrt(116481370240190604554434649577057/100000000000000000000000000000 - 2*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3) + 542870217167939624258689632311630767295785372177/(20000000000000000000000000000000000000000000*sqrt(116481370240190604554434649577057/200000000000000000000000000000 + 84525541314107370029729686916824478617779085658015330937307969/(20000000000000000000000000000000000000000000000000000000000*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3)) + 2*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3))) - 84525541314107370029729686916824478617779085658015330937307969/(20000000000000000000000000000000000000000000000000000000000*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3)))/2 + sqrt(116481370240190604554434649577057/200000000000000000000000000000 + 84525541314107370029729686916824478617779085658015330937307969/(20000000000000000000000000000000000000000000000000000000000*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3)) + 2*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3))/2, 5728761814608399/400000000000000 - sqrt(116481370240190604554434649577057/200000000000000000000000000000 + 84525541314107370029729686916824478617779085658015330937307969/(20000000000000000000000000000000000000000000000000000000000*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3)) + 2*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3))/2 - sqrt(116481370240190604554434649577057/100000000000000000000000000000 - 2*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3) - 542870217167939624258689632311630767295785372177/(20000000000000000000000000000000000000000000*sqrt(116481370240190604554434649577057/200000000000000000000000000000 + 84525541314107370029729686916824478617779085658015330937307969/(20000000000000000000000000000000000000000000000000000000000*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3)) + 2*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3))) - 84525541314107370029729686916824478617779085658015330937307969/(20000000000000000000000000000000000000000000000000000000000*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3)))/2, 5728761814608399/400000000000000 - sqrt(116481370240190604554434649577057/100000000000000000000000000000 - 2*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3) + 542870217167939624258689632311630767295785372177/(20000000000000000000000000000000000000000000*sqrt(116481370240190604554434649577057/200000000000000000000000000000 + 84525541314107370029729686916824478617779085658015330937307969/(20000000000000000000000000000000000000000000000000000000000*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3)) + 2*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3))) - 84525541314107370029729686916824478617779085658015330937307969/(20000000000000000000000000000000000000000000000000000000000*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3)))/2 + sqrt(116481370240190604554434649577057/200000000000000000000000000000 + 84525541314107370029729686916824478617779085658015330937307969/(20000000000000000000000000000000000000000000000000000000000*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3)) + 2*(704966930593670936740277648541223935870775995019826163729310179922474354087956414591800649953/8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + sqrt(4176563721214961521026417694955136953714825217199604642869248664796023172422674692165308442655306961942463737618615469818663523407583102219569144299457956960070280847076949520807345)*I/50000000000000000000000000000000000000000000000000000000000000000000000000000000000000)**(1/3))/2]

Я хотел бы принять только реальную часть, поэтому я пытаюсь использовать re():

outMat = [re(eg) for eg in egV]

, но возвращается эта ошибка:

Ошибка типа: невозможно определить истинное значение Реляционного

1 Ответ

0 голосов
/ 15 октября 2018

Строка документа re сообщает:

Возвращает действительную часть выражения.Эта функция выполняет только элементарный анализ и поэтому не сможет правильно разложить более сложные выражения.Если требуется полностью упрощенный результат, используйте Basic.as_real_imag() или выполните сложное расширение в случае использования этой функции.

В SymPy 1.3 egV.as_real_imag() возвращает набор матриц: реальные части и мнимые части.Все мнимые части - это нули, что говорит нам о том, что собственные значения реальны.По-видимому, наличие I происходит от casus irreducibilis кубического уравнения (уравнение имеет три действительных корня, но алгебраическая формула для них обязательно включает комплексные числа).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...