fntlr

Коэффициенты Тейлора

Синтаксис

taylor = fntlr(f,dorder,x)

Описание

taylor = fntlr(f,dorder,x) возвращает ненормализованные коэффициенты Тейлора до заданного порядка dorder и при заданных x, функции, описанной в f .

Для одномерной функции и скаляра x, это вектор

T(f,dorder,x):=[f(x);Df(x);...;Dдортуар1f(x)]

Если, в целом, функция в f является d-значен с d>1 или даже prod(d)>1 и/или m-variate для некоторых m>1, затем dorder ожидается, что это будет m-вектор положительных целых чисел, x ожидается, что это будет матрица с m строки, и, в этом случае, выход имеет размер [prod(d)*prod(dorder),size(x,2)], с его j-м столбцом, содержащим

T(f,dorder,x(:,j))(i1,...,im)=D1i11...Dmim1f(x(:,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 до в пределах округления.

См. также

|