exponenta event banner

Построение и работа со сплайнами stform

Введение в stform

Многомерная функциональная форма, совершенно отличная от тензорно-продуктивной конструкции, представляет собой рассеянную трансляционную форму, или stform для краткости. Как и предполагает название, оно использует произвольные или рассеянные переводы (· -cj) одной фиксированной функции start, в дополнение к некоторым многочленам. В явном виде такая форма описывает функцию

f (x) =∑j=1n−kψ (x cj) aj + p (x)

в терминах базисной функции, последовательности (cj) участков, называемых центрами, и соответствующей последовательности (aj) n коэффициентов, с конечными k коэффициентами, an-k + 1,..., an, задействованными в полиномиальной части, p.

Если базисная функция радиально симметрична, то это означает, что start( x) зависит только от евклидовой длины | x | её аргумента, x, startтогда называется радиальной базисной функцией, и, соответственно, f затем часто называется RBF.

В настоящее время инструментарий работает только с одним видом структуры, а именно двумерным тонколистовым сплайном и его первыми частными производными. Для тонколистового сплайна базисной функцией является (x) = (| x | 2), с (t) = tlogt, т.е. радиальной базисной функцией. Его полиномиальная часть является линейным многочленом, то есть p (x) = x (1) an - 2 + x (2) an - 1 + an. Первая частная производная по отношению к своему первому аргументу использует, соответственно, базисную функцию (x) = (| x | 2), с (t) = (D1t)· (logt + 1) и D1t = D1t (x) = 2x (1), а p (x) = an.

Конструкция и свойства платформы

Функция в stform может быть собрана из ее центральной последовательности centers и его последовательность коэффициентов coefs командой

f = stmak(centers, coefs, type);

со строкой type один из 'tp00', 'tp10', 'tp01'для указания, соответственно, шлица тонкой пластины, первой части шлица тонкой пластины относительно первого аргумента и первой части шлица тонкой пластины относительно второго аргумента. Есть еще один выбор, 'tp'; он обозначает шлиц тонкой пластины без какой-либо полиномиальной части и, вероятно, будет использоваться только при построении шлица тонкой пластины, как в tpaps.

Функция f в stform линейно зависит от её коэффициентов, что означает, что

f (x) =∑j=1nψj (x) aj

с, или трансляцией базисной функции, или с некоторым многочленом. Предположим, что вы хотели определить эти коэффициенты aj так, чтобы функция f соответствовала предписанным значениям в предписанных участках xi. Тогда вам бы понадобилась матрица словосочетания (startj (xi)). Эту матрицу можно получить с помощью командыstcol(centers,x,type). Фактически, потому что stform имеет aj в качестве j-го столбца, coefs(:,j), из его массива коэффициентов, стоит отметить, что stcol может также обеспечивать транспонирование матрицы коллокации. Таким образом, команда

values = coefs*stcol(centers,x,type,'tr');

будет предоставлять значения в записях x первой функции, указанной centers и type.

Стформа привлекательна тем, что, в отличие от кусочных полиномиальных форм, её сложность одинакова в любом числе переменных. Это довольно просто, тем не менее, из-за полной свободы в выборе центров, очень гибкой и адаптируемой.

С отрицательной стороны, наиболее привлекательные варианты для радиальной базисной функции совместно с тонколистовым сплайном, что оценка в любом месте включает все коэффициенты. Например, печать скалярного тонколистового сплайна с помощью fnplt включает в себя оценку на сетке участков 51 на 51, нетривиальную задачу, когда существует 1000 коэффициентов или более. Ситуация хуже, когда требуется определить эти коэффициенты 1000 так, чтобы получить структуру функции, которая соответствует значениям функций в 1000 узлах данных, так как это требует решения полной линейной системы порядка 1000, задача, требующая O (10 ^ 9) flops, если выполняется прямым методом. Только построение матрицы коллокации для этой линейной системы (поstcol) принимает O (10 ^ 6) флопов.

Команда tpaps, который конструирует тонколистовые сплайновые интерполяторы и аппроксиманты, использует итеративные методы, когда существует более 728 точек данных, но сходимость такой итерации может быть медленной.

Работа со стформой

После построения аппроксимирующего или интерполирующего тонколистового сплайна st с помощью tpaps (или непосредственно через stmak), можно использовать следующие команды:

  • fnbrk для получения его частей или изменения его базового интервала,

  • fnval чтобы оценить его

  • fnplt для построения графика

  • fnder для построения двух первых частных производных, но не производных более высокого порядка, так как они становятся бесконечными в центрах.

    Это только одно указание на то, что стформа сильно отличается по своей природе от других форм в этой панели инструментов, следовательно, другие fn... команды по большому счету не работают со stforms. Например, нет смысла использовать fnjmp, и fnmin или fnzeros работают только для одномерных функций. Также нет смысла использовать fnint для функции в stform, поскольку такие функции не могут быть интегрированы в закрытую форму.

  • Команда Ast = fncmb(st,A) может использоваться на st, при условии A является чем-то, что может быть применено к значениям функции, описанной st. Например, A может быть 'sin', в случае чего Ast - звездочка функции, коэффициенты которой являются синусом коэффициентов st. В действительности, Ast описывает функцию, полученную при составлении A с st. Но из-за сингулярностей в производных высокого порядка шлица тонкой пластины, кажется, мало смысла делать fndir или fntlr применимо к такому st.