1.3 Примеры разработки алгоритмов
____________________________________________________________________
1.3.3 Обработка результатов эксперимента
При решении инженерных и экономических задач часто возникает необхо-
димость в получении математических зависимостей между различными пара-
метрами, характерными для данной задачи. Исходной информацией для уста-
новления этих зависимостей является физический эксперимент или экономиче-
ские показатели. Как в том, так и другом случае мы располагаем либо таблич-
ными данными, либо точками на графике. Пусть имеется зависимость Pi , полу-
ченная при дискретных значениях Z i . Значения Pi получены из эксперимента с некоторыми погрешностями. Требуется найти зависимость P
f (Z ) .
P
7
i
3
2
1
Z |
Z2 Z3 |
Zi |
Z7 |
Z |
1 |
|
|
|
Рис. 1.11. График функции
Учитывая, что P
f (Z ) имеет явно выраженную нелинейную зависимость,
запишем уравнение кривой второго порядка.
P X 0 X1Z X 2 Z 2 |
(1.13) |
В этом уравнении X 0 , X 1 , |
X 2 неизвестные пока коэффициенты. Для нахо- |
ждения этих коэффициентов запишем для всех имеющихся значений Pi зави-
симость вида (1.13).
P X |
0 |
X |
Z |
1 |
X |
2 |
Z 2 |
1 |
1 |
|
|
1 |
P X |
0 |
X |
Z |
2 |
X |
2 |
Z |
2 |
2 |
1 |
|
|
|
2 |
..………………
36
Глава 1 Основы программирования
____________________________________________________________________
P |
X |
|
X Z |
|
X Z |
2 |
||
i |
|
0 |
1 |
|
i |
2 i |
(1.14 |
|
|
|
|
||||||
……………………. |
||||||||
P |
X |
0 |
X |
Z |
7 |
X |
Z |
2 |
7 |
|
1 |
|
2 |
|
7 |
||
Получена система из 7 уравнений с 3 неизвестными. Необходимо таким
методом найти X 0 , X 1 , X 2 , чтобы зависимость (1.13) лучшим способом описала результаты, представленные на графике.
Для нахождения трех неизвестных предстоит решить систему из 7 уравне-
ний. Если мы отбросим какие-либо 4 лишних уравнений, мы найдем значения неизвестных без учета этих отброшенных уравнений. С другой стороны, систе-
ма (1.14) может быть несовместной, т.е. при ее решении мы можем не получить тождества и при подстановке найденных значений неизвестных в уравнения
системы получим разницу между левой и правой частями.
Обозначим |
эти разницы в соответствии с номерами уравнений через |
1 , 2 ... i ,..., 7 и |
будем называть их невязками. Невязка представляет собой |
разницу между аналитической зависимостью и значениями Pi , заданными в ка-
честве исходной информации в дискретных точках Z i .
Для того чтобы аналитическая зависимость наиболее полно отражала ре-
зультаты эксперимента, будем минимизировать величину:
7
S |
|
2 |
|
|
i |
|
|
|
|
(1.15) |
|
|
i 1 |
|
|
|
|
|
Невязки взяты в квадрат для того, чтобы любая невязка получалась с од-
ним положительным знаком, при этом соотношения малых и больших невязок увеличатся. Минимизация S будет выражать наилучшее приближение анали-
тической зависимости к экспериментальным точкам (при заданной степени по-
линома). Рассмотренный нами метод носит название метода наименьших квад-
ратов [3].
Общая формулировка задачи:
необходимо решить систему n-линейных уравнений с m неизвестными.
37
1.3 Примеры разработки алгоритмов
____________________________________________________________________
a11x1+a12x2+…+a1jxj+…a1mxm=b1 a21x1+a22x2+…+a2jxj+…a2mxm=b2
(1.16)
ai1x1+ ai2x2+…+aijxj +…aimxm =bi
……………………………………………………..
an1x1+an2x2+…+anjxj+…anmxm=bn
Запишем i-ое уравнение в более компактном виде:
|
|
m |
|
|
|
|
|
|
|
|
|
|
a ijxj = bi |
|
|
|
(1.17) |
||
|
|
j |
1 |
|
|
|
|
|
|
|
|
n |
n |
m |
|
|
|
|
|
тогда |
S |
2 |
( |
a |
ij |
x |
j |
b )2 |
(1.18) |
|
|
i |
|
|
|
i |
|
||
|
|
i 1 |
i 1 |
j 1 |
|
|
|
|
|
Для минимизации S возьмем от этой величины частные производные по каждой переменной xj и приравняем к 0.
s |
|
n |
m |
|
|
2 |
( |
aij x j bi )aij , |
(1.19) |
||
|
|||||
x j |
|||||
|
i 1 |
j 1 |
|
s0 , отсюда:
x j
n |
m |
|
( |
aij x j bi )aij 0 , |
(1.20) |
i 1 |
j 1 |
|
Таких уравнений будет столько, сколько неизвестных xj и получим систему n-линейных алгебраических уравнений с n неизвестными, которые решаются методом исключения с выделением главного элемента.
38
Глава 1 Основы программирования
____________________________________________________________________
1.3.4 Решение системы линейных алгебраических уравнений
Будем рассматривать систему из n уравнений с n неизвестными. Методы численного решения систем линейных уравнений подразделяются на две груп-
пы: прямые (конечные) и итерационные (бесконечные). Естественно, никакой практический метод решения не может быть бесконечным. Мы имеем в виду только то, что прямые методы могут в принципе (с точностью до ошибок ок-
ругления) дать такое решение, если оно существует, с помощью конечного чис-
ла арифметических операций. С другой стороны, при использовании итераци-
онных методов, для получения точного решения теоретически требуется беско-
нечное число арифметических операций. Значит, при практическом исследова-
нии итерационных методов появляются ошибки ограничения. Это не значит,
что прямые методы лучше, т.к. ошибки округления, появляющиеся в прямых методах, играют большую роль. В некоторых случаях из-за ошибок округления могут быть получены бессмысленные результаты. Несмотря на неизбежную ошибку ограничения, итерационные методы могут оказаться наиболее удобны-
ми, т.к. при его использовании ошибки округления не накапливаются.
Рассмотрим один из прямых методов называемых методом исключения
(метод Гаусса).
Для иллюстрации метода рассмотрим систему из 3 уравнений с 3 неиз-
вестными:
a11x1+a12x2+a13x3=b1 (1)
a21x1+a22x2+a23x3=b2 (2) (1.21) a31x1+a32x2+a33x3=b3 (3)
Здесь хотя бы один из коэффициентов a11, a21, a31 должен быть отличен от
0, иначе мы бы имели дело с 3 уравнениями с двумя неизвестными. Пусть a11≠0, если, это не так мы можем переставить местами уравнения, так чтобы ко-
39
1.3 Примеры разработки алгоритмов
____________________________________________________________________
эффициент при x1 в первом уравнении был отличен от 0. Перестановка уравне-
ний систему не изменит. Теперь введем множитель:
m2 |
a21 |
(1.22) |
|
a11 |
|||
|
|
Умножим 1-е уравнение (1.21) на m2 и вычтем его из 2-го уравнения (1.21).
Имеем:
(a21 |
m2a11)x1 |
(a22 |
|
m2a12 )x2 |
(a23 |
m2a13 )x3 |
b2 |
m2b1 |
(1.23) |
|||||
Но |
a |
|
m a |
a |
|
|
a21 |
a |
0 |
|
|
|
(1.24) |
|
|
|
|
|
|
|
|
||||||||
|
|
21 |
|
2 11 |
|
21 |
|
a11 11 |
|
|
|
|
|
|
Обозначим |
|
|
a22 |
|
a22 |
|
m2a12 |
|
|
|
|
|
||
|
|
|
|
a23 |
|
a23 m2a13 |
|
|
|
(1.25) |
||||
|
|
|
|
b2 |
b2 |
m2b1 |
|
|
|
|
|
|||
Тогда 2-е уравнение (1.21) приобретет вид:
a22 x2 a23 x3 b2 |
(1.26) |
Заменим это уравнение в (1.21) уравнением (1.26), получим систему:
a11x1+a12x2+a13x3=b1 |
(1) |
|
|||
a22 x2 |
a23 x3 |
b2 |
(4) |
(1.27) |
|
a31x1+a32x2+a33x3=b3 |
(3) |
|
|||
Умножим теперь (1) |
в (1.27) на m3 |
|
a31 |
и вычтем из (3) |
|
|
a11 |
||||
|
|
|
|
|
|
a32 |
a32 |
m3a12 |
|
|
|
40