Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Mathcad - ЛР5

.pdf
Скачиваний:
70
Добавлен:
24.02.2016
Размер:
326.45 Кб
Скачать

Вывод: Метод Симпсона в данном случае оказался намного эффективнее метода трапеций, т.к. потребовал в 39 раз меньшее количество узлов. В обоих случаях

вычисления интегралов численными методами заданная точность была достигнута, т.к. требуемое количество отрезков разбиения вычисляется на основе

наиболее пессимистической оценки динамики сходимости ряда к точному значению. Значение определенного интеграла, вычисленное встроенными средствами MathCAD, совпало в пределах заданной точности с результатами расчета методами трапеций и Симпсона, что подтерждает корректную постановку численного эксперимента.

Задача 5.6. Рассматриваются значения функции

y = f (x) (из задания 5.1) на отрезке [a,b]

в равноотстоящих узлах a = x

0

< x < ... < x

n

= b ,

x

i

= a + ih , y

i

= f (x

) , h =

b a

.

 

 

1

 

 

 

i

 

n

 

 

 

 

 

 

 

 

 

 

 

Пользуясь формулами численного дифференцирования, найти приближенное значение производных (первого и второго порядков) функции в заданных узлах yi′ ≈ f (xi ) ,

yi′′ ≈ f ′′(xi ) . Вывести на один чертеж точечный график полученных приближенных

значений первой и второй производной в узлах и непрерывный график каждой производной, рассчитанной аналитическим путем. Графически оценить абсолютные погрешности, возникающие при численном дифференцировании. Решить данную задачу для трех значений n = 10,15,20. Сделать выводы.

Теоретический материал:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y = f (x)

 

 

[a,b]

a = x

0

< x

 

< ... < x

n

= b

x

i

= a + ih

 

y

i

= f (x

)

h =

b a

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y′ ≈ f (x

)

 

 

y′′ ≈ f

′′(x

)

 

 

 

 

 

 

 

 

 

 

 

 

h2

i

 

 

 

 

i

 

 

 

 

 

 

i

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yi+1 yi1

 

 

 

 

 

 

 

i = 1..n 1

 

 

 

 

f (x ) y

=

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

i

 

 

 

 

 

2h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f ′′(x

i

) y

′′

=

 

yi1 2yi + yi+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (x0 ) y0

=

 

3y0 + 4y1 y2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f ′′(x0 ) y0′′ =

 

 

2y0 5y1 + 4y

2 y3

 

 

 

 

 

 

 

 

 

 

 

 

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f (x

n

) y

=

3yn 4yn1 + yn2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

2h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f ′′(x

n

 

) y′′ =

2yn 5yn1 + 4yn2 yn3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рассматриваются значения функции

y = f (x) на отрезке [a,b]

в равноотстоящих узлах

a = x

0

< x < ... < x

n

= b ,

x

i

= a + ih ,

y

i

= f (x

) , h =

b a

.

Для оценки значения

 

 

1

 

 

 

 

i

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

производных (первого и второго порядка) заданной функции в рассматриваемых узлах

y′ ≈ f (x

) ,

 

 

y′′

f ′′(x

i

)

 

 

используются следующие формулы (порядок точности h2 ):

i

 

 

i

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Формулы центрированной разности (i = 1..n 1):

 

 

f (x ) y

=

yi+1 yi1

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

i

 

 

 

 

 

 

 

2h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f ′′(x

i

) y

′′ =

 

yi1 2yi + yi+1

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Формулы для правых разностей (используются при i = 0):

 

 

f (x0 ) y0

=

 

 

3y0 + 4y1 y2

 

 

 

 

 

 

 

2h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f ′′(x0 ) y0′′

=

 

 

2y0 5y1 + 4y2 y3

 

 

 

 

 

 

 

 

 

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Формулы для левых разностей (используются при i = n):

 

 

f (x

n

) y

=

3yn 4yn1 + yn2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

2h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f ′′(x

n

) y′′

=

2yn 5yn1 + 4yn2 yn3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Решение задачи:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x := 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Задана функция

f(x) :=

 

 

1

 

 

 

 

 

 

