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

Choliy.NumericaMethods.2011Dec01

.pdf
Скачиваний:
11
Добавлен:
19.03.2015
Размер:
913 Кб
Скачать
☆

А для точок у вузлах сiтки:

x0 : q = 0 x1 : q = 1 x2 : q = 2

y0(x0) = (−3y0 + 4y1 − y2)/2h y0(x1) = (−y0 + y2)/2h . y0(x2) = (y0 − 4y1 + 3y2)/2h

Метод невизначених коефiцiєнтiв. Формули для чисельного диференцiювання можна отримати також методом невизначених коефiцiєнтiв. Для зручностi вважаємо, що вузли рiвновiддаленi, а точка, в якiй шукається похiдна позначена як x0.

Приймемо для k-ї похiдної такий вираз:

 

n

 

f(k)(x) =

Xi

(11.1)

cif(xi),

 

=1

 

i будемо вимагати, щоб ця формула була точною для полiномiв найвищого можливого степеня. Замiнюємо вираз для функцiї на полiном:

m

X

f(x) = ajxj,

j=0

продиференцiюємо його k разiв:

 

m

m

 

X

X

 

f(k)(x) =

aj(xj)(k) =

ajj(j − 1)(j − 2) . . . (j − k + 1)xj−k,

 

j=0

j=0

 

i записавши в точцi x0:

 

 

 

m

 

 

f(k)(x0) = ajj(j − 1)(j − 2) . . . (j − k + 1)x0j−k,

 

 

Xj

 

 

 

=0

 

 

прирiвняємо до виразу (11.1) для похiдної:

 

f(k)(x0) =

m

m

n

j(j − 1)(j − 2) . . . (j − k + 1)x0j−k = ai

cixij.

 

X

X Xi

 

j=0

j=0

=1

Якщо тепер прирiвняти доданки з однаковими j, маємо систему (n + 1)-го лiнiйного рiвняння:

n

j(j − 1)(j − 2) . . . (j − k + 1)xj0−k = Xcixji ,

i=1

101

з (n + 1) невiдомими. Розв’язання цiєї системи дасть коефiцiєнти ci для використання у формулi чисельного диференцiювання. Це можна зробити при m + 1 = n, тобто, якщо в таблицi n вузлiв, то це дає змогу побудувати формулу для диференцiювання точну для полiномiв степеня не вище n − 1.

Приклад. Побудуємо формулу для диференцiювання у виглядi: f0(0) = c1f(−h) + c2f(0) + c3f(h).

Для цього випадку система рiвнянь

j(j − 1)(j − 2) . . . (j − k + 1)xj0−k = c1f(−h) + c2f(0) + c3f(h).

У цiй системi k = 1 а у добутку в лiвiй частинi залишається лише один множник, j:

j = 0 : 0x00−1 =

c1 + c2 + c3

 

 

 

 

 

j = 1 :

1x1−1

=

c

(

−

h) + c

(0) + c

(h)

 

0

 

1

 

2

 

(0)2

3

 

(h)2

j = 2 :

2x2−1

=

c

(

−

h)2 + c

+ c

 

0

 

1

 

 

2

 

 

3

 

розв’язок якої: c1 = −1/(2h), c2 = 0, c3 = 1/(2h) дозволяє записати досить

вiдому формулу:

f0(0) = f(h) − f(−h). 2h

Приклад. Спробуємо знайти вираз для другої похiдної у такому ж виглядi: f00(0) = c1f(−h) + c2f(0) + c3f(h).

Тепер k = 2 i лiвий добуток тепер мiстить два множники, j(j − 1):

j = 0 : 0( 1)x0−2

= c

1

+ c

2

+ c

3

 

−

0

 

 

 

 

j = 1 :

1(0)x01−2

=

c1

(−h) + c2(0) + c3(h)

j = 2 :

2(1)x02−2

=

c1

(−h)2 + c2(0)2 + c3(h)2

що дає: c1 = c3 = 1/h2, c2 = −2/h2. Формула для диференцiювання така:

f00(0) = f(−h) − 2f(0) + f(h). h2

На цьому прикладi оцiнимо точнiсть формули. Для цього розкладем f(x) в околицi точки x = 0 i пiдставимо цi розвиття у формулу:

R(h) = f00(0) − f(−h) − 2f(0) + f(h) = h2

= f00(0) − f(0) + f0(0)(−h) + f00(0)h2/2 + f000(ξ−)(−h)3/6 − 2f(0)+ +f(0) + f0(0)h + f00(0)h2/2 + f000(ξ+)h3/6 /h2 =

