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

ChM_V_INZhENERNYKh_RASChYoTAKh_chast_1

.pdf
Скачиваний:
13
Добавлен:
05.06.2015
Размер:
2.73 Mб
Скачать

Вар. n=11-15

Варианты задания 2

 

 

 

 

 

 

 

 

n o o 2 1 o o o o

o

 

 

 

n

 

 

 

 

 

 

 

 

 

o

n o o 4 1 o o o

o

 

 

8

 

o

o n o o 2 1 o o

o

 

 

8

 

 

 

 

 

 

 

 

 

o

o o n o o 4 1 o

o

 

 

8

 

 

 

 

 

 

 

 

 

1

o o o n o o 2 1

o

 

 

8

 

A

 

 

 

,

b

 

 

o

1 o o o n o o 4 1

 

 

8

 

 

 

 

 

 

 

 

 

o

o 1 o o o n o o 2

 

 

8

 

o

o o 1 o o o n o

o

 

 

8

 

 

 

 

 

 

 

 

 

o

o o o 1 o o o n

o

 

8

o

o o o o 1 o o o n

 

n

Вар. n=16-20

n

6

o

o

1

o

o

 

 

 

 

 

 

 

6

n

6

o

o

1

o

 

 

 

 

 

 

 

o

6

n

6

o

o

1

o

o

6

n

6

o

o

 

 

 

 

 

 

 

1

o

o

6

n

6

o

A

 

 

 

 

 

 

o

1

o

o

6

n

6

 

 

 

 

 

 

 

o

o

1

o

o

6

n

o

o

o

1

o

o

6

 

 

 

 

 

 

 

o

o

o

o

1

o

o

 

 

 

 

 

 

 

o

o

o

o

o

1

o

Варианты задания 2

o

o

o

 

6

o

o

o

 

 

 

 

 

 

n

 

o

o

o

 

 

 

 

 

 

n

 

1

o

o

 

 

n

 

 

 

 

 

 

 

 

o

1

o

 

 

n

 

 

 

 

 

,

b

 

o

o

1

 

 

n

 

 

 

 

 

 

 

 

6

o

o

 

 

n

 

n

6

o

 

 

n

 

 

 

 

 

 

 

 

6

n

6

 

 

n

 

 

 

 

 

 

 

 

o

6

n

 

6

Вар. n=21-25

Варианты задания 2

n

5

o

1

o

o

o

o

 

 

 

 

 

 

 

 

5

n

5

o

o

o

o

o

 

 

 

 

 

 

 

 

o

5

n

5

o

1

o

o

1

o

5

n

5

o

o

o

 

 

 

 

 

 

 

 

o

o

o

5

n

5

o

1

A

 

 

 

 

 

 

 

o

o

1

o

5

n

5

o

 

 

 

 

 

 

 

 

o

o

o

o

o

5

n

5

o

o

o

o

1

o

5

n

 

 

 

 

 

 

 

 

o

o

o

o

o

o

o

5

 

 

 

 

 

 

 

 

o

o

o

o

o

o

1

o

o

o

 

 

 

 

o

o

 

 

 

 

o

o

 

o

o

 

 

 

 

o

o

,

 

 

o

o

 

 

 

 

o

1

 

5

o

 

 

 

 

n

5

 

 

 

 

5

n

 

n4444

b 4444n

61

Вар. n=26-30

Варианты задания 2

 

 

 

 

 

 

 

n o o 2 1 o o o o o

 

 

 

n

 

 

 

 

 

 

 

 

8

n o o 2 1 o o o o

 

 

8

 

 

 

 

 

 

 

 

o

8 n o o 2 1 o o o

 

 

8

 

o

o 8 n o o 2 1 o o

 

 

8

 

 

 

 

 

 

 

 

1

o o 8 n o o 2 1 o

 

 

8

 

A

 

 

,

b

 

 

o

1 o o 8 n o o 2 1

 

 

8

 

 

 

 

 

 

 

 

o

o 1 o o 8 n o o 2

 

 

8

 

o

o o 1 o o 8 n o o

 

 

8

 

 

 

 

 

 

 

 

o

o o o 1 o o 8 n o

 

 

8

 

 

 

 

 

 

 

 

o

o o o o 1 o o 8 n

 

n

 

62

4 РАСЧЕТНО-ГРАФИЧЕСКАЯ РАБОТА №4 Интерполяция табличных данных

4.1 Краткие теоретические сведения

