Что означает оценка базовой функции сплайна? - PullRequest
0 голосов
/ 25 мая 2019

Я пытаюсь понять рабочий процесс для реализации базисной функции bspline.

tauf    Vd
0        0
0.048   502.8944826
0.072   743.5034753
0.096   791.2514106
0.12    825.3244319
0.144   858.1731717
0.168   889.1381766
0.192   922.4214306
0.216   952.9989296
0.24    982.8650001

Результат basisValueMat_f:

1.000   0.000   0.000   0.000   0.000   0.000
0.000   0.076   0.551   0.364   0.009   0.000
0.000   0.013   0.393   0.533   0.062   0.000
0.000   0.000   0.234   0.596   0.170   0.000
0.000   0.000   0.121   0.547   0.331   0.001
0.000   0.000   0.057   0.420   0.496   0.027
0.000   0.000   0.023   0.273   0.591   0.114
0.000   0.000   0.007   0.140   0.570   0.283
0.000   0.000   0.001   0.044   0.408   0.547
0.000   0.000   0.000   0.001   0.085   0.914
0.000   0.000   0.000   0.000   0.000   1.000

Графическое представление:

Chart

Код:

norder = 4;    % degree - 1
nbreaks = 2;
nbasis = nbreaks + norder - 2;
breaks = linspace(0,taufmax,nbreaks)';
wtaubasis = create_bspline_basis([0,max(breaks)], nbasis, norder, breaks);
basisValueMat_f = full(eval_basis(wtaubasis, tauf)); 

Пожалуйста, помогите мне понять, что делают функции create_bspline_basis и eval_basis. Мне нужно иметь математическую интерпретацию этой информации.

1 Ответ

2 голосов
/ 25 мая 2019

Основные функции подобны «строительным блокам» для аппроксимации функций в интервале.Как видно из графика, несколько базовых функций используются для аппроксимации функции источника.Чем сложнее исходная функция, тем больше базисных функций потребуется для ее аппроксимации с определенной ошибкой.Посмотрите на эту анимацию, объясняющую ряд Фурье прямоугольной волны:

enter image description here

Преобразование Фурье ( FT; показанный на анимации выше как синий * S(f)) показывает ту же информацию, что и "срез" вашего графика:

enter image description here

Разница в том, что в примере FT из Википедии величины базисных функций (которые являются синусами и / или косинусами) постоянны на протяжении всего интервала, но в вашем примере со сплайн-интерполяцией величины базисных функций (которые являются полиномами)изменяются плавно на протяжении всего интервала.

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

...