= (f000(ξ−)(−h)3/6 + f000(ξ+)h3/6)/h2 = f(iv)(ξ)h2/3.

Порядок отриманої формули h2.

102

Задачi. У всiх задачах цього роздiлу потрiбно побудувати таблицю похiдних заданої функцiї на iнтервалi вiд 0 до 1 з кроком 0.1 i порiвняти отриманi значення з похiдними, отриманими шляхом диференцiювання заданої формули. Якщо в умовi задачi є параметр, вiн може приймати довiльне значення.

1.

exp (ax)

(a sin x − cos x),

y =

 

 

 

 

 

 

 

 

 

1 + a2

2.

r = ln r

 

 

 

 

 

 

 

 

1

 

 

 

tg ϕ,

 

 

 

 

 

 

1 + tg ϕ

3.

x = −

cos x−

 

 

 

 

 

 

 

+ ln tg (x/2),

sin2 x

4.

y = (1 + √

 

)3,

 

x

5.

y = x/√

 

,

1 + x2

6.y = 1/(1 − x2)3,

√

7.y = cos 4α,

8.y = sin4 x + cos4 x,

9.y = ϕ sec2 (aϕ),

10.y = 2 exp x sin t cos2 t,

11.y = x4(8 ln2 x − 4 ln x + 1),

12.y = exp (2v) ln tg (v/2),

√

13.

y = ln x +

 

x2 + a,

 

 

14.

y = ln

√

 

 

t

 

 

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t4 − 1

 

 

 

 

 

 

 

 

15.

y = ln r

 

1 − sin α

,

 

 

 

 

 

 

 

 

 

 

 

 

1 + sin α

 

 

 

16.

y

 

t

 

 

 

 

 

(ln t)

−

sin (ln t)),

 

=

 

 

