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

книги / Информатика.-1

.pdf
Скачиваний:
0
Добавлен:
20.11.2023
Размер:
6.16 Mб
Скачать

Решается система линейных алгебраическихуравнений вида

a x a x ...

a

x b ,

 

 

11

1

12

2

1n

n

1

 

 

a21 x1 a22 x2 ...

a2n xn b2

,

(2)

.................................................

 

 

 

 

 

 

 

 

 

 

 

a

x

a

x ...

a

x b

 

 

n1

1

n2

2

nn

n

n

 

 

или в матричной форме:

A x b ,

 

a11

a12

где

a

 

a

A

21

22

 

... ...

 

 

 

an2

 

an1

... a1n

... a2n

... ...

... ann

 

 

x1

 

 

 

,

x

 

,

 

x

2

 

 

 

 

...

 

 

 

 

 

 

 

 

 

xn

 

 

b1

bb...2 ,

bn

А – матрица коэффициентов системы; x – столбец неизвестных; b – столбец свободных членов.

Система уравнений (2) путем последовательного исключения неизвестных приводится к системе уравнений вида

 

 

 

 

 

 

 

 

 

x1

a12

x2

 

 

,

 

 

... a1n xn b1

 

 

 

 

x2

 

 

(1)

,

 

 

... a1n xn b2

 

 

 

 

 

 

 

 

 

 

(3)

 

 

.......................

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(n 1)

.

 

 

 

 

xn bn

 

 

Коэффициенты системы (3) представляют собой треугольную матрицу с единичной главной диагональю. При этом формулы пересчета коэффициентов системы на каждом k-м шаге имеют вид

a(k 1)

akj(k 1) akj(k 1) , j k,...,n , kk

121

 

 

 

(k 1)

 

b(k 1)

,

 

 

 

 

k

 

 

 

 

b

a(k 1)

 

 

 

 

k

 

 

 

 

 

 

 

 

kk

 

 

(k )

(k 1)

(k 1)

(k 1)

,

i k 1,...,n;

j k,...,n ,

aij

aij

aik

akj

bi(k ) bi(k 1) aik(k 1) bk(k 1) ,

где верхний индекс (k – 1) соответствует предыдущему шагу прямого хода.

Приведение системы (2) к виду (3) называется прямым ходом метода Гаусса. При этом процесс исключения k-го неизвестного называется k-м шагом прямого хода.

Определение значений неизвестных из системы (3) назы-

вается обратным ходом метода Гаусса и осуществляется по формуле

(i 1)

n

(i 1)

xj ,

i n,n 1,...,1 .

(4)

 

xi bi

aij

 

 

 

 

 

 

j i 1

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

При использовании метода Гаусса с выбором главного элемента в столбце на каждом k шаге сначала ищем элемент,

равный max

 

a(jkk 1)

. Пусть это будет элемент amk(k 1) . Меняем мес-

k j n

 

 

 

 

 

тами k-е и m-е уравнения и производим k-й шаг прямого хода метода Гаусса.

Блок-схема алгоритма решения системы линейных алгебраических уравнений методом Гаусса с выбором главного (максимального) элемента в столбце приведена на рис. 20–25.

122

Начало

 

Ввод n,

 

a(n,n), b(n)

 

а1 = а, b1 = b

 

k = 1, n

 

П1

 

m 0

нет

 

да

 

П2

 

П3

 

П4

 

Вывод b(n)

 

Начало

m = 0

F = ak,k

j = k + 1, n

нет

aj,k > F

да

F = aj,k m = j

Конец

Рис. 21. Блок-схема подпрограммы (П1) поиска главного элемента в k-м столбце

Начало

l = k, n

q = ak,l

ak,l = am,l

am,l = q

Проверка

Конец

Рис. 20. Блок-схема основной программы

q = bk bk = bm bm = q

Конец

Рис. 22. Блок-схема подпрограммы (П2) перестановки k-го

и m-го уравнений при m 0

123

Начало

q = ak,k

j = k, n

ak,j = ak,j/q

