#matlab #spline #evaluate
#matlab #сплайн #оценить
Вопрос:
Я пытаюсь найти решение этой проблемы с прошлой недели и до сих пор не получил результата.
У меня есть 3d-сплайн в matlab, обязательно определенный (я не могу изменить представление) с помощью команды spap2, и мне нужно оценить сам сплайн с учетом двух координат (скажем, x и y). Я пытался использовать команду fnval с разными синтаксисами, но безуспешно.
Пример: я хотел бы получить z при x = 26, y = 120 с помощью сплайна, определенного с помощью
x=[13 56 90 67 89 43];
y=[112 156 136 144 144 128];
z=[63 95 48 78 77 15];
sp = spap2(4,4,1:length(x),[x; y; z]);
Кто-нибудь может мне помочь?
Большое вам спасибо!
Комментарии:
1. Я раньше не использовал эту функцию, но вы уверены, что правильно используете spap2? кажется, вам нужно присвоить ему значение узла в качестве первого параметра, чего вы не делаете. Как только он у вас будет, вы должны оценить его с помощью fnval(sp, …), но я думаю, что проблема сейчас в позвоночнике… Проверьте это руководство: radio.feld.cvut.cz/matlab/toolbox/splines/tutor9.html
2. Да, в первом параметре вы можете указать количество полиномиальных фрагментов вместо последовательности узлов (сама программа выбирает последовательность узлов), поэтому я думаю, что проблема не в сплайне (но я могу ошибаться).). В любом случае, большое вам спасибо!
Ответ №1:
Сплайн — это приближение. Ему вообще не нужно проходить через координаты (x = 26, y = 120). Нет непосредственного определения того, какое значение z было бы разумным для этих значений (x, y).
Ваши значения x (независимые значения) 1:length(x)
, а выходные данные (зависимые значения) [x;y;z]
.
Например fnval(sp, 1.5)
, дает разумный результат.
Комментарии:
1. Спасибо, я знал, что не было немедленного определения z с заданными значениями (x, y), но я искал решение с учетом значений (x, y), которые на самом деле являются зависимыми значениями. Я не акцентировал внимание на том факте, что параметр x функции фактически представляет реальные независимые координаты.