=== Кусочно-полиномиальный сплайн степени 5 === Выполнил: Арыков Никита, группа 9205; Опр. p принадлежит R^3 - точка Сплайн S(t) = (x(t), y(t), z(t)) x(t) = At^5 + Bt^4 + Ct^3 + Dt^2 + Et + F y(t) = At^5 + Bt^4 + Ct^3 + Dt^2 + Et + F z(t) = At^5 + Bt^4 + Ct^3 + Dt^2 + Et + F У нас есть 6 неизвестных A,B,C,D,E,F => нужна система из 6 уравнений. Есть контрольные точки p0, .. pn Составим условия 1) x(0) = p0.x => F = p0.x;(аналогично для y, z) 2) x(1) = p1.x => A+B+C+D+E+F = p1.x; 3) x'(0) = knot'(t0), где p0.x = knot'(t0) => E = knot'(t0); 4) x'(1) = knot'(t1), где p1.x = knot'(t1) => 5A + 4B + 3C + 2D + E = knot'(t1); Теперь надо придумать ещё два условия: 5) x'''(0) = e*knot''(t1) => C = e*knot''(t1); 6) x'''(1) = pi*knot''(t0)/2 => 60A + 24B + 6C = pi*knot''(t0)/2; И так для каждой пары точек {p0, p1}, {p1, p2}, {p2, p3}, .. {p_n-1, pn} knot(t) - параметрически заданное уравнение узла. Выпишем матрицу A = 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1 0 5 4 3 2 1 0 0 0 1 0 0 0 60 24 6 0 0 0 Вектор b(искомые коэффициенты) = A B C D E F Вектор с(вектор правых частей) = p0 p1 knot'(t0) knot'(t1) e*knot''(t1) pi*knot''(t0)/2 В итоге Ab = c, чтобы найти вектор b найдем обратную матрицу A^(-1) = -2.667 2.667 -1.667 -1.000 -0.667 0.056 8.333 -8.333 5.333 3.000 2.333 -0.111 -6.667 6.667 -4.667 -2.000 -2.667 0.056 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000 В итоге получим b = M^(-1)*b;