Электронный учебно-методический комплекс по учебной дисциплине «Математическое моделирование процессов ОМД» для специальности 1-36 01 05 «Машины и технология обработки материалов давлением»
.pdf61
x a(1) x |
2 |
a(1) x |
|
|
... |
a(1) x |
n |
||||||
1 |
12 |
|
13 |
3 |
|
|
|
1n |
|
||||
|
|
x |
2 |
a(2) x |
|
|
... |
a(2) x |
n |
||||
|
|
|
23 |
3 |
|
|
2n |
|
|
|
|||
|
|
|
|
|
x |
|
|
... |
a(3) x |
n |
|||
|
|
|
|
|
3 |
|
|
|
3n |
|
|
||
|
|
|
|
. |
|
. |
|
. |
|
|
|
|
|
|
|
|
|
|
|
xn 1 an(n 1,n1) xn |
|||||||
|
|
|
|
|
|
|
|
|
|
xn |
|||
(1) |
|
|
a1,n 1 |
|
|
(2) |
|
|
a2,n 1 |
|
|
(3) |
|
|
a3,n 1 |
|
|
|
. |
|
|
|
|
(n 1) |
|
|
|
||
an 1,n 1 |
||
a(n) |
|
|
|
||
n,n 1 |
|
Таким образом, коэффициенты системы (2.4) находятся
щью формул |
a(k) a(k-1) |
/ a(k-1) ; |
a(k) |
a(k-1) |
a(k-1)a(k) , |
|||
|
kj |
kj |
|
kk |
ij |
ij |
ik kj |
|
k 1 j n 1; |
k 1 i n; |
k |
|
(a(0) |
a ) . |
|
||
1, n |
|
|||||||
|
|
|
|
|
ij |
ij |
|
|
(2.4)
с помогде
Второй этап решения СЛАУ называется обратным ходом метода Гаусса и состоит в последовательном определении неизвестных xk , начиная с xn и
заканчивая x1 , по формулам
|
|
a(n) |
|
|
a(i) |
|
n |
|
|
|
x |
n |
1 |
; x |
|
a(i) x |
, |
i n 1, n 2,...,1. |
|||
|
n,n |
i |
i,n 1 |
|
j i 1 ij |
j |
|
|
||
|
|
|
|
|
|
|
||||
Задание.
1.Написать программу на языке Pascal для решения СЛАУ методом Гаусса согласно схеме алгоритма (рисунок 2.1). Набрать ее на компьютере.
2.Решить СЛАУ. Исходные данные взять из таблицы:
№ ва- |
Система линейных алгеб- |
№ ва- |
Система линейных алгебраиче- |
||||||||||||||||||
рианта |
раических уравнений |
рианта |
ских уравнений |
|
|||||||||||||||||
1 |
3x1 x2 5x4 9 |
|
2 |
3x1 x2 5x4 8 |
|
|
|||||||||||||||
|
2x1 5x3 x4 3 |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
4x1 8x2 2x3 3x4 1 |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
5x1 4x2 x3 x4 4 |
|
||||||||
|
x1 2x2 3x3 x4 2 |
|
|
||||||||||||||||||
|
x |
2 |
4x 5x |
4 |
4 |
|
|
x 2x |
2 |
2x x |
4 |
2 |
|
||||||||
|
|
|
|
3 |
|
|
|
|
|
1 |
|
|
3 |
|
|
|
|
||||
3 |
x1 2x2 x3 5x4 10 |
4 |
3x1 x2 5x4 25 |
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4x1 8x2 2x3 3x4 15 |
|
x1 x2 2x3 3x4 3 |
||||||||||||||||||
|
x1 5x2 3x3 x4 7 |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
x1 5x2 3x3 x4 22 |
||||||||||||||||||
|
2x1 5x4 9 |
|
|
|
|
|
x2 4x3 5x4 6 |
|
|||||||||||||
|
|
|
|
|
|
|
|||||||||||||||
5 |
3x1 3x2 x3 2 |
|
6 |
3x1 x2 5x4 2 |
|
||||||||||||||||
|
x1 x2 2x3 3x4 3 |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
4x1 8x2 2x3 3x4 6 |
||||||||||||||||||
|
5x1 4x2 x3 x4 8 |
|
|
5x1 4x2 x3 x4 0 |
|
||||||||||||||||
|
|
|
|
||||||||||||||||||
|
2x 2x |
2 |
2x x |
4 |
11 |
|
x x |
2 |
2x |
4 |
0 |
|
|||||||||
|
1 |
|
|
3 |
|
|
|
|
|
1 |
|
|
|
|
|
|
|
||||
62
Рис. 2.1. Схема алгоритма решения СЛАУ методом Гаусса
2.2. Поиск главных компонентов тензоров
(Лабораторная работа №4)
Проблеме поиска главных компонентов и главных направлений тензоров соответствует задача вычисления собственных значений и собственных векторов квадратных матриц, представляющих соответствующие тензора в текущей системе координат [1].
По определению, известному из линейной алгебры, собственными значениями квадратной матрицы А называются числа λ, удовлетворяющие соотношению
|
|
, |
(2.6) |
A x |
x |
где x – собственный вектор матрицы.
63
Простейшим итерационным методом нахождения собственных значений и собственных векторов матриц является метод, основанный на соотно-
шении (2.6).
1. Задаем максимальное количество итераций m (100), погрешность вычисле-
ний ε (0,00001) и начальный вектор . x0
2. Умножаем матрицу А на вектор x0 . Полученный в результате вектор обо-
|
|
|
|
|
|
|
|
|
значаем x'1: |
A x0 x'1. |
|
|
|
||
3. |
Находим наибольшую по модулю компоненту вектора |
и обозначаем ее |
|||||
x'1 |
|||||||
|
λ1. |
|
|
|
|
|
|
4. |
Нормируем вектор |
x'1 на λ1 |
и полученный в результате вектор обозначаем |
||||
|
|
1 |
|
|
x1 |
: |
|
x'1 |
x1. |
|
||||
|
|
1 |
|
|
5. После проверки условий окончания процесса решение возвращается к ша-
|
|
|
|
|
гу 2, заменяя x0 на найденный вектор |
x1 . |
|
|
|
|
|
|
|
|
Основная формула 1-й итерации: |
A x0 |
1x1 |
. Отсюда видно, что основ- |
|
|
|
|
|
|
ная формула итерационного процесса: |
A xk 1 k xk . |
|||
Условия завершения процесса: |
|
|
|
|
а) выполняется условие |
k-1 k |
, следовательно, итерационный процесс |
|
k |
|
|
|
завершился успешно: k – собственное значение матрицы, xk – ее соб-
ственный вектор;
б) достигли максимального количества итераций (k = m) – решение не найде-
но, возвращаемся к шагу 1 и задаем другой начальный вектор (как пра-
x0
вило, перпендикулярный).
Задание.
1.Написать программу на языке Pascal для нахождения собственного значения и собственного вектора матрицы, представляющей тензор в текущей системе координат, согласно схеме алгоритма (рисунок 2.2). Набрать ее на компьютере.
2.Найти одну из главных компонент тензора, начальный вектор для 1, 2 и 6 вариантов – (1,0,0), для 3, 4 и 5 вариантов – (0,0,1). Исходный тензор взять из таблицы:
№ варианта |
Тензор |
|
№ варианта |
Тензор |
|
||||
|
3 |
1 0 |
|
4 |
2 |
0 |
|||
|
|
|
|
|
|
|
|
|
|
1 |
1 |
3 0 |
2 |
2 |
4 0 |
||||
|
|
0 |
|
|
|
|
0 |
|
|
|
0 |
1 |
|
0 |
1 |
||||
|
1 |
0 |
0 |
|
|
1 |
0 |
0 |
|
3 |
0 |
3 1 |
4 |
0 |
5 1 |
||||
|
|
|
|
|
|
|
|
|
|
|
|
1 |
3 |
|
|
|
1 |
5 |
|
|
0 |
|
|
0 |
|
||||
|
|
|
|
|
64 |
|
|
|
|
|
|
|
|
|
|
|
|
||
№ варианта |
|
Тензор |
|
№ варианта |
|
Тензор |
|
||
|
1 |
0 |
|
0 |
|
5 |
1 |
0 |
|
5 |
0 |
4 |
2 |
6 |
1 5 |
0 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
0 |
0 |
|
|
0 |
|
4 |
|
|
1 |
|||
Рис. 2.2. Схема алгоритма итерационного метода вычисления собственного значения и собственного вектора матрицы
65
3.ИНТЕРПОЛЯЦИЯ ЗАВИСИМОСТЕЙ
3.1.Интерполяция каноническим полиномом
(Лабораторная работа №5)
Выберем в качестве аппроксимирующей функции (x) полином Pn (x) степени n в каноническом виде [5]
|
(x) P (x) c |
|
c x c |
x2 ... c xn . |
|
|
|
(3.1) |
|||||||
|
n |
0 |
|
1 |
2 |
|
|
|
n |
|
|
|
|
|
|
Свободными параметрами интерполяции ci являются коэффициенты по- |
|||||||||||||||
линома (3.1), которые определим из условий Лагранжа |
|
|
|
|
|
||||||||||
|
|
|
c |
c x |
|
c |
|
x2 |
... c |
|
xn |
f |
|
|
|
|
|
|
0 |
1 |
0 |
|
2 |
0 |
|
n |
0 |
|
0 |
|
|
Pn (xi ) fi , |
|
|
|
c1x1 |
|
|
2 |
|
|
n |
f1 . |
|
|||
0 i n |
или |
c0 |
c2 x1 |
... cn x1 |
(3.2) |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
c |
c x |
n |
c |
2 |
x2 |
... c |
n |
xn f |
n |
|
||
|
|
|
0 |
1 |
|
n |
|
n |
|
|
|||||
Система линейных алгебраических уравнений (3.2) относительно свободных параметров ci имеет решение, так как определитель системы отличен
от нуля, если среди узлов xi нет совпадающих. Задание.
1.Написать программу на языке Pascal, реализующую метод интерполяции каноническим полиномом, в соответствии со схемой алгоритма (рисунок 3.1). Набрать ее на компьютере.
2.Рассчитать значения функции f(x) при x = 3, 7, 11, 15 для следующих значений экспериментов:
1 вариант |
2 вариант |
3 вариант |
|||
x |
f(x) |
x |
f(x) |
x |
f(x) |
1 |
10 |
1 |
20 |
1 |
10 |
5 |
18 |
5 |
50 |
5 |
20 |
8 |
25 |
8 |
60 |
8 |
30 |
12 |
40 |
12 |
80 |
12 |
40 |
16 |
60 |
16 |
90 |
16 |
50 |
4 вариант |
5 вариант |
6 вариант |
|||
x |
f(x) |
x |
f(x) |
x |
f(x) |
1 |
10 |
1 |
10 |
1 |
12 |
5 |
20 |
5 |
40 |
5 |
19 |
8 |
40 |
8 |
50 |
8 |
37 |
12 |
60 |
12 |
70 |
12 |
55 |
16 |
80 |
16 |
80 |
16 |
65 |
3.Записать канонический полином для своего варианта экспериментальных данных
66
Рис. 3.1. Схема алгоритма метода интерполяции каноническим полиномом
3.2. Интерполяция полиномом Лагранжа
(Лабораторная работа №6)
Лагранж предложил следующую форму интерполяционного полинома
P (x) f |
|
x xj . |
||
|
n |
n |
|
|
n |
|
i j 0, j i |
|
|
i 0 |
xi xj |
|||
Задание.
1.Написать программу на языке Pascal, реализующую метод интерполяции полиномом Лагранжа в соответствии со схемой алгоритма (рисунок 3.2), набрать ее на компьютере.
67
2.Рассчитать значения функции f(x) при x = 3, 7, 11, 15. Исходные данные взять из предыдущей лабораторной работы.
3.Сравнить результаты, сделать выводы по лабораторным работам №5 и №6.
Рис. 3.2. Схема алгоритма метода интерполяции полиномом Лагранжа
68
4. МЕТОД НАИМЕНЬШИХ КВАДРАТОВ (МНК) ДЛЯ ОБРАБОТКИ ЭКСПЕРИМЕНТАЛЬНЫХ ДАННЫХ
4.1. Метод наименьших квадратов со степенным базисом
(Лабораторная работа №7)
Выберем базисные функции k (x) в виде последовательности степеней аргумента x, которые линейно независимы:
|
(x) x0 1, |
(x) x1 |
x, |
|
2 |
(x) x2 |
,..., |
m |
(x) xm . |
(4.1) |
0 |
|
1 |
|
|
|
|
|
|
В этом случае, как и при интерполяции, мы будем аппроксимировать экспериментальную зависимость полиномом. Однако степень полинома m выбираем обычно m ≤ n. Если же выбрать m = n, то на основании единственности интерполяционного полинома получим функцию (x) , совпадающую
с каноническим интерполяционным полиномом степени n. Это обстоятельство используется для отладки и тестирования программ, реализующих этот алгоритм. Запишем расширенную матрицу Грама для степенного базиса
(4.1):
|
|
n |
n |
|
n |
|
n |
|
|
|
n 1 |
x |
x2 |
... |
xm |
f |
i |
||||
|
|
i |
i |
|
|
i |
|
|
|
|
|
|
i 0 |
i 0 |
|
i 0 |
|
i 0 |
|
|
|
n |
n |
n |
|
n |
|
n |
|
|
||
|
x |
x2 |
x3 |
... |
xm 1 |
x |
f |
|
||
|
i |
i |
i |
|
i |
|
i |
|
|
i |
i 0 |
i 0 |
i 0 |
|
i 0 |
|
i 0 |
|
|
|
|
|
. |
. |
. |
. |
. |
|
. |
|
|
|
n |
n |
n |
|
n |
|
n |
|
|
||
|
xm |
xm 1 |
xm 2 |
|
x |
2m |
xm |
f |
||
|
i |
i |
i |
|
i |
i |
|
|
i |
|
i 0 |
i 0 |
i 0 |
|
i 0 |
|
i 0 |
|
|
|
|
Программу, реализующую МНК со степенным базисом, нетрудно составить в соответствии со схемой алгоритма, приведенной на рисунках 4.1 – 4.2.
Задание.
1.Написать программу на языке Pascal, реализующую МНК со степенным базисом, набрать ее на компьютере.
2.Рассчитать значения функции f(x) при x = 3, 7, 11, 15; m = n. Исходные данные взять из лабораторной работы №5. Сравнить результаты лабораторных работ №5 и №7.
3.Рассчитать значения функции f(x) при x = 3, 7, 11, 15; m = 3. Записать аппроксимирующий полином.
4.Сравнить результаты, сделать выводы по лабораторным работам №5, №6 и №7.
69
Рис. 4.1. Схема алгоритма МНК со степенным базисом
70
Рис. 4.2. Схема подпрограммы формирования матрицы Грама для МНК со степенным базисом
