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

книги из ГПНТБ / Пулькин, С. П. Вычислительная математика пособие для учащихся 9-10 классов по факультативному курсу

.pdf
Скачиваний:
19
Добавлен:
21.10.2023
Размер:
9.64 Mб
Скачать

Глава Интерполяция

6

§ 17. ПАРАБОЛИЧЕСКАЯ ИНТЕРПОЛЯЦИЯ

62°. Постановка задачи интерполяции. При измерении

температуры тела

в

различные

моменты

времени

полу­

чены следующие

результаты

(t —время

в

минутах,

Т —температура см.

табл.):

 

 

 

 

 

Температура Т есть функция

1

0'

10'

20'

3 0'

времени, T —f(i), но эта функ­

ция не выражена

формулой.

 

 

 

 

 

Мы знаем значения

Т лишь

т

60° 90°

о

20°

ОО о

для отдельных значений аргу­ мента t. Поставим перед собой

такую задачу: найти выражение Т через t посредством формулы, которая позволяет вычислять Т в любой момент времени t от 0 мин до 30 мин. Мы не имеем данных для того, чтобы при помощи формулы точно выразить функцию f(t). Будем стремиться найти формулу, дающую приближенное выражение этой функции.

Для решения поставленной задачи постараемся найти возможно более простую функцию, выраженную аналити­ чески (т. е. формулой), которая при данных значениях аргумента принимала бы точно те же значения (значения Т), которые получены путем измерения и указаны в таблице. Наиболее простой функцией, удобной для вычислений, является многочлен (целая рациональная функция). Так как в таблице указаны четыре значения функции, то будем

искать многочлен т р е т ь е й

степени, удовлетворяющий

высказанному требованию:

 

ср(^)=о/3-Г

(6.1)

Коэффициенты a, b, с, d нам неизвестны. Подберем их так, чтобы при й=0; 10; 20; 30 многочлен (6.1) принимал соот­ ветственно значения 60; 90; 80; 20. Для этого подставляем в (6.1) указанные значения t и приравниваем к соответет-

140

вующим значениям Т. Получаем равенства:

 

 

 

 

d = 60,

 

 

 

 

 

lOOOa-flOOM- 10c+d=90,

 

 

 

 

 

8000a+400H-2Qc+d=80,

 

 

 

 

 

27 000a+900M-3Qc+d=20.

 

 

Это есть система уравнений с неизвестными а, Ь, с.

Решая

эту

систему,

получим а = — щ1

;

Ь = 3

14

Итак, многочлен

(6.1) окончательно

найден:

с = д - .

 

 

