Как подавить комплексные числа при вычислении квадратного корня из положительной полуопределенной матрицы с помощью scipy.linalg.sqrtm()

#python #matrix #scipy #linear-algebra #square-root

#python #матрица #scipy #линейная алгебра #квадратный корень

Вопрос:

Допустим, у меня есть матрица A (эта матрица довольно большая, поэтому я не указывал это здесь), и, применяя scipy.linalg.sqrtm(A) , я получаю следующую выходную матрицу, которая содержит комплексные числа:

 array([[ 64.06444692 8.96831017e-44j,  -6.28785787 1.57772181e-30j,
         -9.15586255 3.94430453e-31j,  -9.00198187 1.97215226e-31j,
         -7.71376342 7.88860905e-31j,  -6.28785787-1.97215226e-30j,
          2.97380679 0.00000000e 00j,   1.29893642 7.88860905e-31j,
          1.31682879 1.57772181e-30j,  -0.351662   7.88860905e-31j,
         -9.15586255-6.90253292e-31j,   1.29893642 1.97215226e-31j,
          2.36636534 4.48415509e-44j,  -0.57657211 9.86076132e-31j,
          0.39917092-2.95822839e-31j,  -9.00198187-3.94430453e-31j,
          1.31682879-1.57772181e-30j,  -0.57657211-1.97215226e-31j,
          2.36648045 4.48415509e-44j,   0.28162    1.97215226e-31j,
         -7.71376342-7.88860905e-31j,  -0.351662   0.00000000e 00j,
          0.39917092 6.90253292e-31j,   0.28162   -3.94430453e-31j,
          1.21720917 3.58732407e-43j],
       [ -6.28785787 0.00000000e 00j,  37.43772093 0.00000000e 00j,
         -4.54039284 6.61744490e-24j,  -4.70636743 3.30872245e-24j,
         -2.75237216 6.61744490e-24j,  37.43772062-2.64697796e-23j,
         -5.74532523-2.25694915e-36j,  -3.84385982-1.32348898e-23j,
         -4.65882698 3.30872245e-24j,  -2.99673941 2.64697796e-23j,
         -4.54039267 0.00000000e 00j,  -3.84386008 1.32348898e-23j,
         -0.51143448 3.00926554e-36j,  -6.96326972 3.97046694e-23j,
          2.14326501-3.97046694e-23j,  -4.7063676  0.00000000e 00j,
         -4.65882709-3.30872245e-24j,  -6.96326948 6.61744490e-24j,
          0.72851489 1.69271187e-36j,   2.15291748 0.00000000e 00j,
         -2.75237195-1.32348898e-23j,  -2.99674005-2.64697796e-23j,
          2.14326499 2.64697796e-23j,   2.15291766 0.00000000e 00j,
          0.2575331  0.00000000e 00j],
       [ -9.15586255-3.76158192e-37j,  -4.54039278 8.27180613e-24j,
         32.72911898-4.96308368e-24j,  -1.85021394-1.65436123e-24j,
         -2.53702773 9.92616735e-24j,  -4.54039273-1.48892510e-23j,
          1.83872342-1.12847458e-36j,  -1.86092192-6.61744490e-24j,
         -4.29572397 9.92616735e-24j,   1.09027491-2.64697796e-23j,
         32.72911818 0.00000000e 00j,  -1.86092174 6.61744490e-24j,
         -9.24894513-9.40395481e-38j,  -4.93062942 3.30872245e-24j,
         -2.40960071 2.31610572e-23j,  -1.85021376 0.00000000e 00j,
         -4.29572395-6.61744490e-24j,  -4.93062949 0.00000000e 00j,
          1.40879764 6.58276836e-37j,   1.34936369 1.98523347e-23j,
         -2.53702818-5.79026429e-24j,   1.090275   1.32348898e-23j,
         -2.40960075-1.98523347e-23j,   1.34936389-1.65436123e-23j,
          0.47563635 3.00926554e-36j],
       [ -9.00198187 5.17217514e-36j,  -4.70636737 3.30872245e-23j,
         -1.85021382 1.65436123e-23j,  32.3679699 -3.30872245e-24j,
         -2.62837621 1.65436123e-23j,  -4.70636767-3.30872245e-23j,
          1.64638076-7.52316385e-37j,  -4.2159266 -2.97785021e-23j,
         -0.86792129 6.61744490e-24j,   0.99791227-5.29395592e-23j,
         -1.85021388-1.15805286e-23j,  -4.21592618 2.81241408e-23j,
          1.17619748 6.01853108e-36j,  -3.93042699-6.61744490e-24j,
          1.17237038 6.61744490e-24j,  32.36796885 6.61744490e-24j,
         -0.86792107-6.61744490e-24j,  -3.93042699 6.61744490e-24j,
        -10.37559738 1.12847458e-36j,  -2.60535084-5.62482817e-23j,
         -2.62837615-1.65436123e-23j,   0.99791236 4.63221143e-23j,
          1.17237044-6.61744490e-24j,  -2.60535074 5.62482817e-23j,
          0.59574761-3.00926554e-36j],
       [ -7.71376342 4.51389831e-36j,  -2.75237237 1.98523347e-23j,
         -2.53702781 3.30872245e-24j,  -2.62837605 3.30872245e-24j,
          5.69625179 1.32348898e-23j,  -2.75237175-1.98523347e-23j,
         -0.56750495 1.12847458e-36j,   1.03933818-1.32348898e-23j,
          1.0435955 -6.61744490e-24j,   0.3804354 -1.32348898e-23j,
         -2.5370281 -3.30872245e-24j,   1.03933817 1.32348898e-23j,
          0.42008941 3.00926554e-36j,   2.3668576 -6.61744490e-24j,
         -0.24619723-5.29395592e-23j,  -2.62837631 0.00000000e 00j,
          1.04359542 0.00000000e 00j,   2.3668577  8.27180613e-24j,
          0.34120424 3.76158192e-37j,  -0.2668792 -5.29395592e-23j,
          5.6962513 -6.61744490e-24j,   0.38043513-6.61744490e-24j,
         -0.24619695 3.97046694e-23j,  -0.2668791  4.30133919e-23j,
         -1.24019775 0.00000000e 00j],
       [ -6.28785787 0.00000000e 00j,  37.43772062-2.64697796e-23j,
         -4.54039267-1.32348898e-23j,  -4.7063676  0.00000000e 00j,
         -2.75237195-3.30872245e-24j,  37.43772093 2.64697796e-23j,
         -5.74532523 7.52316385e-37j,  -3.84386008 0.00000000e 00j,
         -4.65882709 0.00000000e 00j,  -2.99674005-2.64697796e-23j,
         -4.54039284 1.98523347e-23j,  -3.84385982 0.00000000e 00j,
         -0.51143448-3.00926554e-36j,  -6.96326948-2.64697796e-23j,
          2.14326499 3.97046694e-23j,  -4.70636743-6.61744490e-24j,
         -4.65882698 0.00000000e 00j,  -6.96326972 0.00000000e 00j,
          0.72851489-1.78675141e-36j,   2.15291766 0.00000000e 00j,
         -2.75237216 3.30872245e-24j,  -2.99673941 1.32348898e-23j,
          2.14326501-3.30872245e-23j,   2.15291748-1.32348898e-23j,
          0.2575331  0.00000000e 00j],
       [  2.97380679 2.24207754e-44j,  -5.74532523 0.00000000e 00j,
          1.83872342-1.57772181e-30j,   1.64638076-3.69778549e-31j,
         -0.56750495 1.57772181e-30j,  -5.74532523 7.88860905e-31j,
         66.4932094  0.00000000e 00j, -10.70816264 2.56379794e-30j,
        -11.08111069 1.97215226e-31j,  -7.43474479-1.97215226e-31j,
          1.83872342 7.88860905e-31j, -10.70816264-1.57772181e-30j,
          1.86080059 2.69049305e-43j,   0.19541758 7.88860905e-31j,
          0.56304712 1.57772181e-30j,   1.64638076 3.20474743e-31j,
        -11.08111069 1.97215226e-31j,   0.19541758 0.00000000e 00j,
          1.96616419 4.48415509e-44j,   0.54752066-1.18329136e-30j,
         -0.56750495-1.57772181e-30j,  -7.43474479-3.94430453e-31j,
          0.56304712-1.57772181e-30j,   0.54752066 1.08468374e-30j,
          1.07252937 5.38098610e-43j],
       [  1.29893642 9.78011300e-36j,  -3.84386014 5.29395592e-23j,
         -1.86092176 9.92616735e-24j,  -4.21592632 1.32348898e-23j,
          1.03933803 6.61744490e-24j,  -3.84385976-6.61744490e-23j,
        -10.70816264 1.88079096e-36j,  31.76054462-5.29395592e-23j,
         -0.81206901 1.98523347e-23j,  -2.42506017-7.27918939e-23j,
         -1.8609219 -2.64697796e-23j,  31.76054419 2.64697796e-23j,
         -9.99217824 6.01853108e-36j,  -4.18589448-4.30133919e-23j,
         -2.25738823 0.00000000e 00j,  -4.21592646 0.00000000e 00j,
         -0.81206922-6.61744490e-24j,  -4.18589417 4.63221143e-23j,
          1.53827682 1.88079096e-37j,   1.02240603-1.45583788e-22j,
          1.03933832-6.61744490e-24j,  -2.42506066 7.27918939e-23j,
         -2.2573882 -1.32348898e-23j,   1.02240648 1.45583788e-22j,
          0.4993346 -1.20370622e-35j],
       [  1.31682879 9.02779661e-36j,  -4.65882716 3.30872245e-23j,
         -4.29572396 1.32348898e-23j,  -0.86792122 7.44462551e-24j,
          1.04359537 2.64697796e-23j,  -4.65882691-5.29395592e-23j,
        -11.08111069 3.00926554e-36j,  -0.81206926-5.29395592e-23j,
         32.00910946 1.32348898e-23j,  -2.29180333-6.61744490e-23j,
         -4.29572396-1.98523347e-23j,  -0.81206897 7.94093388e-23j,
          1.42042175 4.51389831e-36j,  -3.87247572-2.97785021e-23j,
          0.971801  -1.98523347e-23j,  -0.86792115-2.48154184e-24j,
         32.00910859-2.64697796e-23j,  -3.87247562 3.63959470e-23j,
        -10.69471254-9.40395481e-38j,  -2.38335511-7.94093388e-23j,
          1.04359555-1.32348898e-23j,  -2.29180342 7.27918939e-23j,
          0.97180114 0.00000000e 00j,  -2.38335456 1.19114008e-22j,
          0.51309298-3.00926554e-36j],
       [ -0.351662  -6.77084746e-36j,  -2.99673978-2.64697796e-23j,
          1.09027494-2.64697796e-23j,   0.99791231-3.30872245e-24j,
          0.38043531 6.61744490e-24j,  -2.99673969 2.64697796e-23j,
         -7.43474479-1.78675141e-36j,  -2.42506037 2.31610572e-23j,
         -2.29180337-4.96308368e-24j,   5.48456743 5.29395592e-23j,
          1.09027497 1.98523347e-23j,  -2.42506046-1.15805286e-23j,
          0.66133065-4.51389831e-36j,   2.08403436 3.63959470e-23j,
         -0.34767484-4.30133919e-23j,   0.99791231 4.96308368e-24j,
         -2.29180338 5.79026429e-24j,   2.08403451-1.32348898e-23j,
          0.53327358 1.03443503e-36j,  -0.33110204 7.23783036e-23j,
          0.38043522-6.61744490e-24j,   5.48456708-5.29395592e-23j,
         -0.34767495 3.97046694e-23j,  -0.33110231-7.63074115e-23j,
         -1.13338852 1.20370622e-35j],
       [ -9.15586255 1.50463277e-36j,  -4.54039273-4.13590306e-24j,
         32.72911818 4.96308368e-24j,  -1.85021376 1.65436123e-24j,
         -2.53702818-1.32348898e-23j,  -4.54039278-2.48154184e-24j,
          1.83872342 1.50463277e-36j,  -1.86092174 0.00000000e 00j,
         -4.29572395 0.00000000e 00j,   1.090275   1.32348898e-23j,
         32.72911898-6.61744490e-24j,  -1.86092192 9.92616735e-24j,
         -9.24894513-5.64237288e-37j,  -4.93062949-9.92616735e-24j,
         -2.40960075-1.32348898e-23j,  -1.85021394-1.65436123e-24j,
         -4.29572397 0.00000000e 00j,  -4.93062942 6.61744490e-24j,
          1.40879764-3.76158192e-37j,   1.34936389-3.97046694e-23j,
         -2.53702773-1.65436123e-24j,   1.09027491-2.64697796e-23j,
         -2.40960071 6.61744490e-24j,   1.34936369 3.97046694e-23j,
          0.47563635-1.50463277e-35j],
       [  1.29893642-1.05324294e-35j,  -3.84385976-5.95570041e-23j,
         -1.8609219 -2.64697796e-23j,  -4.21592646-6.61744490e-24j,
          1.03933832 2.31610572e-23j,  -3.84386014 6.61744490e-23j,
        -10.70816264-3.38542373e-36j,  31.76054419 5.29395592e-23j,
         -0.81206922 1.98523347e-23j,  -2.42506066 5.95570041e-23j,
         -1.86092176 2.31610572e-23j,  31.76054462-7.94093388e-23j,
         -9.99217824-6.77084746e-36j,  -4.18589417 3.30872245e-23j,
         -2.2573882  3.97046694e-23j,  -4.21592632 6.61744490e-24j,
         -0.81206901-1.32348898e-23j,  -4.18589448-4.63221143e-23j,
          1.53827682-1.12847458e-36j,   1.02240648 1.05879118e-22j,
          1.03933803 9.92616735e-24j,  -2.42506017-5.29395592e-23j,
         -2.25738823-1.32348898e-23j,   1.02240603-1.05879118e-22j,
          0.4993346  0.00000000e 00j],
       [  2.36636534 8.96831017e-44j,  -0.51143448-1.57772181e-30j,
         -9.24894513-8.87468518e-31j,   1.17619748 3.94430453e-31j,
          0.42008941-7.95023881e-31j,  -0.51143448 2.36658272e-30j,
          1.86080059 1.79366203e-43j,  -9.99217824 1.77493704e-30j,
          1.42042175-7.88860905e-31j,   0.66133065 0.00000000e 00j,
         -9.24894513 5.91645679e-31j,  -9.99217824-1.18329136e-30j,
         64.80119411-1.79366203e-43j,  -5.84612899-1.08468374e-30j,
         -7.81047186 0.00000000e 00j,   1.17619748-5.91645679e-31j,
          1.42042175 0.00000000e 00j,  -5.84612899 1.77493704e-30j,
          3.7271156 -2.24207754e-44j,  -0.60817689 0.00000000e 00j,
          0.42008941 4.25245332e-31j,   0.66133065 0.00000000e 00j,
         -7.81047186 7.88860905e-31j,  -0.60817689 1.97215226e-31j,
          1.20175111 6.27781712e-43j],
       [ -0.57657211 1.50463277e-36j,  -6.96326969 2.64697796e-23j,
         -4.93062959 1.65436123e-24j,  -3.93042692-6.61744490e-24j,
          2.36685766 1.32348898e-23j,  -6.96326951-1.32348898e-23j,
          0.19541758 0.00000000e 00j,  -4.18589425 1.32348898e-23j,
         -3.87247569-1.98523347e-23j,   2.08403463-3.97046694e-23j,
         -4.93062931 3.30872245e-24j,  -4.1858944 -1.65436123e-23j,
         -5.84612899 3.00926554e-36j,  37.77920832 3.30872245e-24j,
         -3.01763347 0.00000000e 00j,  -3.93042706 9.92616735e-24j,
         -3.87247565 1.65436123e-23j,  37.77920777-1.65436123e-24j,
         -7.23213763 1.50463277e-36j,  -3.04026415 6.61744490e-24j,
          2.36685764-1.32348898e-23j,   2.08403425 3.97046694e-23j,
         -3.01763353 6.61744490e-24j,  -3.04026397-6.61744490e-24j,
          0.28030407 1.20370622e-35j],
       [  0.39917092 2.44502825e-36j,   2.14326495 1.07533480e-23j,
         -2.40960073 6.61744490e-24j,   1.17237044 1.34416850e-24j,
         -0.24619708 0.00000000e 00j,   2.14326504-8.27180613e-24j,
          0.56304712 1.59867232e-36j,  -2.25738823-1.65436123e-23j,
          0.97180111-6.61744490e-24j,  -0.34767488 9.92616735e-24j,
         -2.40960073 3.30872245e-24j,  -2.25738819 6.61744490e-24j,
         -7.81047186-4.70197740e-37j,  -3.01763354-4.96308368e-24j,
          5.63841366-1.32348898e-23j,   1.17237037-3.30872245e-24j,
          0.97180102 0.00000000e 00j,  -3.01763345 6.61744490e-24j,
         -0.46208872 1.88079096e-37j,   0.35404579-3.30872245e-23j,
         -0.24619711 0.00000000e 00j,  -0.34767491-6.61744490e-24j,
          5.6384134  1.98523347e-23j,   0.35404595 4.30133919e-23j,
         -1.1998646 -3.00926554e-36j],
       [ -9.00198187-6.58276836e-36j,  -4.70636767-3.97046694e-23j,
         -1.85021388-2.15066959e-23j,  32.36796885 0.00000000e 00j,
         -2.62837615-3.30872245e-24j,  -4.70636737 2.64697796e-23j,
          1.64638076 7.52316385e-37j,  -4.21592618 2.15066959e-23j,
         -0.86792107-1.98523347e-23j,   0.99791236 6.61744490e-23j,
         -1.85021382 2.64697796e-23j,  -4.2159266 -2.64697796e-23j,
          1.17619748-6.01853108e-36j,  -3.93042699 1.98523347e-23j,
          1.17237044-2.31610572e-23j,  32.3679699  0.00000000e 00j,
         -0.86792129-1.32348898e-23j,  -3.93042699-1.65436123e-23j,
        -10.37559738 3.76158192e-37j,  -2.60535074 6.61744490e-23j,
         -2.62837621 3.30872245e-24j,   0.99791227-6.61744490e-23j,
          1.17237038 1.65436123e-23j,  -2.60535084-6.61744490e-23j,
          0.59574761 1.50463277e-36j],
       [  1.31682879-9.78011300e-36j,  -4.65882691-5.95570041e-23j,
         -4.29572396-6.61744490e-24j,  -0.86792115 4.96308368e-24j,
          1.04359555 0.00000000e 00j,  -4.65882716 4.63221143e-23j,
        -11.08111069-1.78675141e-36j,  -0.81206897 7.94093388e-23j,
         32.00910859 6.61744490e-24j,  -2.29180342 6.61744490e-23j,
         -4.29572396 2.64697796e-23j,  -0.81206926-6.61744490e-23j,
          1.42042175-7.52316385e-36j,  -3.87247562 2.64697796e-23j,
          0.97180114 6.61744490e-24j,  -0.86792122-4.96308368e-24j,
         32.00910946 1.32348898e-23j,  -3.87247572-3.30872245e-23j,
        -10.69471254-5.64237288e-37j,  -2.38335456 1.32348898e-22j,
          1.04359537 1.32348898e-23j,  -2.29180333-6.61744490e-23j,
          0.971801  -6.61744490e-24j,  -2.38335511-1.19114008e-22j,
          0.51309298 7.52316385e-36j],
       [ -0.57657211 0.00000000e 00j,  -6.96326951-1.32348898e-23j,
         -4.93062931 1.32348898e-23j,  -3.93042706 1.32348898e-23j,
          2.36685764-2.64697796e-23j,  -6.96326969 0.00000000e 00j,
          0.19541758 3.00926554e-36j,  -4.1858944  1.98523347e-23j,
         -3.87247565 1.65436123e-23j,   2.08403425-2.64697796e-23j,
         -4.93062959-2.15066959e-23j,  -4.18589425-2.31610572e-23j,
         -5.84612899 0.00000000e 00j,  37.77920777 4.96308368e-24j,
         -3.01763353 2.64697796e-23j,  -3.93042692-9.92616735e-24j,
         -3.87247569-1.81979735e-23j,  37.77920832-6.61744490e-24j,
         -7.23213763-1.50463277e-36j,  -3.04026397-1.32348898e-23j,
          2.36685766 2.64697796e-23j,   2.08403463 1.98523347e-23j,
         -3.01763347-1.98523347e-23j,  -3.04026415-6.61744490e-24j,
          0.28030407-3.00926554e-36j],
       [  2.36648045 2.24207754e-44j,   0.72851489 7.88860905e-31j,
          1.40879764 5.91645679e-31j, -10.37559738 0.00000000e 00j,
          0.34120424-1.97215226e-31j,   0.72851489 0.00000000e 00j,
          1.96616419 0.00000000e 00j,   1.53827682 7.88860905e-31j,
        -10.69471254 3.94430453e-31j,   0.53327358-7.88860905e-31j,
          1.40879764-7.39557099e-31j,   1.53827682-5.42341872e-31j,
          3.7271156  8.96831017e-44j,  -7.23213763 9.86076132e-31j,
         -0.46208872 3.94430453e-31j, -10.37559738 1.97215226e-31j,
        -10.69471254 0.00000000e 00j,  -7.23213763-1.38050658e-30j,
         66.67576266 2.24207754e-44j,  -7.36545725 0.00000000e 00j,
          0.34120424 1.97215226e-31j,   0.53327358 9.86076132e-31j,
         -0.46208872 3.94430453e-31j,  -7.36545725-3.94430453e-31j,
          1.10890059 0.00000000e 00j],
       [  0.28162    5.26621469e-36j,   2.15291775 2.64697796e-23j,
          1.34936389 9.92616735e-24j,  -2.6053508  0.00000000e 00j,
         -0.26687909 8.27180613e-24j,   2.15291739-2.64697796e-23j,
          0.54752066 7.52316385e-37j,   1.02240618-2.64697796e-23j,
         -2.38335482 1.65436123e-23j,  -0.33110235-3.97046694e-23j,
          1.34936369-1.65436123e-23j,   1.02240633 2.64697796e-23j,
         -0.60817689 3.00926554e-36j,  -3.04026407-9.92616735e-24j,
          0.35404585 3.97046694e-23j,  -2.60535078-1.65436123e-24j,
         -2.38335485-3.30872245e-24j,  -3.04026404 6.61744490e-24j,
         -7.36545725 0.00000000e 00j,   5.62390673-6.28657266e-23j,
         -0.26687921 4.13590306e-24j,  -0.33110199 5.29395592e-23j,
          0.35404589 0.00000000e 00j,   5.62390689 6.28657266e-23j,
         -1.18245232-3.00926554e-36j],
       [ -7.71376342-6.01853108e-36j,  -2.75237175-1.32348898e-23j,
         -2.5370281 -9.92616735e-24j,  -2.62837631 0.00000000e 00j,
          5.6962513 -1.32348898e-23j,  -2.75237237 1.98523347e-23j,
         -0.56750495-3.57350283e-36j,   1.03933817 2.64697796e-23j,
          1.04359542 1.32348898e-23j,   0.38043513 6.61744490e-24j,
         -2.53702781 9.92616735e-24j,   1.03933818 0.00000000e 00j,
          0.42008941-3.00926554e-36j,   2.3668577  6.61744490e-24j,
         -0.24619695 5.29395592e-23j,  -2.62837605 3.30872245e-24j,
          1.0435955  0.00000000e 00j,   2.3668576 -1.15805286e-23j,
          0.34120424-7.52316385e-37j,  -0.2668791  8.93355062e-23j,
          5.69625179 6.61744490e-24j,   0.3804354 -1.32348898e-23j,
         -0.24619723-3.97046694e-23j,  -0.2668792 -8.27180613e-23j,
         -1.24019775 3.00926554e-36j],
       [ -0.351662   6.77084746e-36j,  -2.99673969 3.97046694e-23j,
          1.09027497 1.32348898e-23j,   0.99791231 4.13590306e-24j,
          0.38043522-3.30872245e-24j,  -2.99673978-2.64697796e-23j,
         -7.43474479 1.12847458e-36j,  -2.42506046-2.81241408e-23j,
         -2.29180338 8.27180613e-25j,   5.48456708-5.29395592e-23j,
          1.09027494-1.32348898e-23j,  -2.42506037 2.31610572e-23j,
          0.66133065 4.51389831e-36j,   2.08403451-2.64697796e-23j,
         -0.34767495 4.63221143e-23j,   0.99791231-1.65436123e-24j,
         -2.29180337-8.27180613e-25j,   2.08403436 2.31610572e-23j,
          0.53327358-7.52316385e-37j,  -0.33110231-6.90695811e-23j,
          0.38043531 1.65436123e-24j,   5.48456743 5.29395592e-23j,
         -0.34767484-4.63221143e-23j,  -0.33110204 6.47268829e-23j,
         -1.13338852-9.02779661e-36j],
       [  0.39917092-9.40395481e-37j,   2.14326504-5.79026429e-24j,
         -2.40960073-3.30872245e-24j,   1.17237037 8.27180613e-25j,
         -0.24619711 0.00000000e 00j,   2.14326495 7.44462551e-24j,
          0.56304712-5.64237288e-37j,  -2.25738819 1.65436123e-23j,
          0.97180102 3.30872245e-24j,  -0.34767491-1.32348898e-23j,
         -2.40960073 3.30872245e-24j,  -2.25738823-9.92616735e-24j,
         -7.81047186-9.40395481e-38j,  -3.01763345 3.30872245e-24j,
          5.6384134  1.98523347e-23j,   1.17237044-2.06795153e-24j,
          0.97180111-3.30872245e-24j,  -3.01763354-1.65436123e-24j,
         -0.46208872-5.64237288e-37j,   0.35404595 2.64697796e-23j,
         -0.24619708 0.00000000e 00j,  -0.34767488 1.32348898e-23j,
          5.63841366-1.98523347e-23j,   0.35404579-2.97785021e-23j,
         -1.1998646  3.00926554e-36j],
       [  0.28162   -4.51389831e-36j,   2.15291739-2.64697796e-23j,
          1.34936369-1.98523347e-23j,  -2.60535078 1.65436123e-24j,
         -0.26687921-5.79026429e-24j,   2.15291775 1.98523347e-23j,
          0.54752066 0.00000000e 00j,   1.02240633 3.30872245e-23j,
         -2.38335485-1.32348898e-23j,  -0.33110199 2.64697796e-23j,
          1.34936389 1.65436123e-23j,   1.02240618-3.97046694e-23j,
         -0.60817689-3.00926554e-36j,  -3.04026404 6.61744490e-24j,
          0.35404589-3.97046694e-23j,  -2.6053508  3.30872245e-24j,
         -2.38335482 1.98523347e-23j,  -3.04026407 0.00000000e 00j,
         -7.36545725 3.76158192e-37j,   5.62390689 6.94831715e-23j,
         -0.26687909 5.79026429e-24j,  -0.33110235 0.00000000e 00j,
          0.35404585 1.32348898e-23j,   5.62390673-6.12113653e-23j,
         -1.18245232 2.40741243e-35j],
       [  1.21720917 4.93257059e-43j,   0.2575331  7.88860905e-31j,
          0.47563635 0.00000000e 00j,   0.59574761 0.00000000e 00j,
         -1.24019775 0.00000000e 00j,   0.2575331 -5.52202634e-30j,
          1.07252937-3.58732407e-43j,   0.4993346  0.00000000e 00j,
          0.51309298-1.26217745e-29j,  -1.13338852-6.31088724e-30j,
          0.47563635-1.57772181e-30j,   0.4993346 -6.31088724e-30j,
          1.20175111 8.96831017e-43j,   0.28030407 9.46633086e-30j,
         -1.1998646  1.26217745e-29j,   0.59574761 3.15544362e-30j,
          0.51309298 6.31088724e-30j,   0.28030407-3.15544362e-30j,
          1.10890059 0.00000000e 00j,  -1.18245232-3.15544362e-30j,
         -1.24019775 9.46633086e-30j,  -1.13338852 7.88860905e-30j,
         -1.1998646 -1.89326617e-29j,  -1.18245232 0.00000000e 00j,
          1.80359473-3.22859166e-42j]])
  

Как мне подавить комплексные числа при вычислении scipy.linalg.sqrtm() , чтобы выходная матрица не содержала никаких комплексных чисел?

Я немного погуглил и нашел следующий PR на Github от 6 лет назад, в котором предлагается включить функциональные функции, такие как funm_psd и structure="psd" для оценки общих матричных функций положительных полуопределенных матриц, но, похоже, я нигде не могу найти эти функциональные возможности.

https://github.com/scipy/scipy/pull/3556

Любая помощь будет действительно оценена!

Редактировать: я знаю, что могу использовать np.real() в выходной матрице, чтобы получить только действительную часть. Меня беспокоит то, что включение комплексных чисел во время вычисления квадратного корня может повлиять на значения в выходной матрице, а не просто удаление комплексных чисел в выходной матрице. Если, конечно, включение или исключение комплексных чисел во время вычисления квадратного корня не сильно повлияет на значения выходной матрицы. Кто-нибудь знает, так ли это?

Комментарии:

1. Хотите только действительные части? Или вам нравятся значения 0s / nan для sqrts отрицательных чисел?

2. Требуется только действительная часть, которую, я знаю, я могу использовать np.real() в выходной матрице. Но меня беспокоит то, что включение комплексных чисел во время вычисления квадратного корня может повлиять на значения в выходной матрице, а не просто удаление комплексных чисел в выходной матрице. Если, конечно, включение или исключение комплексных чисел во время вычисления квадратного корня не сильно повлияет на значения выходной матрицы.

3. Извините, я также должен уточнить, почему я думаю, что комплексные числа появляются из-за проблем с числовой точностью / округлением при реализации scipy.linalg.sqrtm() функции (например. смотрите здесь math.stackexchange.com/questions/909814 /… ). Например. значения, которые математически предполагаются равными нулям, имеют такие значения, как -7.52206733e-20 7.73635801e-19j, где вы можете видеть, имеет сложную часть, но действительная часть очень близка к нулю.