Я пытаюсь реализовать зажатый кубический сплайн с нулевым наклоном (плоская экстраполяция) на граничных узлах, но я не могу получить желаемые результаты.Забитые кубические сплайны с плоской экстраполяцией
Для установки экземпляра:
x = [3 4 7 9];
y = [2 1 2 0.5];
можно использовать функцию CSAPE для получения кусочно-полиномиальной
pp = csape(x,y,'variational');
Далее, оценивающие п.п. в диапазоне [0-10] выходы,
xx = 0:0.1:10;
yy =ppval(pp,xx);
plot(xx,yy)
Однако этот метод не обеспечивает плоскую экстраполяцию вне диапазона [3-9] (т.е. для x < 3 все значения для y должны быть 2, а для x> 9 все значения для y должны быть равны 0,5)
Есть ли способ достичь желаемого результата?
Edit: Непрерывность на границе узла должны быть сохранены
Спасибо RPM. Это очень полезно. Действительно, мне нужно иметь нулевой градиент за пределами границ, как и во втором сюжете. Еще один вопрос: замените ли значения значений вне границ на y (1) и y (length (y)), сохраняя непрерывность функции на граничных узлах? – sets
Ну, просто глядя на сюжет, вы можете видеть, что 'y' непрерывна, но я не думаю, что' y'' будет гладкой. Если вы хотите, чтобы они были гладкими, вы могли бы заполнить свои массивы (добавьте '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''' '' '' '' '' '' '' '' '' '' '' '' ',' Я сделаю редактирование на этот счет. – RPM