Как выполнить аффинное преобразование координат с помощью Python? часть 2

У меня та же проблема, как описано здесь:Как выполнить аффинное преобразование координат с помощью Python?

Я пытался использовать описанный метод, но по какой-то причине я получаю сообщения об ошибках. Изменения, которые я сделал в коде, должны были заменить первичные системные и вторичные системные точки. Я создал вторичные координатные точки, используя разные оригами. В реальном случае, для которого я изучаю эту тему, будут некоторые ошибки при измерении координат.

primary_system1 = (40.0, 1160.0, 0.0)
primary_system2 = (40.0, 40.0, 0.0)
primary_system3 = (260.0, 40.0, 0.0)
primary_system4 = (260.0, 1160.0, 0.0)

secondary_system1 = (610.0, 560.0, 0.0) 
secondary_system2 = (610.0,-560.0, 0.0) 
secondary_system3 = (390.0, -560.0, 0.0)
secondary_system4 = (390.0, 560.0, 0.0)

Ошибка, которую я получаю при выполнении, следующая.

*Traceback (most recent call last):
  File "affine_try.py", line 57, in <module>
    secondary_system3, secondary_system4 )
  File "affine_try.py", line 22, in solve_affine
    A2 = y * x.I
  File "/usr/lib/python2.7/dist-packages/numpy/matrixlib/defmatrix.py", line 850, in getI
    return asmatrix(func(self))
  File "/usr/lib/python2.7/dist-packages/numpy/linalg/linalg.py", line 445, in inv
    return wrap(solve(a, identity(a.shape[0], dtype=a.dtype)))
  File "/usr/lib/python2.7/dist-packages/numpy/linalg/linalg.py", line 328, in solve
    raise LinAlgError, 'Singular matrix'
numpy.linalg.linalg.LinAlgError: Singular matrix*

В чем может быть проблема?