fnzeros

Описание

пример

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

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

Примеры

свернуть все

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

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

Figure contains an axes. The axes contains an object of type line.

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

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

Figure contains an axes. The axes contains 3 objects of type line.

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

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

Figure contains an axes. The axes contains 2 objects of type line.

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

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

Figure contains an axes. The axes contains an object of type line.

Найдите корни сплайна. Корни включают скачок через нуль в 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