Коэффициенты Тейлора
taylor = fntlr(f,dorder,x)
taylor = fntlr(f,dorder,x)
возвращает ненормализованные коэффициенты Тейлора до заданного порядка dorder
и при заданных x
, функции, описанной в f
.
Для одномерной функции и скаляра x
, это вектор
Если, в целом, функция в f
является d
-значен с d>1
или даже prod(d)>1
и/или m
-variate для некоторых m>1
, затем dorder
ожидается, что это будет m
-вектор положительных целых чисел, x
ожидается, что это будет матрица с m
строки, и, в этом случае, выход имеет размер [prod(d)*prod(dorder),size(x,2)]
, с его j-м столбцом, содержащим
для i1=1:dorder(1)
..., im=1:dorder(m)
. Здесь Dif является частной производной f относительно его i-го аргумента.
Если f
содержит одномерную функцию и x
является скаляром или матрицей с 1 строкой, затем fntlr(f,3,x)
создает тот же выход, что и операторы
df = fnder(f); [fnval(f,x); fnval(df,x); fnval(fnder(df),x)];
Как более сложный пример, посмотрите на векторы Тейлора порядка 3 в 21 с равными интервалами точках для рационального сплайна, график которого является модулем окружностью:
ci = rsmak('circle'); in = fnbrk(ci,'interv'); t = linspace(in(1),in(2),21); t(end)=[]; v = fntlr(ci,3,t);
Строим график ci
наряду с точками v(1:2,:)
чтобы убедиться, что это действительно точки на модуль круге.
fnplt(ci), hold on, plot(v(1,:),v(2,:),'o')
Далее, чтобы проверить, что v(3:4,j)
- вектор тангенс окружности в точке v(1:2,j)
, мы используем MATLAB®
quiver
команда, чтобы добавить соответствующие стрелы к нашему графику:
quiver(v(1,:),v(2,:),v(3,:),v(4,:))
Наконец, как насчет v(5:6,:)
? Это вторые производные, и мы добавляем соответствующие стрелы следующими quiver
команда, таким образом заканчивая Первую и Вторую производные Рационального сплайна, Дающего Круг.
quiver(v(1,:),v(2,:),v(5,:),v(6,:)), axis equal, hold off
Первая и вторая производные рационального сплайна, дающие круг
Теперь, наша кривая является кругом, вы могли ожидать, что 2-ые производные стрелы будет указывать быть на центр этого круга, и это было бы действительно так, если бы функция в ci
использовала arclength в качестве своей независимой переменной. Поскольку используемый параметр не является arclength, мы используем формулу, приведенную в Примере: B-форма Сплайн Приближение к кругу, чтобы вычислить кривизну кривой, заданную ci
в этих выбранных точках. Для удобства сравнения переключаемся на используемые там переменные и затем просто используем команды оттуда.
dspt = v(3:4,:); ddspt = v(5:6,:); kappa = abs(dspt(1,:).*ddspt(2,:)-dspt(2,:).*ddspt(1,:))./... (sum(dspt.^2)).^(3/2); max(abs(kappa-1)) ans = 2.2204e-016
Численный ответ успокаивает: во всех проверенных точках кривизна составляет от 1 до в пределах округления.