(Р ^ = -б Ш * 3- ^ 2 + Т * + 60-

 

(6-2)

При

/ =

0;

10; 20; 30

он принимает точно

те значе­

ния Т,

которые получены путем измерения

и

указаны

в таблице.

Мы допускаем, что при других

значениях t

данного

промежутка значения многочлена

ф (t) близки

к соответствующим значениям /(/). Значит, функцию (6.2) можно считать приближенным аналитическим выраже­ нием функции Т = / (t): '

Г ~ - И о ' * - | > ' ’ + т ' + 60- М

Пользуясь этим приближенным выражением, мы можем (приближенно) вычислить температуру тела в любой

момент времени t от

0' до

30'. Так, в моменты времени

/t = 17 мин, t2 = 25 мин температура будет:

Т х=

87,8°,

Т 2 = 56,9°.

Описанный процесс называется интерполяцией (или интер­ полированием). Вообще процесс интерполяции состоит в том, что по нескольким известным значениям некоторой функ­ ции f(x) находят выраженную простой формулой функцию ф(х), которая принимает в соответствующих точках те же значения, что и первоначальная функция f(x). Эта функ­ ция <р(л:) служит приближенным выражением функции f(x).

Функция ф(х) называется интерполирующей функцией.

Чаще всего интерполирующую функцию ищут в виде многочлена, т. е.

( f ( x ) = a 0x n+ a 1x n~1- { - . . . +a„.

(6.4)

Интерполяция при помощи многочлена называется парабо­ лической.

141

63°. Параболическое интерполирование. В общем виде задача отыскания интерполирующего многочлена решается таким образом. Пусть функция f(x) определена на от­ резке [а; Ь] и известны значения функции в точках от­

резка х0, хи х2,

...,

хп. Значения функции обозначим у0, уи

Уг, •••>

Уп\ т. е.

yo~f(xt>), yi= f(Xi),

^ —/(-Хг), ■■■, yn= f(xn)-

Точки

Xo, xu

...,

xn называются

узлами интерполяции.

Мы ставим своей задачей найти такой многочлен (6.4), значения которого в узлах интерполяции совпадают с соот­ ветствующими значениями функции. Заметим, что степень искомого многочлена должна быть на единицу меньше числа узлов. В самом деле, если число узлов я + 1 , то мы имеем возможность составить я+ 1 линейных уравнений для отыскания коэффициентов многочлена. Значит, не­ известных коэффициентов многочлена должно быть тоже п+1. Такое число коэффициентов имеет многочлен n-й сте­ пени.

Методами высшей алгебры доказывается, что такой многочлен всегда существует, и только один (доказательство в гл. 10, п. 116°).

Чтобы перейти от общих рассуждений к решению кон­ кретной задачи, пишем многочлен той степени, какая тре­ буется, пока с неопределенными (буквенными) коэффициен­ тами. Например, если даны значения функции в пяти узлах, то напишем многочлен четной степени:

у=ах*-\-Ьх3-{-сх2-\-dx-\-e. (6.5)

Далее надо найти численные значения коэффициентов а, Ь, с, d, е. Для этого подставляем в (6.5) вместо х один из узлов, а вместо у —- соответствующее значение данной функции (так, как это было сделано в предыдущем пункте). Для отыскания коэффициентов получаем систему пяти линейных уравнений с пятью неизвестными. Решая систему, находим коэффициенты. Система, которая получается при этом, всегда имеет решение.

Задача интерполирования геометрически может быть сформулирована следующим образом. Изобразим графи­ чески при помощи точек значения функции при данных значениях аргумента. Требуется найти функцию данного вида (например, многочлен определенной степени), график которой проходит через эти точки (рис. 39).

142

Рис. 39

П р и м е р . Для функции у —2х найти интерполяцион­ ный многочлен, выбрав узлы:

х0= —1; *1= 0; л:2= 1; х3—2.

Значения данной функции в узлах таковы: г/0=

у 1=1] «/2= 2; г/3= 4 (эти значения легко вычислить не­ посредственно).

Будем искать интерполяционный многочлен третьей степени:

у = ах3 -\~.bx2 -(-сх + d.

Подставляя значения х в узлах и соответствующие зна­ чения у, придем к системе:

<х-\-Ьc-\-d = ~2 ,

 

 

 

 

d = 1,

 

а -j~ b

с

d — 2,

 

8a +

4ft +

2c + d = 4.

 

Решая эту систему,

получаем:

1 , 1

2

a = j^-,b== -^\

с —-^\

d = 1, Таким образом, на отрезке — 1 ^ х ^ 2 мы полу­

143

чили приближенное выражение функции при помощи многочлена:

2х ^ ~ х ^ + ~ х 2 + ^ х + 1 .

При помощи этой приближенной формулы можем вычис­ лять значения с точностью до одного-двух десятич­ ных знаков.

64°. Интерполяционная формула Лагранжа. Интерпо­ ляционный многочлен можно написать сразу, пользуясь готовой формулой.

Формула линейной интерполяции. Пусть даны значе­ ния функции в двух узлах х0, хх\ значения функции у0, yt\ интерполяционный многочлен — первой степени. Это есть линейная функция у = Ах + В, которая при х = харавна у0,

при x —xt равна уг. Эта

линейная функция такова

(см. также стр. 67).

 

 

</= ^0+ 7

 

Уо)-

xi —х0

 

Формулу линейной интерполяции (3.2) можно пред­ ставить в другом виде, посредством определителя второго порядка:

1

У*1*0

У о

*0 X

(6 .6)

У х

х г — х

 

Формула квадратичной интерполяции. Пусть даны три узла х0, хи хг и значения функции у0, уи уъ в них. Интерполяционный многочлен будет второй степени вида

у = Ах2

Вх + С. Он может

быть найден по

формуле:

.

. . . (* -* i)(* —*а)

|

,, ( х - х 0) ( х - х 2)

(6.7)

у

Уо (х0хг) (х0—х.г)

'

У1 (х1 — х0) (хг —х2)

 

(.х - х 0) ( х - х А

 

 

'~ У г ( Х г —

Х 0)

(лг2 —ДГХ) '

 

Если узлы р а в н о о т с т о я щ и е , т. е. хгх0 = х2x1 = h, то эта формула принимает более простой вид:

2/7 о ( х — х г) ( х — х ,) — 2у1 (х— х0) (х— х 2) +

_+ у2 (х— х0) (x— x j l

( 6. 8)

Из записи сразу видно, что это многочлен второй степени. Непосредственной подстановкой убеждаемся

144

в том, что в узлах хд, хг, х2 он принимает соответственно значения у0, уи уг.

Геометрический смысл квадратичного интерполирова­ ния состоит в том, что график данной функции заме­ няется параболой, ось которой параллельна оси Оу, проходящей через точки (х0, у0), (xlt yt), (хг, уг) (рис. 40). Такая парабола как раз имеет уравнение

 

 

 

 

у — Ахг + Вх + С.

 

 

 

 

Интерполяционный многочлен третьей степени. Если

даны четыре

узла

х0, xt ,

х2, х3 и

значения функций

уо,

Ух,

у 2, у3,

то

интерполяционный

многочлен

будет

третьей

степени; он может

быть записан так:

 

 

 

 

(х — хх)(х — х2)(х — х3)

( х ~ х 0)(х — х2)(х — х3)

 

у

Jo (х0— Хх) (х0— х2)(х0— х3) ' Ух (ххх0)(хух2) (xt

х3)

 

 

(х— х0)(х — х1)(х — х3)

(Х — Х0)(Х — Х1)(Х— Х2)

/ с

Q \

 

(х,— х0)(хг — Хх)(Х2— х3) ~Г У з (х3— х0)(х3— х^)(х3~ х2) ' '

■ /

Интерполяционная формула Лагранжа. В общем слу­ чае, если даны п -j-l узлов хд, xlt . . . , хп, значения функции в которых у0, ylt . . . , уп, интерполяционный многочлен (n-й степени) определяется формулой

(х Ха) ( х

Хх). . . ( x — X fi - x K x — Xb + x), . . ( х — х п)

1 (х) = '£Уи (Xfc Xa) (Xk

Хх) • . • {Х^ Xfc —x) (х^ Xfc+ г) . . . (х& Хп )

k=о

(6. 10)

 

Эта формула называется интерполяционной формулой Лагранжа.

145

Формула (6.6) получается из этой формулы при

п — 1,

формула (6.7) —при

п — 2,

формула

(6.9) — при

п = 3.

П р и м е р

1.

Для

функции у =

sin лх

найти интерпо­

ляционный

многочлен,

выбрав

узлы:

х~0 = 0,

х1=-^-\

х а = у ; х з = \ -

В э т и х у з л а х з н а ч е н и я ф у н к ц и и т а к о в ы :

Уо

л.

Vi

1

Уз

2

’ Уз

I •

 

 

2

 

Применяя формулу (6.9), получим интерполяционный многочлен:

 

L{x) = — 3,764х3—-0,4903л;2 + 3,186л:,

 

т. е. на отрезке. 0

 

 

 

 

sin

— 3,764л:3— 0,493л:2 + 3 ,186л:.

 

П р и м е р 2.

Даются

значения

десятичных

логариф­

мов для

чисел 1; 2; 3;

4; 5.

 

 

X

1

2

3

4

5

\ g x

0 ,0 0 0 0 0

0 ,3 0 1 0 3

0 ,4 7 7 1 2

0 ,6 0 2 0 6

0 ,6 9 8 9 7

Найдя интерполяционный многочлен четвертой степе­ ни, получим приближенную формулу логарифма на от­ резке

lg хаа — 0,0021л:4 + 0,0334л3 — 0,2102.x:3 + 0,7293л:— 0,5504.

65°. Применение интерполирования для отыскания значений функции по таблице. Пусть дана таблица зна­ чений некоторой функции y = f(x), т. е. указаны значе­ ния функции для ряда значений аргумента: х0, лу, х 2,

Требуется найти значение функции при каком-нибудь промежуточном значении аргумента, не содержащемся в таблице. Эта задача решается посредством интерполяции. Такая задача ставилась и частично была решена в главе 3 («Линейная интерполяция»), В данной главе мы дадим более полное ее решение.

Итак, пусть дана таблица функции и требуется найти значение функции при значении аргумента х, промежуточ­

146

ном между х0 и х х. Зная значения у а и yt в двух

узлах, мы

можем найти интерполирующий многочлен

п е р в о й

степени и при помощи этого многочлена вычислить значение

функции в точке х. Это и есть линейное интерполирование. Практические приемы линейного интерполирования рас­ смотрены в главе 3. Формулы линейного интерполиро­ вания: (3.2) или, что то же, (6.6).

Может оказаться, что линейная интерполяция непри­ менима, т. е. она дает недостаточно точный результат. Тогда применяется интерполяция высших порядков, т. е. интерполяция при помощи многочлена выше первой сте­ пени. Наиболее распространенной является квадратичная интерполяция, т. е. интерполяция при помощи многочлена второй степени.

66°. Квадратичная интерполяция. Если таблица такова, что для вычисления промежуточных значений линейная интерполяция неприменима, то это означает, что шаг таб­ лицы слишком велик, при таком шаге линейная интерполя­ ция не обеспечивает нужную точность. Такую таблицу называют таблицей с большим шагом.

При работе с такой таблицей применяется квадратичная интерполяция. Рассмотрим пример. Пусть дана таблица значений показательной функции:

X

0,80

0,85

0,90

0,95

1,00

ех

2,226

2,340

2,460

2,586

2,718

Требуется найти значение функции при х=0,82. Это значе­ ние не содержится в таблице, оно заключено между значе­ ниями 0,80 и 0,85. Таблица эта с большим шагом, линейное интерполирование неприменимо. Рассмотрим еще одно табличное значение аргумента, следующее за 0,85, т. е. 0,90. Итак, мы берем три табличных значения: х0=0,80; Xi=0,85; я2=0,90. Соответствующие значения функции обозначим Уо, Уи Уг- На отрезке \х„; х2\ найдем интерполирующий многочлен в т о р о й ' с т е п е н и (так как мы взяли три узла) и заменим данную функцию этим многочленом. Вычислим значение многочлена при х=0,82, это и будет искомое значение функции.

147

Для отыскания интерполирующего многочлена можно применить любой из изложенных выше способов, например воспользоваться формулой (6.8).

Полагая h = 0,05; х=0,82, заменяя х0, хь х 2, у0, Уи у* их значениями, получим:

g0,82 — 2,271.

Ниже будут изложены более простые приемы практи­ ческого выполнения квадратичной интерполяции.

67°. Квадратичное интерполирование по способу Эйткина. Пусть х0, хи х2— табличные значения аргумента; Уо, Уи У2— соответствующие значения функции. Требуется найти значение функции при некотором значении х*, заключенном между х 0 и хг. Пусть линейное интерполиро­ вание неприменимо, применяем квадратичное интерполи­ рование. Способ Эйткина состоит в следующем:

1.

Применяем

линейное

интерполирование

на от­

резке

[х0; x j, получаем приближенное значение функции

в точке х*, обозначим его у*.

 

2.

Применяем

формулу

линейного интерполирования

на отрезке [хх; x j,

получаем значение функции у*2

(точка х*

находится вне отрезка [ху, х2], но это не мешает нам приме­ нить формулу линейного интерполирования, например формулу (6.6)).

3. Применяем формулу линейного интерполирования на отрезке [х0; хг], считая у* начальным, а у\ — конечным значением функции (т. е. как будто бы в точке х 0 значение функции у\, в точке х2 значение функции у2). Полученное

врезультате значение и есть искомое значение у*. Формула для определения у* (формула (6.6), применен­

ная к данным обозначениям) такова:

( 6. 11)

Описанное правило можно выразить посредством формулы:

 

1 Pi(x)

Х0 X

(6. 12)

У Х2—Х0 р 2(х) Х 2 — X ’

где

1

Уо

Х9— X

 

 

(6.12а)

Pi (*) =

Ух

Х х — X

 

* 1 — Х о

 

Р» (*)

__1 _

Ух хх— х

(6.126)

Х2— Хх

у2

Х2----- X

 

 

148

Можно показать, что применение сформулированного правила приводит к тому же результату, что и интерполи­ рование при помощи многочлена второй степени. Это обосно­ вание будет дано в гл. 10, п. 109.

68°. Примеры параболической интерполяции по таблице с большим шагом. П р и м е р 1. Пользуясь таблицей натуральных логарифмов в книге БТ (стр. 81, табл. XX),

найти In 15,7.

Данная таблица — с большим шагом. Таблица четырех­ значная, шаг равен 1. Линейное интерполирование на боль­ шой части таблицы неприменимо. Применим способ Эйткина. Положим, x0=15, Хх=16, лг2=17. Из таблицы

ifo=ln 15=2,7081; ух= In 16=2,7726; г/2=1п 17=2,8332.

Полагаем,

«* = 15,7.

Применим сначала линейное интерполирование на от­ резке U0; Хх\. Получим:

y l= 2 ,7081+0,7-0,0645=2,75325.

Применяя линейное интерполирование к отрезку 1хй х2], получим (по формуле (6.11):

г/а=2,7726—0,3-0,0606=2,75442.

Теперь применим линейное интерполирование на объеди­ ненном отрезке [15; 17], считая за начальное и конечное значения функции у{, у\. Полученное значение у и будет окончательным, обозначим его у*. Применяем форму­ лу (6.11):

У* = У\ + — — {У\— У\) = 2,75325 + 0,35-0,00117 = 2,75366.

*2 *0

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

In 15,7- 2,7537.

Сравнивая полученное значение с данными более точных таблиц, убеждаемся в том, что все четыре десятичных знака верны. Пользуясь формулой (6.12), получим точно такой же результат. Если бы мы ограничились только одним линейным интерполированием в основном отрезке [лг0; x j, то получили бы менее точный результат.

149

Соседние файлы в папке книги из ГПНТБ