Задачей приближения или аппроксимации функций (от лат. approximo — приближаюсь) называется задача замены одних математических объектов другими, в том или ином смысле близкими к исходным. Другими словами, аппроксимация функции это замена исходной функции Y(x) другой функцией f(x) достаточно близкой к Y(x) на некотором интервале и имеющей либо более простую и удобную форму представления, либо отвечающую необходимым требованиям. Аппроксимация позволяет исследовать числовые характеристики и качественные свойства объекта, сводя задачу к изучению более простых или более удобных объектов. Чаще всего необходимость такой замены возникает в случаях, когда исходная функция Y(x) задана таблицей значений xi, yi (дискретно), а ее необходимо знать в любой точке интервала. В этом случае табличная функция заменяется аналитической функцией f(x), по которой можно вычислить значение y для любых значений x.

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

1. Функция y(x) определена небольшим количеством дискретных значений (точек), значения которых можно считать лишенными погрешностей. Тогда приближающую функцию f(x) подбирают так, чтобы она точно прошла через все заданные точки xi, yi , i=0,1,…,n. Такое приближение называют интерполяцией (от латинского interpolatio изменение, переделка), приближающую функцию f(x) – интерполирующей, точки, через которые проходят исходная функция y(x) и интерполирующая f(x) – узлами интерполяции либо опорными точками. Интерполяция является частным случаем аппроксимации, при котором интерполирующая функция f(x) обязательно проходит через узлы интерполяции xi, yi и при этом принимает «разумные» значения для аргументов, лежащих между опорными точками. Критерий разумности меняется от задачи к задаче и ему,

63

возможно, никогда не будет дано точного определения. Пример интерполяции табличных данных приведен на рисунке 4.1.

x0, y0, x1, y1, … - узлы интерполяции – точки определяющие табличные данные

Рисунок 4.1 - Интерполяция табличных данных

2. Табличная функция y(x) задана большим количеством точек, значения которых получены опытным путем и, из-за погрешностей эксперимента, определены с погрешностью. В такой ситуации требовать точного прохождения функции f(x) через точки заданные с ошибками нецелесообразно, поэтому функцию f(x) подбирают достаточно простого вида, которая проходит достаточно близко к заданным точкам, но не обязательно через них. Позволяя значениям f(xi) отличаться от yi, можно очень хорошо отразить характер изменения данных и даже поправить некоторые из содержащихся в них ошибок. Такое приближение называют сглаживанием, функцию f(x) сглаживающей. На рисунке 4.2 приведен пример построения на интервале от x0 до x4 сглаживающей функции f(x)

Рисунок 4.2 - Сглаживание табличных данных. f(x) – сглаживающая функция

64

Задача определения значения функции вне диапазона опорных точек называется экстрополяцией данных.

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

4.2 Постановка задачи интерполяция табличной функции

Пусть исходная функция y(x) определена небольшим количеством дискретных значений xi, yi, i=0,1,…,n, точно определяющих функцию y(x).

