Вычисление 3D-сплайна в Matlab

#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 функции фактически представляет реальные независимые координаты.