bk = bk/q

i = k + 1, n

q = ai,k

j = k, n

ai,j = ai,j ak,j q

bi = bi bk q

Конец

Рис. 23. Блок-схема подпрограммы (П3) прямого хода метода Гаусса (приведение системы к треугольному виду)

Начало

i = n – 1,1

j = n, i + 1

bi = bi ai,j bj

Конец

Рис. 24. Блок-схема подпрограммы (П4) обратного хода метода Гаусса

Начало

i = 1, n

S = 0

j = 1, n

S = S + a1i,j bj

Вывод

S b1i

Конец

Рис. 25. Блок-схема подпрограммы (Проверка) проверки правильности решения

124

Решение задачи интерполяции

Интерполяция или интерполирование – способ нахождения промежуточных значений величины по имеющемуся дискретному набору известных значений.

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

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

При интерполяции – по таблице значений (например, полученных при проведении эксперимента) строится аналитическое выражение функции y f (x) для всех значений х на отрезке

[a,b], если известны ее значения yi для некоторых точек xi этого отрезка, т.е. yi f (xi ), i 1,2,...,n , при этом кривая полученной

функции должна проходить точно через имеющиеся точки данных. Точки xi называются узлами интерполяции, а функция y f (x) – интерполирующей функцией.

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

На практике чаще всего применяют интерполяцию много-

членами.

При линейной интерполяции считается, что на каждом от-

резке [xi,xi+1] функция y f (x) является линейной,

представ-

ленной алгебраическим двучленом,

 

f (x) a0 a1 x .

(5)

В случае если заданы значения в нескольких точках, то получается кусочно-линейная функция.

125

Рис. 26. Построение интерполирующей функции по дискретному набору исходных табличных данных: ● – исходные табличные данные; –– интерполирующая функция f(x)

Зависимость (5) полностью определена и может быть использована для вычисления y при любых x [a,b] , если извест-

ны a0 и a1. Подставив в (5) координаты точек (xi,yi) и (xi+1,yi+1), получим систему уравнений для нахождения a0 и a1

a0 a1 xi yi ,a0 a1 xi 1 yi 1.

Интерполяция алгебраическим многочленом для набора то-

чек (xi,yi), i = 1,2,…,n + 1 отрезка [a,b] – построение многочлена Pn(x) степени не выше n, который записывается в виде

P (x) a

n

xn a

n 1

xn 1 ... a x a

0

y.

(6)

n

 

1

 

 

Значения a0, a1, …, an, при которых многочлен (6) проходит через все заданные точки, могут быть получены из решения системы уравнений, каждое из которых записывается для узла интерполяции:

 

 

n

an 1

 

n 1

 

a1 x1 a0 y1,

 

 

an x1

x1

...

 

 

a

xn

a

xn 1

...

a x

a

y

 

,

 

(7)

 

n

2

 

n 1

 

2

 

1

2

 

0

 

 

2

 

 

........................................................

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

xn

 

a

 

xn 1 ...

a

x

n 1

a

y

n 1

.

 

n

n 1

n 1

n 1

1

 

 

0

 

 

 

 

126

Решение системы линейных уравнений (7) относительно неизвестных a0, a1, …, an может быть выполнено методом Гаусса.

Начало

Ввод n, z,

x(n + 1), y(n + 1)

i = 1, n + 1

j = 1, n + 1

k = n – j + 1

aij = xik

bi = yi

Метод Гаусса

yz = 0

i = 1, n + 1

k = n – i + 1 yz = yz + bi zk

Вывод b(n + 1), z, yz

Конец

Рис. 27. Блок-схема алгоритма решения задачи интерполяции (интерполяция алгебраическим многочленом)

127

Блок-схема алгоритма решения задачи интерполяции алгебраическим многочленом приведена на рис. 27, где aij – матрица коэффициентов системы уравнений; bi – вектор свободных членов, векторы x и y – исходные табличные данные; z – значение аргумента x, для которого вычисляется промежуточное значение функции yz после нахождения коэффициентов многочлена. В результате выполнения приведенного на рис. 27 алгоритма получаем an = b1, an–1 = b2, …, a0 = bn+1.

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

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

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