(cos 52x

 

 

 

 

 

 

 

 

 

17.

y =

 

2 + √

 

 

 

,

 

 

 

 

4 + 52x

 

 

18.

y = arcsin √

 

 

 

 

 

 

 

sin x,

 

 

19.

y = x arccos x −

√

 

 

,

1 − x2

20.

y = x arctg x − ln 1 + x2,

21.

y = exp (ax) sin (bx),

 

 

22.

y =

exp (x) + exp (−x)

,

 

 

 

 

 

 

 

2

 

 

 

 

 

−

 

 

 

 

 

 

−

 

 

23.

 

 

exp (x)

 

 

 

exp ( x)

 

 

y = cos

x − 2 ln cos x,

 

 

24.

y = ln

2 exp (ax)

,

 

 

 

 

 

 

exp x + 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

25.

y = ln

 

ax2

 

 

,

 

 

 

 

 

 

 

 

 

1 − x2

 

 

 

 

 

 

 

 

 

26.y = ln (ax2 + bx + c),

√√

27.y = x 3 + 1/25x + 6 x,

28.

 

 

(1 + t)2

y =

 

 

 

 

 

 

 

,

 

 

 

3

4

29.

 

(2 + t)

(3 + t)

y = xx,

 

 

 

 

 

 

 

30.

y =

x(x2

+ 1)

 

,

 

 

 

 

 

 

 

 

 

 

 

31.

y = p

 

,

 

 

 

 

(1 − x)2

 

 

cos x + sin x

 

 

 

1 − cos x sin x

32.

y =

2 sin (2x) − 3 cos (2x)

.

 

 

 

 

exp (5x)

103

12. Iнтегрування

У цьому роздiлi розглядається задача наближеного знаходження визначених iнтегралiв:

b

Z

f(x)dx = F (b) − F (a),

a

звичайно, функцiя f(x) повинна бути на [a, b] неперервною. Чисельно iнтеграли знаходимо коли немає первiсної, або якщо f(x) задана таблицею. Формули, що при цьому використовуються, називаються квадратурними формулами. Як i у попередньому роздiлi, пiдiнтегральну функцiю замiняємо її iнтерполяцiйним полiномом i iнтегруємо його.

Загальна квадратурна формула. Представимо пiдiнтегральну функцiю iнтерполяцiйним полiномом:

b

b

ZZ

f(x)dx =

Pn(x)dx.

a

a

Подiлимо iнтервал [a, b] на n пiдiнтервалiв: [x0, xn], i = 0, . . . , n−1, i замiнимо пiдiнтегральну функцiю полiномом Лагранжа на такiй сiтцi iнтерполяцiї:

f(x) = Ln(x) + похибка,

тому:

b

b

ZZ

f(x)dx = Ln(x)dx + Rn(x),

a

a

Rn(x) - iнтегральна похибка. Якщо знехтувати похибкою:

b

 

b

n

 

 

 

 

n

Z

f(x)dx = Z

 

 

 

(xi)dx =

 

i=0 yi (x xi)Π0

i=0 Aiy(xi),

 

 

 

X

 

Π(x)

 

 

X

a

a

 

−

 

 

 

104

при цьому коефiцiєнти

Ai = Za

b

(xi)dx,

 

(x − xi)Π0

 

 

Π(x)

 

 

не залежать вiд x, однак, залежать вiд xi, якi виступають як сталi. Таким способом ми отримали загальний вигляд квадратурних формул:

Z

b

n

 

 

 

 

f(x)dx = i=0 yiAi(xi).

(12.1)

a

 

X

 

Оскiльки Ai є полiномом, то (12.1) буде точною для полiномiв, степеня, не вищого n. Взявши за пiдiнтегральну функцiю послiдовно полiноми степенiв вiд 0 до n:

Za

b xkdx =

bk+1 − ak+1

n

 

 

= A

xk, k = 0, 1, . . . , n,

 

k + 1

i=0

i

i

 

 

 

X

 

 

побудуємо систему n + 1 лiнiнйних рiвнянь з n + 1 невiдомими Ai, пiсля розв’язання якої квадратурна формула (12.1) стає повнiстю визначеною.

Приклад. Нехай

1

Z

y(x)dx = A0y(1/4) + A1y(1/2) + A2y(3/4).

0

Невiдомих - три коефiцiєнти, тому потрiбно три рiвняння, якi можна побудувати, взявши три перших полiноми:

 

1

x0dx = 1,

1

x1dx = 2,

 

1

x2dx = 3,

 

Z0

Z0

 

Z0

 

 

 

 

 

 

 

 

1

 

 

 

1

тобто

A0

 

 

1·/2

 

 

 

 

3·/4

 

 

 

1/4

+A1

+A2

= 1/2

 

A0

 

A0

+A1 1

 

 

+A2

1

= 1

 

 

 

·

·1/16

+A1

· 1/4

+A2

·

·9/16

= 1/3

що дає

 

 

 

 

·

 

 

 

 

 

 

 

 

A0 = 2/3, A1 = −1/3, A2 = 2/3,

105

тобто

1

f(x)dx = 3y

4

−

3y

2

+

3y

4 .

Z0

 

2

 

1

 

1

1

 

2

3

Формули Ньютона-Котеса. Це квадратурнi формули для рiвновiддалених вузлiв. У попередньому роздiлi ми отримали вираз для полiному Лагранжа для такого випадку:

n

X Π(x)

Ln(x) = yi (x − xi)Π0(xi)

i=0

=

n

(−1)n−iq(q − 1)(q − 2) . . . (q − n)

yi.

Xi

 

i!(n

−

i)!(q

−

i)

 

=0

 

 

 

 

 

 

 

 

 

Формула для знаходження коефiцiєнтiв така:

 

 

b

−

1)(q − 2) . . . (q − n)(−1)n−i

 

A

=

