У Вас все правильно. Дело не в Ваших формулах, а в программе.
Вот 2 совета.
1. Попробуйте записать первые 4 уравнения без использования матриц. Так как среди координат точек много нулей, много слагаемых выпадает. (Только Вы же не в матричную форму подставляйте координаты точек, а в
). Проверьте меня, получилось:
Код:
225*a22 + 30*a2 + a0 = 0
9*a11 + 6*a1 + a0 = 0
25*a11 + 10*a1 + a0 = 0
4*a11 + 12*a12 + 9*a22 +4*a1 + 6*a2 + a0 = 0
Специально написал как код программы, чтобы удобнее было вставлять в Mathematica. Думаю, такая форма ей понравится гораздо больше.
2. Общая форма уравнения кривой второго порядка однородна. Коэффициенты определены с точностью до умножения на общую константу. Вы можете все коэффициенты умножить, скажем, на
, и это будет та же кривая. Соответственно, и Математика может выбрать такое-то решение, а может всё умножить на
-- оба решения математически будут одинаково верными. Для программы такой произвол -- это, в общем-то, нехорошо. Чтобы избавиться от него, можно положить один из коэфициентов равным
, но только тот, про который точно известно, что он не равен нулю.
Я точно знаю, что
(это видно из второго и третьего уравнений, в противном случае будет также
и
). Поэтому мой совет: скажите Математике, что
. Это будет корректнее уже потому, что количество уравнений будет равно количеству неизвестных.
Уверен на 99%, что после этого все будет хорошо.