Аналитически

По определению производная функции

. (6.1)

Переходя в (6.1) от бесконечно малых к конечным разностям, получаем приближенную формулу численного дифференцирования

. (6.2)

Формула (6.2) позволяет построить простой вычислительный алгоритм:

1) Задать значение точки, в которой вычисляется производная.

2) Задать значение приращение .

3) Вычислить производную в соответствие с формулой (6.2).

Замена бесконечно-малых приращений конечными является причиной возникновения ошибки. Для оценки ее величины разложим функцию в точке в ряд Тэйлора

(6.3)

Подставив (6.3) в (6.4) и приведя подобные члены, получим

. (6.4)

Из (6.4) видно, что все члены начиная с со второго, определяют отличие численного значения производной от ее точного значения. Основной член погрешности равен , т.к. данный член ~ , говорят, что формула (6.2) имеет первый порядок точности по .

Можно вычислять производную, используя симметричную разностную схему:

. (6.5)

Для оценки точности данной формулы необходимо удержать в разложении в ряд Тэйлора первые четыре члена:

. (6.6)

Раскрыв в (6.6) скобки и приведя подобные, получаем:

. (6.7)

Из (6.7) видно, что основной член погрешности равен , т.к. данный член ~ , говорят, что формула (6.5) имеет второй порядок точности по .

Пример 6.1. Численное дифференцирование функции в пакете MATLAB:

 

>> f=inline('sin(0.01*x.^2)');% задание дифференцируемой

% функции

>> dx=0.01; % шаг изменения координатной сетки

>> x=0:dx:10*pi; % вычисление координат узлов

>> yf=feval(f,x);% вычисление значений функции в узлах

% выполнение процедуры численного дифференцирования

>> N=length(x);

>> m=1:N-1;

>> df(m)=yf(m+1)-yf(m)

>> plot(df)% визуализация производной функции (рис. 6.1)

>> f1=inline('0.02*x.*cos(0.01*x.^2)');% задание функции,

% описывающей первую

% производную

>> ya=feval(f1,x);% вычисление значений первой производной по

% аналитической формуле

>> plot(x(m),abs(yf(m)-ya(m));% визуализация разности между

% численными и аналитическими

% значениями производной (рис. 6.2)

 

Рис. 6.1

Рис. 6.2

Аналогичным образом поступают при вычислении производных высших порядков.

Отметим, что для аппроксимации производных конечными разностями в пакете MATLAB имеется функция diff( ).

Синтаксис функции:

 

>> diff(X)% возвращает конечные разности, вычисленные по

% смежным элементам вектора Х длина вектора,

% возвращаемого функцией diff(X) на единицу

% меньше длины вектора Х, если X - матрица

%, то возвращает матрицу, содержащую

% конечные разности, вычисленные по каждому столбцу

 

>> diff(X,n) % возвращает конечные разности n-го порядка

>> diff(X,n,dim)% возвращает конечные разности n-го порядка по

% столбцам (dim=1) или строкам матрицы

 








Дата добавления: 2015-08-21; просмотров: 806;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.