q(q

dx =

 

i

Z

 

(q − i)i!(n − i)!

a

n

Z

=h ·

q(q − 1)(q − 2) . . . (q − n)(−1)n−i

(q − i)i!(n − i)!

dq =

 

 

 

 

0

 

 

=

b − a

·

 

(−1)n−i

 

 

 

 

 

 

 

n

i!(n

−

i)!

 

 

n

 

−

q − i

n

i

 

Z

 

 

 

q(q

 

1)(q − 2) . . . (q − n)

dq =

b − a

H

.

 

 

 

 

 

0

А загальна квадратурна формула приймає вигляду:

b

b − a

n

 

 

 

n

 

 

 

f(x)dx =

H

y(x

) = h

H

y(x

).

 

Z

n

i=0

i

i

 

i=0

i

i

 

a

 

X

 

 

 

X

 

 

 

З лiтератури вiдомо досить багато спрощених варiантiв цiєї загальної формули. Отримаємо деякi з них.

Формула трапецiй. Отримаємо, поклавши n = 1:

1

1 (−1)1 Z A0 = 1 0!1!

q

1

 

−

2

− Z

 

q(q − 1)

dq =

 

(q

 

1)dq =

1

.

 

 

 

 

 

 

 

 

0

 

0

 

 

 

 

 

 

 

 

 

 

 

1

 

 

1

 

 

 

 

A

1

=

1

 

(−1)0

Z0

q(q − 1)

dq =

Z0

qdq =

 

1

.

 

 

 

 

 

 

1

1!0!

(q − 1)

 

2

106

Za

b

(f(a) + f(b))(b − a) =

2(y0 + y1)(b − a).

f(x)dx = 2

 

1

 

1

Покажемо на цьому прикладi як знайти похибку iнтегрування. Отже:

R(h) =

b=a+h

(y(a) + y(b)), R(0) = 0, R0(0) = 0.

Za

y(x)dx − 2

 

 

 

h

 

Чи трохи по-iншому:

x0+h

Z

h

R(h) = y(x)dx − 2 (y(x0 + h) + y(x0)).

x0

Вiзьмемо похiднi по h:

R0(h) = y(x0+h)−12(y(x0+h)+y(x0))−h2 y0(x0+h) = 12y(x0+h)−12y(x0)−h2 y0(x0+h).

R00(h) = 12y0(x0 + h) − 12y0(x0 + h) − h2 y00(x0 + h) = −h2 y00(x0 + h).

А тепер проiнтегруємо:

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R00(h) = −

 

 

y00(x0

+ h),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

h2

 

0( ) =

 

0

 

 

h

= 0 −

1 h

 

h003(

0 + )

= −

1

00(

)

 

 

(0) +hR0

1R00(h)h2

2 R0

 

2

2

 

R

h

R

 

 

 

 

 

 

dh

 

 

 

hy x h dh

 

 

y

ξ

 

 

 

,

R(h) = R(0) − R0

 

y00(ξ)

 

dh = −y00(ξ)

 

,

 

 

 

 

 

 

 

 

 

2

2

12

 

 

 

 

 

 

 

 

 

де ξ - деяке значення всерединi iнтервалу. Як бачимо, квадратурна формула має порядок h3.

Формулу Сiмпсона можна отримати при n = 2:

A0

=

1

 

(−1)2

2

(q − 2)(q − 1)q

dq =

1

,

1 (−1)1

 

 

 

A1

=

R02 (q − 2)(q − 1)qdq =

2

,

 

 

2

0!2!

 

q

6

 

A

=

 

 

 

R2

 

 

 

,

1

 

(−1)0

(q − 2)(q − 1)qdq =

1

 

 

2

1!1!

0

q − 1

3

 

2

 

 

 

 

R0

 

 

 

 

 

2

2!0!

q − 2

6

 

107

тобто

x2

Z

h

y(x)dx = 3 (y0 + 4y1 + y2) .

x0

Залишковий член (похибку) знайдемо аналогiчно:

x2

Z

h

R(h) = y(x)dx − 3 (y0 + 4y1 + y2) =

 

 

 

 

x0

 

 

 

 

 

 

 

x1+h

 

 

 

 

 

 

 

= Z

y(x)dx − 3 (y(x1 − h) + 4y(x1) + y(x1 + h)) .

 

 

 

 

h

 

 

 

 

 

 

 

x1−h

 

 

 

 

 

 

 

 

 

 

 

Продиференцiюємо по h тричi:

 

 

 

 

 

 

 

 

 

 

R000(h) = −

 

2h2

 

 

 

 

 

 

 

 

 

yiv(ξ),

 

 

 

 

 

3

 

 

а тепер тричi проiнтегруємо:

 

 

 

 

 

 

 

 

 

 

 

 

 

h5

 

 

 

 

 

 

 

R(h) = −

 

yiv(ξ).

 

 

 

 

 

 

 

90

 

 

Формулу Ньютона отримаємо при n = 3:

 

 

x3

 

 

 

 

 

 

 

 

 

 

3h5

Z

 

 

h

 

 

 

 

y(x)dx =

3

(y0 + 3y1 + 3y2 + y3) , R(h) = −

 

yiv(ξ).

8

80

x1

 

 

 

 

 

 

 

 

 

 

 

 

Хоча порядок формули (n = 3) бiльший, нiж формули Сiмпсона (n = 2), остання формула ”гiрша“, оскiльки має бiльшу похибку: 3/80 > 1/90.

Якщо достатньо, щоб квадратурна формула була точна лише для полiномiв нульового степеня, то можна користуватися формулою прямокутникiв:

x1

Z

y(x)dx = hy(x0).

x0

Можна отримати i формули вищих порядкiв, наприклад:

R

y(x)dx = (7y0 + 32y1 + 12y2 + 32y3 + 7y4) /90,

R

y(x)dx = (41y0 + 216y1 + 27y2 + 272y3 + 27y4 + 216y5 + 41y6) /840.

108

Формули Чебишева. Задачу iнтегрування можна поставити дещо по-iншо- му. На вiдмiну вiд формул Ньютона-Котеса, коли вузли сiтки були фiксованi, а квадратурнi формули будувалися шляхом знаходження коефiцiєнтiв, при iншiй постановцi задачi коефiцiєнти вважають вiдомими, а положення вузлiв - шуканими:

1

n

 

Z

 

f(x)dx = i=1

Bif(xi).

−1

X

Нехай усi Bi однаковi, тодi якщо взяти f(x) = 1,

 

 

1

n

 

 

 

 

 

 

 

 

Z

 

 

 

 

 

 

 

 

 

 

1dx = 2 = i=1 Bi · 1 = nB, bi = n.

 

 

 

 

X

 

 

 

2

 

 

 

−1

 

 

 

 

 

 

Якщо тепер вибрати функцiї f(x) = xn для послiдовних n > 0 маємо:

1

 

 

 

2

 

 

 

 

 

 

 

−R1

xdx

= (t1

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

2

 

 

 

 

1

+ t2 + · · · + tn)n

= 0,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

−.R.1 .x2dx = (t12 + t22 + · · · + tn2 )

 

 

=

 

,

 

 

 

n

3

 

 

 

1

 

 

 

2

2

 

 

 

−R1

 

 

 

, n − парне; 0, n − непарне,

xndx

= (t1n

+ t2n + · · · + tnn)

 

=

 

n

n + 1

звiдки можна знайти всi значення ti, хоча це i досить важко при великих n.

√

 

 

√

 

 

Наприклад. n = 3, t1 = − 2/2, t2 = 0, t3 =

2/2.

Формули Гауса. У формулах Ньютона-Котеса використовують змiннi ваги, у формулах Чебишева - пiдбиралися оптимальнi, (змiннi) вузли. При побудовi формул Гауса - i ваги, i вузли вважаються вiльними i їх положення та значення потрiбно визначати, тобто потрiбно так пiдiбрати вузли i ваги, щоб рiвняння

1

n

 

Z

 

f(t)dt = i=1

Aif(ti),

1

X

−

 

 

було точним для полiномiв найбiльшого можливого степеня. Формула мiстить Ai, ti - всього 2n невiдомих, значить найбiльша степiнь полiнома, для якого квадратурна формула має бути точною - 2n − 1. Нехай це виконується для

109

1, t, t2, . . . , t2n−1, тодi:

 

1

n

 

 

Z

 

k [0, 2n − 1] :

tkdt = i=1

Aitik.

 

1

X

 

−

 

 

Будь-яку iншу функцiю будемо представляти так:

2n−1

X

f(t) = Cktk,

k=0

1

Z

−1

1

2n−1

 

2n−1

 

1

2n−1

 

n

 

f(t)dt = Z

k=0 Cktkdt = k=0 Ck

Z

tkdt = k=0

Ck

i=1

Aitik =

1

X

 

X

 

1

X X

−

n 2n−1

−

n

 

 

 

 

 

X Xk

Cktik =

X

 

 

 

 

=

Ai

 

 

Aif(ti).

 

 

 

 

i=1

=0

 

 

i=1

 

 

 

Останнє спiввiдношення, переписане у виглядi

1

n

 

 

Z

 

 

f(t)dt = i=1

Aif(ti),

(12.2)

1

X

 

−

 

 

 

є системою нелiнiйних рiвнянь, розв’язання якої дозволяє побудувати квадратурну формулу Гауса. Ця система досить складна, а її розв’язання зовсiм нетривiальне. Спробуємо спростити цей процес. Як i при отриманнi формул Чебишева:

1

tkdt = k + 1

(k − парне),

1

tkdt = 0 (k − непарне),

Z

Z

 

2

 

 

 

 

−1

 

 

 

 

−1

 

 

n

n

 

n

 

X

Xi

 

X

 

 

Ai = 2,

Aiti = 0,

Aiti2 = 2/3, . . . .

 

i=1

=1

 

i=1

Покладемо тепер

f(x) = tkPn(t), k [0, n − 1],

де Pn(t) - деякий полiном степеня n. Оскiльки f(x) є полiномом, степеня, не вище 2n − 1, то f(x) повиннi задовольняти спiввiдношення (12.2):

1

n

 

 

Z

 

 

tkPn(t)dt = i=1

AitikPn(ti).

(12.3)

−1

X

 

110

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