на отрезке [2;2]

a := -2

b := 2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9 - x2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

DF_DX_A(x) := x×(9 - x2)

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

5

 

 

 

DF2_DX_A(x) := (9 - x2)

2

 

 

+ 3×x2×(9 - x2)

2

 

 

 

DF_DX(f , a, b, n) :=

h ¬

 

b - a

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n ¬ n - 1

 

 

 

 

 

for

 

 

i Î 0 .. n

 

 

 

 

 

xi

¬ a + h×i

 

 

 

 

 

D0

¬

-3×f(x0) + f(x1) - f(x2)

 

 

 

 

 

 

 

 

 

 

 

×h

 

 

 

 

 

 

2

 

 

 

 

for

 

 

i Î 1 .. n - 1

 

 

 

 

 

Di ¬

f(xi+1) - f(xi−1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2×h

 

 

 

 

 

Dn

¬

3×f(xn) - 4×f(xn−1) + f(xn−2)

 

 

 

 

 

 

 

 

 

 

 

2

×h

 

 

 

 

 

 

 

 

 

D

 

 

 

 

 

 

 

 

 

 

DF2_DX(f , a, b, n) :=

h ¬

b - a

 

 

n

 

 

 

 

 

 

n ¬ n - 1

 

for

i Î 0 .. n

 

xi ¬ a + h×i

 

D0 ¬

 

2×f(x0) - 5×f(x1) + 4×f(x2) - f(x3)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h2

 

for

i Î 1 .. n - 1

 

Di ¬

f(xi+1) - 2×f(xi) + f(xi−1)

 

 

 

 

 

 

 

 

 

 

h2

 

Dn ¬

2×f(xn) - 5×f(xn−1) + 4×f(xn−2) - f(xn−3)

 

 

 

 

 

 

 

 

 

h2

 

D

 

 

 

 

 

 

 

A)n := 10

i := 0 .. n - 1

h :=

b - a

h = 0.4

 

n

xi := a + h×i Fi := f(xi)

DF_DX_ARR_1 := DF_DX(f , a, b, n)

DF2_DX_ARR_1 := DF2_DX(f , a, b, n)

DF_DX_A(z)

DF2_DX_A(z) DF_DX_ARR_1i

DF2_DX_ARR_1i

0.2

 

 

 

 

0.1

 

 

 

 

0

 

 

 

 

0.1

 

 

 

 

2

1

0

1

2

 

 

z, z, xi

 

 

B)n := 15

i := 0 .. n - 1

h :=

b - a

h = 0.266666666666667

 

n

xi := a + h×i Fi := f(xi)

DF_DX_ARR_2 := DF_DX(f , a, b, n) DF2_DX_ARR_2 := DF2_DX(f , a, b, n)

DF_DX_A(z)

DF2_DX_A(z) DF_DX_ARR_2i

DF2_DX_ARR_2i

0.2

 

 

 

 

0.1

 

 

 

 

0

 

 

 

 

0.1

 

 

 

 

2

1

0

1

2

 

 

z, z, xi

 

 

C)n := 20

i := 0 .. n - 1

h :=

b -

a

n

 

h = 0.2

 

 

xi := a + h×i Fi := f(xi)

DF_DX_ARR_3 := DF_DX(f , a, b, n) DF2_DX_ARR_3 := DF2_DX(f , a, b, n)

DF_DX_A(z)

DF2_DX_A(z) DF_DX_ARR_3i

DF2_DX_ARR_3i

0.2

 

 

 

 

0.1

 

 

 

 

0

 

 

 

 

0.1

 

 

 

 

2

1

0

1

2

 

 

z, z, xi

 

 

Вывод: Численное дифференцирование дает тем лучший результат, чем большее количество узлов было использовано, т.е. чем меньше шаг. Стоит отметить, что в крайних узлах погрешность больше, чем во внутренних. Это связано с тем, что

значения производной во внутренних узлах опираются на значения функции как слева, так и справа, что позволяет более точно предсказывать результат. Вычислительный процесс в крайних узлах не имеет такой возможности, что не позволяет ему достичь точности центрированной разности.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]