Сплайны Curve Fitting Toolbox и сплайны MATLAB

Сплайны Curve Fitting Toolbox

Функции сплайна Curve Fitting Toolbox™ содержат версии существенного MATLAB® программы пакета B-сплайна (расширенный, чтобы обработать также сплайны с векторным знаком) как описано в Практическом Руководстве по Сплайнам, (Прикладная Математика. Научное Издание 27, Springer Verlag, Нью-Йорк (1978), xxiv + 392 пункта; исправленное издание (2001), xviii+346p), в дальнейшем именуемая PGS. Тулбокс дает возможность создавать и работать с функциями кусочного полинома.

Типичное использование, предполагаемое для этого тулбокса, включает конструкцию и последующее использование кусочно-полиномиальной аппроксимации. Эта конструкция включила бы подбор кривой данных, но существует широкий спектр возможных данных, которые могли быть подходящими. В самой простой ситуации каждому дают точки (t i,yi) и ищет функцию кусочного полинома f, который удовлетворяет f (t i) = y i, весь i, более или менее. Точная подгонка включила бы интерполяцию, аппроксимированная подходящая сила включают приближение наименьших квадратов или сплайн сглаживания. Но функция, которая будет аппроксимирована, может также быть описана большим количеством неявных способов, например, как решение дифференциального или интегрального уравнения. В таком случае данные имели бы форму (Af) (t i) с A некоторый дифференциальный оператор или оператор интеграла. С другой стороны, каждый может, хотят создать сплайновую кривую, точное местоположение которой менее важно, чем его полная форма. Наконец, во все это, каждый может искать функции больше чем одной переменной, такие как сплайны продукта тензора.

Заботу соблюдали, чтобы сделать эту работу максимально безболезненной и интуитивной. В частности, пользователь не должен волноваться о, как сплайны создаются или хранятся для дальнейшего использования, ни нуждаются в беспокойстве обычного пользователя о таких элементах как “пропуски” или “узлы” или “коэффициенты”. Достаточно знать, что каждая созданная функция является только другой переменной, которая свободно применима, как введено (где это необходимо), ко многим командам, включая все команды, начинающиеся с fn, который обозначает function. Время от времени может быть также полезно знать, что, внутренний к тулбоксу, сплайны хранятся в различных формах с командой fn2fm доступный, чтобы преобразовать между формами.

В настоящее время тулбокс поддерживает две главных формы для представления функций кусочного полинома, потому что каждый, как находили, превосходил другой в определенных общих ситуациях. B-форма особенно полезна во время конструкции сплайна, в то время как ppform более эффективна, когда функция кусочного полинома должна быть выполнена экстенсивно. Этими двумя формами является почти точно B-представление и представление стр, используемое в Практическом Руководстве по Сплайнам.

Но за эти годы функции сплайна Curve Fitting Toolbox пошли вне программ в Практическом Руководстве по Сплайнам. Тулбокс теперь поддерживает 'рассеянный, переводит' форму или stform, для того, чтобы обработать конструкцию и использование двумерных сплайнов тонкой пластины, и также два способа представлять рациональные сплайны, rBform и rpform, для того, чтобы обработать NURBS.

Сплайны могут быть очень эффективными для подбора кривой данных, потому что линейные системы, которые будут решены для этого, соединены, следовательно работа, необходимая для их решения, сделанного правильно, растет только линейно с количеством точек данных. В частности, средства разреженной матрицы MATLAB используются в функциях сплайна Curve Fitting Toolbox, когда это более эффективно, чем собственный решатель уравнения тулбокса, slvblk, который использует то, что некоторые линейные системы здесь являются четными почти диагональ блока.

Все полиномиальные команды конструкции сплайна оборудованы, чтобы произвести двумерный (или даже многомерный) функции кусочного полинома как продукты тензора одномерных функций, используемых здесь, и различный fn... команды также работают на эти многомерные функции.

Существуют различные примеры, все доступные через Браузер документации. Вас строго убеждают взглянуть на некоторых из них, или на splinetool, помочь вам работать со сплайнами.

Сплайны

Рассмотрите набор

S:=Πξ,kμ

из всех кусочных полиномов (с скалярным знаком) порядка k с пропусками ξ 1 < ... < ξ l + 1, что, для i = 2... l, может иметь скачок через ξi в его μi th производная, но не иметь никакого скачка там ни в какой производной более низкоуровневой. Этот набор является линейным пробелом, в том смысле, что любое скалярное кратное, функция в S находится снова в S, как сумма любых двух функций в S.

Соответственно, S содержит базис (на самом деле, бесконечно много основ), то есть, последовательность f 1..., fn так, чтобы каждый f в S мог быть записан исключительно в форме

f(x)=j=1nfj(x)aj,

для подходящих коэффициентов aj. Номер n, появляющийся вот, является размерностью линейного пробела S. Коэффициенты aj часто упоминаются как координаты f относительно этого базиса.

В частности, согласно Теореме Шеенберга Карри, наш пробел S имеет базис, состоящий из B-сплайнов, а именно, последовательность всех B-сплайнов формы B(·|tj,...,tj+k), j = 1... n, с последовательностью узла t получил из последовательности пропуска ξ и последовательность µ следующими условиями:

  • Имейте и ξ 1 и ξ, l + 1 происходит в t точно времена k

  • Для каждого i = 2:l, имейте ξi, происходят в t точно k – времена µi

  • Убедитесь, что последовательность не уменьшает и только содержит элементы от ξ

Отметьте соответствие между кратностью узла и гладкостью сплайна через тот узел. В частности, на уровне простого узла, который является узлом, который появляется точно однажды в последовательности узла, только (k – 1) производная Св. может быть прерывистой.

Сплайны MATLAB

MATLAB техническая вычислительная среда обеспечивает приближение сплайна через команду spline. Если названо в форме cs = spline(x,y), это возвращает ppform кубического сплайна с последовательностью пропуска x это принимает значение y(i) в x(i), весь i, и удовлетворяет граничному условию не-узла. Другими словами, команда   cs = spline(x,y) дает тот же результат как команду cs = csapi(x,y) доступный в Curve Fitting Toolbox шлицуют функции. Но только последний также работает когда xY опишите многомерные данные с координатной сеткой. В MATLAB интерполяция кубическим сплайном к многомерным данным с координатной сеткой обеспечивается командой interpn(x1,...,xd,v,y1,...,yd,'spline') который возвращает значения продукта тензора интерполяции кубический сплайн в сетке, заданной y1..., yd.

Далее, любой Curve Fitting Toolbox шлицует fn... команды могут быть применены к выходу spline(x,y) MATLAB команда, с простыми версиями команд сплайна Curve Fitting Toolbox fnval, ppmak, fnbrk доступный непосредственно в MATLAB, как команды ppvalmkppunmkpp, соответственно.

Ожидаемый фон

Функции сплайна Curve Fitting Toolbox, начатые как расширение среды MATLAB интереса для экспертов в приближении сплайна, чтобы помочь им в конструкции и тестировании новых методов приближения сплайна. Такие люди освоят материал в Практическом Руководстве по Сплайнам.

Однако основные команды для построения и использования приближений сплайна настраиваются, чтобы быть применимыми без большего знания, чем это берет, чтобы изучить то, что это означает, скажем, создавать interpolant или аппроксимирующую функцию наименьших квадратов к некоторым данным, или что это означает дифференцировать или интегрировать функцию.

Имея это в виду, существуют разделы, как Интерполяция кубическим сплайном, которые предназначаются даже для новичка, в то время как разделы, посвященные подробному примеру, как тот при построении Чебышевского сплайна или при построении и использовании продуктов тензора, предназначаются для пользователей, заинтересованных разработкой их собственных команд сплайна.

Векторная поддержка типов данных

Функции сплайна Curve Fitting Toolbox могут обработать сплайны с векторным знаком, i.e., шлицует, чьи значения лежат в Rd. Начиная с MATLAB, начатого со всего одним типом переменной, той из матрицы, существует даже сейчас некоторая неопределенность по поводу того, как иметь дело с векторами, i.e., списки чисел. MATLAB иногда хранит такой список в матрице со всего одной строкой, и другие времена в матрице со всего одним столбцом. Прежде всего такая матрица с 1 строкой называется вектором-строкой; во втором экземпляре такая матрица с 1 столбцом называется вектор-столбцом. Так или иначе это просто различные пути к хранению векторов, не различных видов векторов.

В этом тулбоксе, векторах, i.e., списки чисел, может также закончиться сохраненный в матрице с 1 строкой или в матрице с 1 столбцом, но со следующими соглашениями.

Точка в Rd, т.е. d-вектор, всегда хранится как вектор-столбец. В частности, если вы хотите предоставить n- список d- векторы к одной из команд, вы, как ожидают, предоставите тот список как n столбцы матрицы размера [d,n].

В то время как другие списки чисел (e.g., последовательность узла или последовательность пропуска), может храниться внутренне как векторы-строки, можно предоставить такие списки как вам нравится как вектор-строка или вектор-столбец.

Соглашения о присвоении имен функции сплайна

Большинство команд сплайна в этом тулбоксе имеет имена, которые следуют за одним из следующих шаблонов:

cs... команды создают кубические сплайны (в ppform)

sp... команды создают сплайны в B-форме

fn... команды работают с функциями сплайна

..2... команды преобразуют что-то

..api команды создают приближение интерполяцией

..aps команды создают приближение путем сглаживания

..ap2 команды создают приближение наименьших квадратов

...knt построение команд (часть) конкретная последовательность узла

...dem команды являются примерами.

Аргументы для функций сплайна Curve Fitting Toolbox

Для простоты использования большинство функций сплайна Curve Fitting Toolbox имеет параметры по умолчанию. В ссылке под Синтаксисом, мы обычно первый список функция со всеми необходимыми входными параметрами и затем со всеми возможными входными параметрами. Когда существует больше чем один дополнительный аргумент, затем, иногда, но не всегда, их точный порядок является несущественным. Когда их порядок действительно имеет значение, необходимо задать каждый дополнительный аргумент, предшествующий одному (s), вы интересуетесь. В этой ситуации можно задать значение по умолчанию для дополнительного аргумента при помощи [] (пустая матрица) как вход для него. Описание на странице с описанием говорит вам значение по умолчанию для каждого дополнительного входного параметра.

Как в MATLAB, только выходные аргументы, явным образом заданные, возвращены в пользователя.

Список благодарностей

MathWorks® хотел бы подтвердить вклады Карла де Бора к функциям сплайна Curve Fitting Toolbox. Профессор де Бор создал Сплайн Toolbox™ от его первого релиза до Версии 3.3.4 (2008).

Профессор де Бор получил Приз Джона фон Неймана в 1 996 и Национальная Медаль в Науке в 2 003. Он - член и американской Академии Искусств и Наук и Национальной академии наук. Он - автор Практического Руководства по Сплайнам (Спрингер, 2001).

Некоторые соглашения о присвоении имен функции сплайна являются результатом обсуждения с Йоргом Петерсом, затем аспирантом в Информатике в Висконсинском университете в Мадисоне.

Для просмотра документации необходимо авторизоваться на сайте