splinetool

Экспериментируйте с некоторыми сплайнами приближения методами

Синтаксис

Описание

splinetool графический пользовательский интерфейс (GUI), начальное меню которого предоставляет вам различные варианты выбора данных, включая опцию импорта некоторых данных из рабочей области.

пример

splinetool(x,y) поднимает графический интерфейс пользователя с заданными данными x и y, которые являются векторами той же длины.

Примеры

свернуть все

Запустите этот код, чтобы запустить графический интерфейс пользователя splinetool и экспериментировать с зашумленными данными.

x = linspace(1,pi,101); 
y = cos(x)+(rand(size(x))-.5)/10;
splinetool(x,y)

Цель этого примера состоит в том, чтобы исследовать различные граничные условия, доступные с кубической сплайн интерполяцией:

  1. Тип splinetool в командной строке.

  2. Выберите Импорт собственных данных на первом экране и примите функцию по умолчанию. Вы увидите следующее отображение.

    Показанное приближение по умолчанию является кубической сплайн интерполяцией с граничным условием не узла.

    Векторная x сайтов данных linspace(0,2*pi,31) и значения cos(x). Это отличается от простого предоставления вектора y значений, в которых функция косинуса явно записана как базовая функция. Поэтому ошибка, показанная в графике, является ошибкой в сплайне как приближение к косинусу, а не как приближение к заданным значениям. Заметьте полученную относительно большую ошибку, около 5e-5, рядом с конечными точками.

  3. Для сравнения выполните следующие шаги:

    • Нажмите New в списке приближений.

    • В Приближение методе выберите complete из списка Граничных условий.

    • Поскольку первой производной функции косинуса является синус, измените значения первой производной на их известные значения нуля как в левом конце, так и в правом конце.

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

    Будьте впечатлены улучшением ошибки, которая только о 5e-6.

  4. Для последующего сравнения выполните следующие шаги:

    • Нажмите New в списке приближений.

    • В Приближение методе выберите natural из списка Граничных условий.

    Обратите внимание на ухудшение приближения около концов, ошибка около 2e-3, что намного хуже, чем с граничными условиями и условиями отсутствия узла.

  5. Для окончательного сравнения выполните следующие шаги:

    • Нажмите New в списке приближений.

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

    Обратите внимание на резкое улучшение приближения, к ошибке около 5e-6, особенно по сравнению с естественными граничными условиями.

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

  1. Тип splinetool в командной строке или если графический интерфейс пользователя уже запущен, щелкните Файл > Перезапустить.

  2. Выберите данные по дрэг-рейсингу Ричарда Тапиа. Эти данные показывают расстояние, пройденное машиной с перетаскиванием, как функцию времени. Окно сообщения просит вас оценить начальное ускорение путем установки начальной скорости равной нулю. Нажмите кнопку OK, или используйте Пространство (Space) или Ввод (Enter), чтобы удалить окно сообщения.

  3. В Приближение методе выберите complete из списка Граничных условий.

  4. Измените начальную скорость путем изменения первой производной в левой конечной точке на нуль.

  5. Проверьте значение начального ускорения, которое задается значением второй производной в левой конечной точке. Можно переключить между первой производной и второй производной в этой конечной точке, нажав на левую конечную кнопку. Значение второй производной должно быть около 187 в выбранных модулях измерения. Выберите View > Show 2nd Derivative, чтобы увидеть это графически.

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

    Результаты этой процедуры показаны ниже.

Этот пример побуждает вас разместить пять внутренних узлов таким образом, чтобы методом наименьших квадратов, приближения к этим данным кубическими сплайнами, была абсолютная ошибка не больше .04 везде:

  1. Тип splinetool в командной строке или если графический интерфейс пользователя уже запущен, щелкните Файл > Перезапустить.

  2. Выберите данные о нагревании титана.

  3. Выберите Приближение наименьших квадратов в качестве Приближения метода.

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

  5. Щелкните правой кнопкой мыши график данных и выберите Добавить узел. Это поднимает перекрестие, чтобы вы двигались с мышью. Его точное горизонтальное расположение показано в поле edit под списком узлов. Клик мыши помещает новый узел в текущее положение перекрестия. Одной из возможных стратегий является размещение дополнительного узла в месте максимальной абсолютной ошибки, как показано на вспомогательном графе ниже графика данных.

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

  6. Можно также запросить приближение, используя шесть полиномиальных частей, что соответствует пяти внутренним узлам. Для этого введите 6 как # pieces в данных, breaks/knots, weights.

  7. После того, как у вас есть пять узлов интерьера, постарайтесь сделать ошибку еще меньше, перемещая узлы. Для этого выберите узел, который вы хотите переместить, нажав на его вертикальную линию в графике, затем используйте управление интерфейсом ниже Узлы в данных, разрывы/узлы, веса и наблюдайте, как изменяется ошибка с перемещением узла. Можно также использовать поле edit, чтобы перезаписать текущее расположение узла. Можно также попробовать настроить, который перераспределяет текущую последовательность узлов.

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

Этот пример экспериментирует с сглаживанием сплайнов:

  1. Тип splinetool в командной строке или, если графический интерфейс пользователя уже запущен, щелкните Файл > Перезапустить.

  2. Выберите данные о нагревании титана.

  3. В методе приближения выберите «Сглаживание сплайна».

  4. Варьируйте Параметр между 0 и 1, который изменяет приближение от прямолинейного приближения методом наименьших квадратов к «естественной» кубической сплайн интерполяции.

  5. Варьируйте допуск от 0 до некоторого большого значения, даже inf. Приближение изменяется от наилучшей возможной, «естественной» кубической сплайн интерполяции, до прямолинейной аппроксимации методом наименьших квадратов.

  6. Когда вы увеличиваете значение параметров или уменьшаете значение Допуска, ошибка уменьшается. Однако меньшая ошибка соответствует большему количеству шероховатостей, измеряемому размером второй производной. Чтобы увидеть это, выберите View > Показать 2-ю производную и измените значения параметров и допусков еще раз.

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

    • Установите допуск на 0.2. Заметьте, что приближение не проходит через самую высокую точку данных. Чтобы увидеть большую ошибку на этом сайте, выберите View > Error.

    • Чтобы заставить сглаживающий сплайн пройти через эту точку, выберите Error Weights from Data, breaks/knots, weights.

    • Щелкните на самой высокой точке данных в графике и заметьте его сайт, который указан в Сайтах и значениях.

    • Используйте поле edit под списком весов, чтобы изменить текущий вес на 1000. Заметьте, насколько близко сглаживающий сплайн теперь приходит к той самой высокой точке данных и уменьшению ошибки на этом сайте. Включите сетку по меню «Инструменты» > «Сетка», чтобы легче найти ошибку на этом сайте.

  8. Этот этап модифицирует веса в измерении шероховатости, чтобы обеспечить более точное, но менее плавное приближение в области пика, настаивая при этом на более плавном, следовательно, менее точном приближении в сторону от области пика.

    • Выберите Переходы в Весе Шероховатости из Данных, перерывы/узлы, веса.

    • Выберите View > Показать 2-ю производную

    • Выберите любую точку данных слева от пика в данных.

    • Установите для перехода на выбранном сайте значение -1 путем изменения его значения в поле редактирования под ним. Поскольку вес шероховатости для самого первого интервала площадки равен 1, вы только что установили вес шероховатости справа от подсвеченного участка равным 0. Соответственно, вторая производная стала относительно маленькой слева от этого сайта.

    • Выберите любую точку данных справа от пика в данных.

    • Установите для перехода по выбранному сайту значение 1. Поскольку вес шероховатости слева от подсвеченного участка равен 0, вы только что установили вес шероховатости справа от подсвеченного участка равным 1. Соответственно, вторая производная стала относительно маленькой справа от этого сайта. Полный эффект является очень гладкой, но не очень точной подгонкой от пика, в то время как в области пика сплайн подгонка намного лучше, но вторая производная намного больше, как показано на вспомогательном графике ниже.

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

Входные параметры

свернуть все

Сайты данных, заданные как вектор той же длины y. Сайты данных не должны быть различными или упорядоченными, но должны быть по крайней мере два различных сайта.

Значения данных, заданные как вектор той же длины x.

Совет

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

Approximation Methods

Методы приближения и опции, поддерживаемые графический интерфейс пользователя, показаны ниже.

Метод приближения

Опция

Кубическая интерполяция сплайна

Отрегулируйте тип и значения граничных условий.

Сглаживание сплайна

Выберите между кубическими (порядок 4) и квинтовыми (порядок 6) сплайнами. Отрегулируйте значение параметра допуска и/или сглаживания. Отрегулируйте веса в измерениях ошибок и шероховатости.

Метод наименьших квадратов Приближения

Варьируйте порядок от 1 до 14. Порядок по умолчанию является 4, что дает кубические аппроксимации сплайнов. Измените количество полиномиальных частей. Добавьте и переместите узлы, чтобы улучшить подгонку. Отрегулируйте веса в измерении ошибки.

Сплайн интерполяция

Варьируйте порядок от 2 до 14. Порядок по умолчанию является 4, что дает кубические сплайн интерполяции. Если поставляемые узлы по умолчанию не удовлетворительны, можно переместить их, чтобы изменить подгонку.

Graphs

Можно сгенерировать и сравнить несколько приближений к одним и тем же данным. Одно из приближений всегда помечается как «текущее» с помощью более толстой ширины линии. Доступны следующие отображения:

  • График данных. Он показывает:

    • Данные

    • Приближения, выбранные для отображения в Списке приближений

    • Текущая последовательность узлов или текущая последовательность пропусков

  • Вспомогательный график (если он просматривается) для текущего приближения. Вы можете обратиться к этому графику, выбрав любой из элементов в меню View. В нем показано одно из следующего:

    • Первая производная

    • Вторая производная

    • Ошибка

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

Menu Options

Можно аннотировать и распечатать графики с помощью меню « Файла» > «Печать на фигуру».

Можно экспортировать данные и приближения в рабочую область для дальнейшего использования или анализа с помощью меню Файл > Экспорт данных и Файл > Экспорт Сплайн, соответственно.

Можно создать, с помощью меню Файл > Сгенерировать код, файл функции, который можно использовать, чтобы сгенерировать, из исходных данных, любой или все графики, показанные в настоящее время. Этот файл также предоставляет вам письменную запись команд, используемых для генерации текущих графиков (графиков ) (ов).

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

Можно добавить, удалить или переместить данные, узлы и пропуски, щелкнув правой кнопкой мыши в графике или выбрав соответствующий элемент в меню Править (Edit).

Можно переключить сетку или легенду в графики (графики ) (ах) с помощью Инструментов меню.

Представлено до R2006a