Цели интерполяции разнообразны, но почти всегда необходим быстрый алгоритм позволяющий вычислять значения функции f(x) для аргумента, не содержащегося в таблице данных (xi, yi). Компактная таблица данных и небольшая подпрограмма интерполирования могут заменить очень длинную таблицу значений функции. Иногда требуется находить значения первой (f '(x)) и второй (f''(x)) производных в промежуточных точках.

4.3 Кусочно-линейная интерполяция

Простейшим видом интерполяции является линейная интерполяция, в основе которой лежит приближение функции y(x) на участке между соседними точками (xk, yk ) и (xk+1,yk+1 ) прямой линией. Урав-

нение прямой можно представить в виде

 

 

 

 

 

 

y

y

 

 

 

 

 

y

 

 

 

 

 

 

 

k

 

y

k

1

 

k

 

 

 

 

x x k

 

 

 

 

 

 

 

 

 

x k 1 x k

 

 

 

или в виде

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y yk

 

yk 1

yk

 

x x k

(4.1)

 

 

 

 

 

 

x k 1

 

x k

 

 

 

 

 

 

 

65

Таким образом, зная два табличных значения yk и yk+1 , соответствующих xk и xk+1, с помощью указанных формул можно найти значение функции y при любом значении x в интервале [xk , xk+1]. Получаемая интерполирующая функция состоит из отдельных отрезков, соединенных в узлах интерполяции. Такая функция называется ку- сочно-гладкой и относится к классу составных функций. Преимуществами составных функций является то, что каждый ее участок имеет сравнительно простую форму и, следовательно, определяется простой аналитической зависимостью. В частности кусочно-линейная интерполяция осуществляется составной функцией, каждое звено которой представляется уравнением прямой, коэффициенты которой определяются двумя соседними точками исходной функции.

Пример 4.1

В таблице 4.1 даны значения функции y(x) в трех точках. Требуется определить значения функции в точках х=0,5 и х=2, используя кусоч- но-линейную интерполяцию.

Таблица 4.1 - Исходные данные для примера 1

Xi

0

1

3

 

 

 

 

Yi

1

2

10

 

 

 

 

Подставим значение x=0.5 и x=2 в формулу (4.1). Получим: y(0.5)=y0 +(0.5-x0 )(y1 - y0 )/(x1 -x0 ) = 1+(0.5-0)(2-1)/(1-0)=1.5 y(2.0)=y1 +(2.0-x1 )(y2 – y1 )/(x2-x1) = 1+(2-1)(10-2)/(3-1)=6.0

Обратите внимание, что если значение аргумента x=2 подставить в первую формулу (т.е. в уравнение прямой соединяющей первые две точки функции y(x)), то получится результат y(2)=3 не соответствующий здравому смыслу.

4.4 Интерполяция полиномом

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

66

Полиномом степени n можно записать в виде

 

P(x) = a

+ a x + a x2

+ . . . + a xn

(4.2)

0

1

2

n

 

В дальнейшем будем рассматривать вещественные полиномы, т.е. полиномы коэффициенты a0 ; a1 ; a2 ; . . . ; an которых являются вещественными числами.

Внимание инженеров привлекают многие свойства полинома P(x). Так P(x) является функцией всюду непрерывной и всюду дифференцируемой, легко вычисляется при любом значении x. Производная полинома и его неопределенный интеграл также являются полиномами с теми же свойствами, что и у исходного полинома. Все производные степени большей, чем n, где n – степень полинома, равны нулю.

Напомним некоторые свойства полиномов.

Полином степени n можно разложить единственным образом в произведение из n линейных множителей.

P(x) = an (x - 1) (x - 2) … (x - n)

Если x принимает значение одного из чисел 1, 2, … , n , то p(x) будет иметь нулевое значение; числа 1, 2, … , n называются корнями полинома P(x), или решением полиномиального уравнения P(x)=0. Корни вещественного полинома обладают следующими свойствами:

­корни могут повторяться (например, если 1= 2 );

­корни могут быть как вещественными, так и комплексными;

­комплексные корни встречаются сопряженными парами;

­если полином P(x) имеет нечетную степень, то он должен иметь, по меньшей мере, один вещественный корень.

Для определения n+1 коэффициента ai (i=0, 1, … , n ) полинома степени n, проходящего через все n+1 заданные в таблице точки (xi ;yi), где i=0, 1, …, n, необходимо записать интерполяционные условия прохождения полинома через данные точки Pn(xi) = yi ,при i=0, 1, …,n.

В результате получим систему из (n+1)-го линейного уравнений относительно коэффициентов полинома:

a0 + a1x0 + a2x02 + . . . + anx0n = y0

67

a

+ a x

1

+ a x

2

+ . . . + a x n = y

1

(4.3)

0

1

2

1

n

1

 

 

 

. . . .

 

 

 

 

 

a + a x

n

+ a x

2

+ . . . + a x n = y

n

 

0

1

2

n

n

n

 

Из решения системы 4.3, например методом Гаусса, определяются численные значения коэффициентов полинома интерполирующего точки (xi; yi), где i=0, 1, …, n. По формуле (4.2) легко можно вычислить значение интерполирующего полинома Р(х) для любого промежуточного аргумента.

Пример 4.2

Для таблично заданной функции представленной в таблице 4.1, определить значения интерполирующего полинома в точках х=0.5 и

х=2.

Исходная функция задана тремя точками, которые позволят записать три интерполяционных условия прохождения полинома P(x) через данные точки. Из трех условий можно определить три коэффициента полинома P(x), поэтому этот полином будет второй степени.

Запишем интерполяционные условия прохождения полинома второй степени, через три заданные точки

a0 + a1·0+ a2·02 = 1 a0 + a1·1+ a2·12 = 2 a0 + a1·3+ a2·32 = 10

Очевидно, что решением данной системы будет: a0=1, a1=0, a2=1.

Отсюда полином имеет вид P(x)= 1+x2 . Определим значение полинома при аргументах x=0.5 и x=2

P(0.5)= 1+0.52=1.25

P(2.0)= 1+22 =5

Обратите внимание, что полученные значения отличаются от результатов кусочно-линейной интерполяции, вычисленных в примере

1.1.

4.5Интерполяционный многочлен Лагранжа

Интерполяционный многочлен для этого метода имеет вид

68

Pn(x) = y0 b0(x) + y1 b1(x) + … + yn bn(x)

, где

yi – ординаты интерполируемой функции определенной n+1 табличным значением (xi ; yi );

bi(x) – многочлен степени n, коэффициенты которых можно найти с помощью n+1 уравнений Pn(xi) = yi , где i=0, 1, … , n

В результате получим систему уравнений

y0 b0(x0) + y1 b1(x0) + … + yn bn(x0) = y0

. . .

y0 b0(xn) + y1 b1(xn) + … + yn bn(xn) = yn

Если значение bj(xi) выбраны так, что

1, при i = j, bj (xi) 0, при i j,

то записанные выше уравнения будут выполняться. Это условие означает, что любой многочлен bj(x) равен нулю при каждом xi , кроме xj . Следовательно, в общем случае многочлен bj(x) имеет вид ( см. свойства полиномов)

 

 

 

bj(x)= сj (x-x0) (x-x1) . . .

(x-xj-1) (x-xj+1) . .

. (x-xn)

 

 

Так как bj(xj)=1, то коэффициент сj

определится выражением

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

сj=

-----------------------------------------------------

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(x-x0) (x-x1)

. . .

(x-xj-1) (x-xj+1) . . .

(x-xn)

 

 

 

Для искомого многочлена получаем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

( − )( − ) ( −

)( −

) ( − )

 

 

 

 

 

 

 

=

 

 

 

 

 

0

1

 

−1

 

 

+1

 

 

 

 

 

 

 

 

 

 

 

 

 

)( −

 

) ( − )

 

 

 

 

( − )( − ) ( −

 

 

 

 

=0

 

 

 

0

1

 

−1

 

+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введя обозначения

Lj(x)= (x-x0) (x-x1) . . . (x-xj-1) (x-xj+1) . . . (x-xn) ,

можем записать полученный многочлен в более компактном виде

 

n

L j (x )

 

p

(x) y

j L j (x j)

(4.4)

n

j 0

 

69

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

Пример 4.3

Решить задачу, рассмотренную в предыдущем примере, используя формулу интерполяционного многочлена Лагранжа.

Запишем интерполяционную формулу Лагранжа для трех точек

p x y

 

(x x1)(x x 2)

y

 

(x x 0)(x x 2)

y

 

(x x 0)(x x1)

 

(x 0 x1)(x 0 x 2)

 

 

 

 

(x 2 x 0)(x 2 x1)

 

0

 

1 (x1 x 0)(x1 x 2)

 

2

Для наших данных

 

 

 

 

 

 

 

 

 

 

 

p(x) 1

(x 1)(x 3)

2

(x 0)(x 3)

10

(x 0)(x 1)

 

 

 

 

 

 

 

 

 

(0 1)(0 3)

 

(1 0)(1 3)

(3 0)(3 1)

 

1

(x 1)(x 3) x (x 3)

10

x (x 1)

 

 

 

 

3

 

 

6

 

 

 

 

 

Отсюда P(0.5)=(0.5-1)(0.5-3)/3 – 0.5•(0.5-3)+10•0.5•(0.5-1)/6=1.25 P(2)=(2-1)(2-3)/3 – 2•(2-3)+10•2•(2-1)/6=5

Естественно, что полученный результат совпадает с результатом предыдущего примера. Однако, благодаря формуле Лагранжа не было необходимости составлять, а затем решать систему линейных уравнений относительно коэффициентов полинома. Нетрудно заметить, что выполнив предыдущие преобразования в общем виде мы получили бы ту же формулу полинома, что и в предыдущем примере.

Составим программу, реализующую вычисления интерполяционной формулы Лагранжа.

Dim X(1 To 3) As Single

' определяем размерности массивов

Dim Y(1 To 3) As Single

' с координатами точек

Sub Lagrang(X, Y, N, Xt, Yt)

Rem подпрограмма вычисления многочлена Лагранжа Rem Входные данные:

Rem X(N),Y(N) – значения табличной функции Rem N - число точек в табличной функции

70

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