Найти действительную часть комплекса в матрице Симпи

1

Я получил эту матрицу из MyMat.eigenvals().keys() из sympy (это собственные значения из 4D матрицы jacobian):

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]

но он возвращает эту ошибку:

TypeError: не может определить значение истинности Relational

  • 1
    Вы видели этот github.com/sympy/sympy/issues/12583?
  • 0
    Да, спасибо, но я не понимаю, как это могло бы помочь мне разделить реальную и мнимую части ...
Показать ещё 2 комментария
Теги:
sympy

1 ответ

1
Лучший ответ

Функция docstring функции re говорит

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню