fnzeros

Синтаксис

x = fnzeros(spline)
x = fnzeros(spline,I)

Описание

пример

x = fnzeros(spline) находит нули одномерного сплайна в его основном интервале. Нуль сплайна является или точкой или закрытым интервалом, на котором сплайн является нулем.

x = fnzeros(spline,I) находит нули в интервале I.

Примеры

свернуть все

Создайте и постройте кусочный линейный сплайн.

spline = spmak(augknt(1:7,2),[1,0,1,-1,0,0,1]);
figure
fnplt(spline)

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

x = fnzeros(spline)
x = 2×3

    2.0000    3.5000    5.0000
    2.0000    3.5000    6.0000

Постройте корни сплайна с помощью указывающих направо треугольников в левых конечных точках и указывающих налево треугольников в правильных конечных точках.

nz = size(x,2);
hold on
plot(x(1,:),zeros(1,nz),'r>',x(2,:),zeros(1,nz),'r<','MarkerSize',10)
hold off

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

spline = spmak(1:31,rand(1,25)-0.5); 
x = fnzeros(fnder(spline));

Постройте сплайн и его локальные экстремальные значения.

figure
fnplt(spline)
hold on
x = unique(x(:));
y = fnval(spline,x);
plot(x,y,'ro')
xlim([-Inf Inf])
hold off

Создайте и постройте прерывистый кусочный линейный сплайн.

 spline = spmak([0 0 1 1 2 2],[-1 1 -1 1]);
 figure
 fnplt(spline);

Найдите корни сплайна. Корни включают скачок через нуль в x = 1.

x = fnzeros(spline)
x = 2×3

    0.5000    1.0000    1.5000
    0.5000    1.0000    1.5000

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

свернуть все

Шлицуйте, заданные как структура.

Типы данных: struct

Интервал, чтобы найти нули в, заданными как числовой вектор с двумя элементами.

Выходные аргументы

свернуть все

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

Существует три различных типов интервалов:

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

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

  • Если конечные точки являются тем же самым и не совпадающие с узлом, то сплайн имеет нуль, пересекающийся в этой точке.

Алгоритмы

Чтобы найти корни сплайна, fnzeros сначала преобразовывает сплайн в B-форму. Функция затем выполняет некоторую предварительную обработку, чтобы обработать разрывы и затем использует алгоритм [1].

Ссылки

[1] Mørken, Кнут и Мартин Реймерс. "Безусловно конвергентный метод для вычислительных нулей сплайнов и полиномов". Математика Вычисления 76, № 258 (2007): 845-865.

Смотрите также

|

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

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