В задачах интерполяции требовалось, чтобы искомая зависимость y f (x) совпадала со значениями таблично заданной

функции yi f (xi ), i 1,2,...,n в узлах интерполяции.

На практике часто бывает, что аналитическое выражение такой зависимости получить невозможно или очень сложно. В этом случае решается задача аппроксимации, т.е. задача нахождения такой достаточно простой функции, значения которой на отрезке [a,b], содержащем узлы интерполяции xi , i 1,2,...,n ,

возможно, мало отличаются от значений таблично заданной функции (рис. 28).

Для решения задачи аппроксимации необходимо выбрать вид аппроксимирующей функции исходя из анализа графического представления yi f (xi ), i 1,2,...,n , а затем по исходным

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

перболической, экспоненциальной, логарифмической или степенной зависимостью, а также многочленом Pm(x) степени m вида

P (x) a

0

a x a

2

x2

... a

m

xm y.

(8)

m

1

 

 

 

 

128

Рис. 28. Построение аппроксимирующей функции по дискретному набору исходных табличных данных: ● – исходные табличные данные; –– аппроксимирующая функция f(x)

Для определения параметров a0, a1, …, am зависимости (8) по исходным данным xi, yi, i = 1,2,…,n широкое распространение получил метод наименьших квадратов. При этом степень многочлена m обычно принимается меньшей числа узлов интерполяции, т.е. m n .

При аппроксимации данных методом наименьших квадратов определяют такие значения a0, a1, …, am зависимости Pm(x), при которых достигается минимум суммы квадратов отклонений этой функции от табличных значений yi, т.е.

n

S (Pm (xi ) yi )2 min

i 1

или

S n a0 a1 xi a2 xi2 ... am xim yi 2 min. (9)

i 1

Минимум функции будет найден, если приравнять к нулю частные производные от S по a0, a1, …, am, при этом получается система m+1 уравнений

129

S

 

 

n

 

 

2

m

 

 

 

 

 

 

 

 

2 (a0

a1

xi a2

xi

... am xi

yi ) 1 0,

 

a0

 

 

 

 

i 1

 

 

2

m

 

 

 

S

 

 

n

 

 

 

 

 

 

 

 

 

 

2 (a0

a1

xi a2

xi

... am xi

yi ) xi

0,

 

a1

 

 

 

 

i 1

 

 

2

m

2

 

 

S

 

 

n

 

 

 

 

 

 

 

 

 

2 (a0

a1

xi a2

xi

... am xi

yi ) xi

0,

(10)

a2

 

 

 

 

i 1

 

 

 

 

 

 

 

....................................................................................

 

 

S

 

 

n

 

 

2

m

m

 

 

 

 

 

 

 

 

 

 

 

 

2 (a0

a1 xi a2

xi

... am xi

yi ) xi

0.

 

am

 

 

 

 

 

 

i 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сократив каждое уравнение системы (10) на 2, раскрыв скобки и сгруппировав суммы, получаем следующую систему

 

 

 

n

 

 

 

(для краткости записи вместо используем ) :

 

 

 

 

i 1

 

 

 

a0 n

 

a1 xi a2 xi2

... am xim yi ,

 

 

xi a1 xi2 a2 xi3

am xim 1 yi xi ,

 

a0

 

 

xi2 a1 xi3 a2 xi4

am xim 2 yi xi2 ,

(11)

a0

 

 

 

 

 

 

 

............................................................................................

 

 

xim a1 xim 1 a2 xim 2

am xi2 m yi xim .

 

a0

 

 

 

 

 

 

 

 

Система уравнений (11) относительно неизвестных a0, a1, …, am является линейной, поэтому может быть решена, например, методом Гаусса. Полученные в результате значения a0, a1, …, am подставляют в (8), что позволяет полностью определить аппроксимирующую функцию.

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

130

Соседние файлы в папке книги