Матрица - это просто система уравнений, закодированная как матрица, поэтому ее можно легко вычислить с помощью обратной матрицы.
Например, во второй строке матрицы (8,4,2,1,0,0,0,0)
после умножения матриц означает следующее:
a3.2^3+a2.1^2+a1.2^1+a0=5
что ваши p1(2)=5
линии являются:
p1(1)=1
p1(2)=5
p2(2)=5
p2(3)=4
p1'(2)-p2'(2)=0
p1''(2)-p2''(2)=0
p1''(1)=0
p2''(3)=0
так, например, последняя матрица линии (0,0,0,0,18,2,0,0)
это:
b3.18 + b2.2 = 0
Если мы выводим p2(t)
до 2-й вывод
p2(t) = b3.t^3 + b2.t^2 + b1.t + b0
p2'(t) = 3.b3.t^2 + 2.b2.t + b1
p2''(t) = 2.3.b3.t + 1.2.b2 = 6.b3.t + 2.b2
Теперь t=3
мы получаем:
p2''(3) = 6.b3.3 + 2.b2 = 18.b3 + 2.b2
И закодированы в матрицу (последняя строка)
(0,0,0,0,18,2,0,0) * (a3,a2,a1,a0,b3,b2,b1,b0) = 0
который соответствует вашему примеру , Надеется, что теперь понятно ...
Остерегайтесь этим примером вашего только для y
оси, как вы получили 2D кривые вам нужно сделать, это для x
оси таким же образом снова ...
Теперь переписывает матричное уравнение снова:
M*A=B
Где M
ваша 8x8
матрица, A=(a3,a2,a1,a0,b3,b2,b1,b0)
и B=(1,5,5,4,0,0,0,0)
вы можете решить эту проблему следующим образом:
inverse(M)*M*A = inverse(M)*B
A = inverse(M)*B
Таким образом, вы получите A
который держит ваши p1,p2
многочлены коэффициенты для B
который удерживает свою позицию (y
координаты в один проход и х-координаты в следующем), так что вы получили p1x,p1y,p2x,p2y
многочлены. Это то, что вам нужно для интерполяции.
Однако этот подход является немного обратным и обычно предопределенными полиномиальными формами используются как SPLINE, BEZIER с определенными свойствами, такими как непрерывность, линейность и т. Д. (Нет необходимости в операции обратного матрикса). Но если вам нужны пользовательские свойства, как в этом примере, у вас нет выбора.
Для получения дополнительной информации см How can i produce multi point linear interpolation?
Я предполагаю, что вы хотите знать, как они идут от [2.127] в [2.128], что означает: как решить 'MX = V', с М квадратной матрицей размерности' n', X и V являются векторами размерности 'n'? – yaitloutou
Я хочу знать, как они получают значения для матрицы M. – zer0kai
, тогда вам нужно отредактировать свой вопрос и включить более подробную информацию, кстати, я думаю, этот вопрос больше подходит для http://math.stackexchange.com – yaitloutou