Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Численное дифференцирование с заданной точностью




 

Алгоритм численного дифференцирования с заданной точностью построим на последовательном делении в точке х текущего приращения аргумента =h пополам, и вычислении отношения D(x,h)= :

1. зададим приращение аргумента h, его значение х, точность вычисления eps и вычислим начальное значение функции y=D(x,h);

2. сохраним старое значение функции ys, уменьшими приращение аргумента вдвое и вычислим новое значение y=D(x,h/2);

3. если abs(y-ys) > eps, то повторим процесс, возвратившись к пункту 2, а иначе – выведем результат.

 

Составим фрагмент программы:

const eps=1.0e-6;

type fun: function(x:real):real; {$F+}

function f(x:real):real;

begin f:=exp(x) end;

function Y1(x: real; ff: fun):real;

function D(x,h:real):real;

begin D:=0.5*(ff(x+h)-ff(x-h))/h end;

var y,ys:real; k,kmax: integer;

begin

h:=0.1; y:=D(x,h);

k:=1; kmax:=100;

yy:=ff(x);

repeat

Inc(k);

if (k >kmax) then begin writeln(‘Error!’); Exit end

ys:=y; h:=0.5*h; y:=D(x,h);

until abs(y-ys) < eps;

Y1:=y

end;

 

Приведем результаты расчетов:

k h Y1 abs(Y1 – )

1 0.0500000000 2.71941458750 0.0011327590

2 0.0250000000 2.71856499170 0.0002831633

3 0.0125000000 2.71835261770 0.0000707892

4 0.0062500000 2.71829952570 0.0000176973

5 0.0031250000 2.71828625290 0.0000044245

6 0.0015625000 2.71828293450 0.0000011061

7 0.0007812500 2.71828293450 0.0000002760

8 0.0003906250 2.71828210450 0.0000000711

9 0.0001953125 2.71828189960 0.0000000199

10 0.0000976563 2.71828184840 0.0000000106

11 0.0000488281 2.71828185770 0.0000000292

12 0.0000244141 2.71828182040 0.0000000080

13 0.0000122070 2.71828174590 0.0000000825

14 0.0000061035 2.71828144790 0.0000003806

15 0.0000030518 2.71828234200 0.0000005135

16 0.0000015259 2.71828293800 0.0000011095

17 0.0000007629 2.71827936170 0.0000024667

18 0.0000003815 2.71827697750 0.0000048509

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных