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

14-es / ЭС - Информатика (ИСФ) / умк_Спиридонов_Информатика_ч.1_2013

.pdf
Скачиваний:
74
Добавлен:
18.05.2015
Размер:
4.15 Mб
Скачать

Метод Эйлера основан на непосредственной замене производной разностным отношением по приближенной формуле

Dy/Dx = f(x, y),

где Dy = y(x + h) – y(x), Dx = (x+h) – x = h .

Приближенное значение yk в точке xk = x0 + kh вычисляется по формуле yk+1 = yk+hf(xk, yk) (k = 0, 1, 2, …, n).

6.5.3. Метод Рунге Кутты

Схема четвертого порядка точности: yn+1 = yn + (k1 + 2k2 + 2k3 + k4 ) / 6,

k1 = hnj( xn , yn ) , k2 = hnj( xn + hn / 2, yn + k1 / 2) ,

k3 = hnj( xn + hn / 2, yn + k2 / 2) , k4 = hnj( xn + hn , yn + k3 ) .

В общем виде методы Рунге Кутты можно описать следующим разностным уравнением:

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

yn+1 - yn

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= siki ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i=1

 

 

 

 

 

 

 

 

 

 

 

где

 

 

+ a × h, y

 

i−1

 

 

 

 

= hϕ(x , y

 

).

 

 

 

 

k = hj x

n

+ b k

, i = 2,3,..., m, k

n

 

 

 

 

 

i

n

i

 

ij

j

 

1

 

n

 

 

 

 

 

 

 

 

 

 

j =1

 

 

 

 

 

 

 

 

 

 

 

 

 

Погрешность метода Рунге Кутты

Rs

£

xl x0

 

max (h4 ) max

 

j ( IV )

 

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2880

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6.6.Интерполирование функций

Взадачах математического моделирования очень часто возникает необходимость заменить используемую в расчетах функциональную зави- симость y(x) приближенной функцией ϕ(x, a ) , по которой легко вычис-

ляются значения исходной функции и которая в определенном смысле близка к y(x) . После такой замены все расчеты выполняют, используя за-

висимость ϕ(x,

 

) , причем близость

y(x) и ϕ(x,

 

) обеспечивается подбо-

a

a

ром свободных параметров

 

 

 

 

 

 

 

 

 

 

 

= {a0 , a1, ..., an } .

(6.2)

 

 

a

Интерполяция может быть линейной или нелинейной, в соответствии

с характером зависимости функции

ϕ(x,

 

) от параметров

 

.

a

a

151

6.6.1. Линейная интерполяция

При линейной интерполяции функция ϕ(x, a ) имеет вид

n

 

j(x, a ) = a jj j (x),

(6.3)

j =0

где все функции ϕ j (x) линейно независимы.

Подставляя (6.3) в (6.2), получим систему линейных уравнений для определения ai:

n

 

 

a jj j (xi ) = yi , 0

£ i £ n.

(6.4)

j =0

Единственность решения обеспечивается требованием неравенства нулю определителя системы (6.4):

 

j0

(x0 )

j1

(x0 )...

jn (x0 )

 

 

 

D = .

 

...

 

 

.

¹ 0

(6.5)

 

j

0

(x )

j (x )...

j

n

(x )

 

 

 

 

n

1

n

 

n

 

 

при xk ¹ xl

(т.е. при любых несовпадающих узлах).

 

Для

практических вычислений удобно

использовать

многочлен

Pn (x) в форме интерполяционного полинома Лагранжа или Ньютона.

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

Интерполяционным многочленом Лагранжа называется многочлен

вида

n

(x - x0 )(x

- x1)...(x

- xk -1)(x - xk +1)...(x - xn )

 

y = Pn (x) = yk

=

(x

- x )(x - x )...(x

- x

)(x

- x

)...(x

- x )

k =0

k

0

k

1

 

k

 

k -1

k

k +1

k

n

 

 

 

 

n

 

n

 

 

 

 

 

 

 

 

 

 

=

yk

x x j

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k =0

 

 

x

- x

j

 

 

 

 

 

 

 

 

k =0 k

 

 

 

 

 

 

 

 

 

 

j

¹k

 

 

 

 

 

 

 

 

Этот многочлен удовлетворяет условиям

 

 

 

 

 

 

 

Pn (x) = yk ,

k = 0, 1, …,

n,

 

 

 

(6.6)

где xk узлы (или полюсы) интерполяции; yk

заданные числа.

 

Производя интерполирование функции f(х)

по формуле Лагранжа,

заменяют эту функцию полиномом Рn(х), совпадающим с ней в (n + 1) дан- ных точках отрезка [a, b]. В остальных точках этого отрезка разность

152

Rn(x) = f(x) – P n(x) отлична от нуля и представляет собой погрешность ме- тода. Термин «интерполяция» впервые употребил Д. Валлис (1656 г.) при составлении астрономических и математических таблиц.

6.6.3. Интерполяционный многочлен Ньютона

Pn (x) = Pn (x0 ) + (x x0 )P(x0 , x1) + (x x0 )(x x1)P(x0 , x1, x2 ) + ...

+(x x0 )(x x1)...(x xn−1)P(x0 , x1, x2 , ..., xn ) .

Таким образом, выражают многочлен n -й степени через его значе- ния в (n + 1) узлах x0 , x1, x2 , ..., xn . Ввиду того, что значения интерполяци- онного полинома в этих узлах совпадают со значениями интерполируемой функции, разделенные разности выражаются через узловые значения функции. В результате получается полином, называемый интерполяцион- ным многочленом Ньютона:

n

y(x) ≈ y(x0 ) + (x x0 )(x x1)...(x xk −1) y(x0 , ..., xk ).

k =1

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

Погрешность многочлена Ньютона оценивают по формуле

 

 

 

 

 

h n+1

 

( y(x) − P (x)( <

2n

 

M

,

 

 

 

 

 

n+1 2

n

π

 

где M n+1 = max( y(n+1) (ξ)) – максимальное значение производной интер- полируемой функции на отрезке между наименьшим и наибольшим из зна- чений x0 , x1, x2 , ..., xn , a h = xi+1 xi (предполагается, что шаг постоянен).

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

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

153

6.6.4. Нелинейная интерполяция

Для табулирования быстроменяющихся функций требуется весьма малый шаг, т.е. возникает необходимость создавать таблицы очень боль- ших объемов, что в ряде случаев неприемлемо. Оказывается, что преобра- зованием переменных η = η( y) и ξ = ξ(x) можно добиться того, чтобы в новых переменных график η(ξ) был близок к прямой хотя бы на отдель- ных участках. В этом случае интерполяцию проводят в переменных (η,ξ) , а затем обратным интерполированием находят yi = yi ) .

Преобразования η( y) и ξ(x) должны быть достаточно простыми (ло- гарифмическая, экспоненциальная, тригонометрические и некоторые дру- гие функции). При этом надо заботиться о том, чтобы и обратное преобра- зование y(η) оказалось несложным.

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

Пример 1. Получить формулу для нелинейной двухточечной интер- поляции функции y(x) , если переменные можно преобразовать по форму- лам η = ln( y) и ξ = x .

Составим интерполяционный полином Ньютона на двухточечном шаблоне:

η = η +

η1 − η0

(ξ − ξ ).

 

0

ξ1

− ξ0

0

 

 

В исходных переменных имеем

ln( y) = ln( y ) +

ln( y1) − ln( y0 )

(x x ) ,

 

0

x1

x0

0

 

 

и окончательно y = y0 ( y1 / y0 )( xx0 ) /( x1 x0 ) .

6.6.5. Интерполяция сплайнами

Слово «сплайн» переводится как «гибкая линейка». Такую «линей- ку» можно использовать для проведения кривых через заданную совокуп- ность точек, изгибая и придерживая ее так, чтобы ребро проходило через все точки на плоскости. Равновесие гибкой линейки описывается уравне-

154

нием ψ′′(x) = 0 , т.е. интерполяционный полином на участке между каждой парой соседних точек имеет третью степень:

ψ(x) = ai + bi (x xi−1) + ci (x xi−1)2 + di (x xi −1)3 ,

xi−1 x xi , 0 ≤ i N .

Вузлах значения многочлена и интерполируемой функции совпадают:

ψ(xi −1) = yi−1 = ai ,

ψ(xi ) = yi = ai + bihi + cihi2 + dihi3 , hi = xi xi−1,1 ≤ i N .

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

+ 2ci (x xi −1) + 3di (x

xi−1)

2

,

ψ (x) = bi

 

′′

 

 

 

 

x xi ,

ψ (x) = 2ci + 6di (x xi−1) , xi−1

b

= b + 2c h + 3d h2 ,

 

 

 

 

i+1

i

i i

i i

 

 

 

ci+1 = ci + 3dihi , 1 ≤ i N −1.

Недостающие условия можно получить, полагая, например, что вто- рая производная равна нулю на концах участка интерполирования:

ψ′′(x0 ) = 0, c1 = 0,

ψ′′(xN ) = 0, cN + 3dN hN = 0,

Уравнения позволяют определить все 4N неизвестных коэффициен-

та: ai , bi , ci , di (1 ≤ i N ) .

6.6.6. Многомерная интерполяция

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

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

155

ется вводить преобразование переменных η = η( y) , ξ = ξ(x) , ϕ = ϕ(z) , подбирая подходящие формулы. При удачном выборе таких формул можно использовать в новых переменных интерполяционный полином невысокой степени.

Осуществляя многомерную интерполяцию, следует помнить, что расположение узлов не может быть произвольным. Например, при интер-

поляции полиномом первой степени P (x, y) узлы не должны лежать на

1

одной прямой в плоскости. Действительно, определитель системы трех уравнений

zi = a + bxi + cyi , 1 ≤ i ≤ 3

записывается в виде

= x1( y2 y3 ) + x2 ( y3 y1) + x3 ( y1 y2 ).

Условие размещения трех точек на одной прямой выглядит следую- щим образом:

x2 x1 = x3 x2 . y2 y1 y3 y2

После простых преобразований имеем

x1( y2 y3 ) + x2 ( y3 y1) + x3 ( y1 y2 ) = 0 ,

т.е. если узлы лежат на одной прямой, то определитель обращается

в нуль и построить полином P (x, y) вида zi невозможно.

1

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

При последовательной интерполяции завышается степень интерпо- ляционного полинома. При треугольной конфигурации расположения уз- лов степень многочлена будет минимальной. Многочлен n -й степени в форме Ньютона в этом случае можно представить как обобщение одно- мерного варианта записи:

n n−1

i−1

j −1

Pn (x, y) = ∑ ∑ z(x0 , ..., xi , y0 , ..., y j )

(x xp )( y yq ) .

i=0 j =0

p=0

q=0

156

6.7. Регрессия

Термин «регрессия» ввел в употребление Ф. Гальтон один из соз- дателей математической статистики. Сопоставляя рост детей и их родите- лей, он обнаружил, что соответствие между ростом отцов и детей выраже- но слабо. Оно оказалось меньшим, чем он ожидал. Гальтон объяснил это явление наследственностью не только от родителей, но и от более отда- ленных предков. По его предположениям, рост определяется наполовину родителями, на четверть дедушкой и бабушкой, на одну восьмую пра- дедом и прабабкой и т.д. Неважно, насколько был прав Гальтон. Главное в том, что он обратил внимание на движение назад по генеалогическому дереву и назвал его регрессией, позаимствовав понятие движения назад, противоположное прогрессу движению вперед.

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

6.7.1. Линейная регрессия

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

Рис. 6.11. Зависимость между измеряемыми величинами

Уравнение прямой линии имеет вид y = а + bх.

Здесь а длина отрезка от начала координат до точки пересечения прямой с осью Оу, b тангенс угла наклона α прямой к оси Ох (b = tg α).

157

Прямую линию стараются провести так, чтобы сумма квадратов от- клонений расчетных значений ур от экспериментальных значений уэ была минимальной для всех n рассматриваемых опытов:

n

s= ( y p yэ)2 → min .

i=1

Другими словами, n это общее число опытов, в которых измеря- лись значения величин х и у; s сумму квадратов отклонений.

Уравнение y = a + bx, в которое подставлены найденные значения коэффициентов, принято называть уравнением линейной регрессии. Поль- зуясь этим уравнением, можно, не проводя дальнейших опытов, рассчитать для заданного х соответствующее значение у. Таким образом, с помощью уравнения регрессии можно прогнозировать величину у. Разумеется, такой прогноз не будет абсолютно точным. Близость прогнозируемого значе- ния у к фактическому значению зависит в основном от точности, с которой выполняется эксперимент, и от того, насколько существующая зависи- мость между у и х близка в действительности к линейной.

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

По программе вычисляются не только коэффициенты уравнения рег- рессии, но и среднее квадратичное отклонение расчетных значений у от экспериментальных. Среднее квадратичное отклонение σ вычисляется по формуле

σ =

s

 

.

 

 

n −1

Рассмотрим применение программы для выполнения практических расчетов.

Известно, что с повышением температуры растворимость солей в воде увеличивается. Напомним, что растворимостью называется концен- трация соли в насыщенном растворе.

Экспериментальные данные по растворимости соли при различных температурах приведены в таблице 6.1.

Таблица 6.1

Температура (х), °С

10

20

30

40

50

60

70

80

Растворимость (y), г/л

42

50

62

67

75

86

92

103

 

 

 

 

 

 

 

 

 

158

Обработав экспериментальные данные с помощью компьютера, по- лучаем уравнение регрессии y = 33,71 + 0,85x и среднее квадратичное от- клонение s = 1,46. Программа оказалась достаточно простой и удобной для использования, но, к сожалению, область ее применения ограничена толь- ко линейными зависимостями. Однако нужно иметь в виду, что некоторые нелинейные зависимости можно преобразовать в линейные.

Например, гиперболическая связь у = а0 + а1/х линеаризуется заме- ной переменной z = 1/x, тогда у = а0 + а1z.

Показательная связь y = a × ea1x линеаризуется путем логарифмиро-

вания: v = lny = lna0+a1x.

Степенная связь после логарифмирования линеаризуется заменой

ln y = р, ln a0 = с, ln x = z, тогда р = с + а1z.

Логарифмическая связь у = а0+a1lnх линеаризуется заменой z = lnх, тогда у = а0+a1z.

Комбинированная связь у = 1/ (ао+а1е-x) линеаризуется заменой

v = 1/у и z = ex, тогда v = a0 + a1z.

Широкое использование линейных зависимостей и связей, легко приводимых к линейным, объясняется следующим. Линейные связи про- сты и требуют относительно малого объема вычислений, и методика их ус- тановления более глубоко разработана.

Рассмотрим пример линеаризации. Как известно, зависимость кон- станты скорости химической реакции от температуры имеет экспоненци- альный характер:

E

k = k0e RT .

Прологарифмировав это выражение, получим

ln k = ln k0 E 1 .

R T

Введем следующие обозначения:

y = ln k ; a = ln k

 

; b = −

E

;

x =

1

.

0

 

 

 

 

R

 

 

T

 

 

 

 

 

С учетом этих обозначений получаем линеаризованное уравнение регрессии у = а + bх. Теперь снова можно воспользоваться нашей про- граммой. Вычислив коэффициенты a и b, можно рассчитать предэкспонен- циальный множитель k0 и энергию активации Е.

Таким образом, благодаря линеаризации область применения про- граммы значительно расширяется.

159

6.7.2. Корреляция

Желая установить связь между двумя величинами, исследователь на- носит их значения на график. Каждой паре значений величин х и у на гра- фике соответствует точка. Обычно такие точки не ложатся на одну линию, а занимают на плоскости чертежа некоторую область, образуя так назы- ваемую диаграмму рассеивания (рис. 6.12). Причины рассеивания могут быть самыми различными. Среди них можно назвать погрешности измере- ний, влияние неучтенных факторов и т.д. Даже если один и тот же опыт в химической лаборатории проводится несколько раз, результаты измере- ний обычно отличаются друг от друга.

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

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

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

Рис. 6.12. Диаграммы рассеивания

160