ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.03.2024
Просмотров: 111
Скачиваний: 0
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
§7. Некоторые применения матриц и векторов
7.1. Нахождение всех корней уравнения n-й степени
Согласно Основной теореме алгебры (Нильс Хенрик Абель) уравне- ние n-й степени имеет n корней. Среди них могут быть действительные и комплексные. Каждый комплексный корень обязательно имеет свою па- ру – сопряженный корень, у которого такая же вещественная часть, а мнимая имеет противоположный знак. Для нахождения всех корней ис- пользуется встроенная Mathcad-функция polyroots( ) (переводится «мно- го корней»). Научимся пользоваться этой очень полезной функцией.
ДАНО: уравнение n-й степени:
0 1
2 2
1 1
0
=
+
⋅
+
+
⋅
+
⋅
+
⋅
−
−
−
n
n
n
n
n
a
y
a
y
a
y
a
y
a
,
(n+1) его коэффициентов a
i
, i = 0, …, n–1 заданы.
ПОЛУЧИТЬ: все корни y
i
, i = 1, …, n, удовлетворяющие заданному уравнению.
54
Способ решения: Сформируем (n+1)-мерный вектор, элементами спользование функции
polyroots
(…) для нахождения корней уравнения.
Уравнение, корни которого нужно найти:
Элеме вет вую которого являются коэффициенты уравнения. Важное замечание: если в уравнении отсутствуют некоторые промежуточные степени переменной, в соответствующий слот вектора следует вставить 0. Порядок ввода ко- эффициентов – с «конца» уравнения к началу, так что нулевому элементу вектора нужно присвоить значение a
n
, а n-му – значение a
0
. Идентифика- тор этого вектора и будет аргументом функции polyroots( ).
Пример
показан на рис. 2.36. Выполните его по шагам и обязательно сделайте про- верку. Вы увидите небольшие вычислительные неточности
(
это и не удивительно: выразить корни через коэффициенты уравнения можно точно только в том случае, когда его порядок
– не выше четвертого: этот результат получил юный гений Эварист Галуа в 21 год, за сутки до дуэли, на которой он был убит
).
7 y
7
⋅
3 y
4
⋅
+
5y
−
17
+
0
Рис. 2.36. И
нты вектора, соот- ствующие несущест- щим в уравнении сте- пеням переменной y, счита- ем равными нулю
D
0 0
3 17 5
0 7
−
0
⎛
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎝
⎞
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎠
:=
z
1.231
−
0.688
−
0.895i
−
0.688
−
0.895i
+
0.348 1.11i
+
0.348 1.11i
−
0.955 0.48i
+
0.955 0.48i
−
⎛⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎝
⎞⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎠
=
verify j
7 z j
( )
7
⋅
3 z j
( )
4
⋅
+
5 z j
−
17
+
:=
Шаг 1.
Формируем 8-ми мерный ве
Жирный знак равенства исления
+<=> ктор D исключает выч
Шаг 2.
Используем функ- polyroots(…), которая цию возвращает вектор корней уравнения: z := polyroots(D)
Шаг 3.
Выводим значения корней на экра
Ша
н:
г 4.
Дела а) Вводим сч б) ден ем проверку. Для этого: етчик индексов корней j := 0 .. 6
Рассчитываем, чему равна левая часть уравнения при подстановке каждого j-го корня (должна быть равна правой части, т.е. нулю) в) Выводим на экран вектор значений левой части уравнения, в которое подставлены най- ные корни:
Имеют место незначительные вычислительные погрешности verify
4.742 10 6
−
×
9.646 10 9
−
×
8.726i 10 8
−
×
+
1.899 10 8
−
×
2.191i 10 8
−
×
+
1.736
−
10 8
−
×
5.121i 10 9
−
×
+
6
−
−
=
⎛
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎞
⎟
⎟
⎟
⎟
⎟
⎟
⎟
6.856 10
×
1.1i 10 6
×
−
4.549 10 6
−
×
159i 10 7
−
×
−
⎜
⎜
⎜
⎟
⎟
⎟
1.
⎜
⎟
4.996
−
10 8
−
×
6.16i 10 8
−
×
+
⎝
⎠
55
7.2. Применение матриц и векторов для решения систем линей-
ных уравнений
7.2.1. Теоретические сведения. Традиционно решение систем ли- нейных уравнений рассматривается в терминах матричной алгебры.
Пусть задана система из n линейных уравнений. Коэффициенты этих уравнений – не обязательно постоянные, они могут зависеть от какого- либо внешнего параметра (на практике чаще всего – от времени), но не должны зависеть от искомых переменных (в этом случае уравнения были бы нелинейными).
Система уравнений, записанная в обычной форме, имеет вид:
)
(
12 1
11
a
x
t
a
2 2
1 1
2 2
2 22 1
21 1
1 2
t
b
x
t
a
x
t
a
x
t
a
t
b
x
t
a
x
t
a
x
t
a
t
b
x
t
a
x
t
n
n
nn
n
n
n
n
n
n
=
⋅
+
+
⋅
+
⋅
=
⋅
+
+
⋅
+
⋅
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
+
⋅
⋅ + +
⋅ =
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
Здесь t– некоторый параметр, от которого зависят коэффициенты уравнения.
Сформируем квадратную n
×n матрицу из коэффициентов левой час- ти и n-мерный вектор из значений b
i
(t), i = 1, … , n, входящих в правую часть. Эти матрицы будут иметь вид:
)
(
)
(
)
(
)
(
,
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
2 1
2 1
2 22 21 1
12 11
t
b
t
b
t
b
t
B
t
a
t
a
t
a
t
a
t
a
t
a
t
a
t
a
t
a
t
A
n
nn
n
n
n
n
L
L
L
L
L
L
L
L
=
=
Согласно правилам матричной алгебры решение системы линейных уравнений для случая, когда правая часть – не нулевой вектор, возможно тогда и только тогда, когда определитель матрицы не равен 0 ни для од- ного значения параметра t из диапазона, на котором он задан. В этом случае решение будет n-мерным вектором, зависящим от параметра t:
Как видим, для получения решения используются следующие матричные операции:
Обращение квадратной матрицы;
Умножение матрицы на вектор;
Диагностика отличия определителя матрицы от 0 (для установ- ления существования решения).
7.2.2. Пример. Найдем значения двумерного вектора x(t) при изме- нении параметра t в диапазоне 0,…,5 с шагом 0.01. Пусть каждый эле мент матрицы A(t) – экспонента с заданным показателем степени, а каж
).
(
)]
(
[
)
(
1
t
B
t
A
t
x
⋅
=
−
-
-
56
В матрично-векторных обозначениях (с учетом MathCAD-нумерации элементов матриц с нуля) система уравнений имеет вид:
A t
( )
0 0
,
x t
( )
0
⋅
A t
( )
0 1
,
x t
( )
1
⋅
+
B t
( )
0
A t
( )
1 0
,
x t
( )
0
⋅
A t
( )
1 1
,
x t
( )
1
⋅
+
B t
( )
1
Введем вектор искомых переменных (жирный знак равенства+<=> исключает вычисления):
x t
( )
x t
( )
0
x t
( )
1
⎛⎜
⎜
⎝
⎞⎟
⎟
⎠
Элементы матриц A(t) и B(t) найдены ранее в процессе векторизации, рис. 4.37
A t
( )
A t
( )
⎛
0 1.5 3
4.5 6
1 0.25 0.5 1.25 2
x t
( )
1
t
0 1.5 3
4.5 6
2 1
1 2
x t
( )
0
t
A t
( )
0 0
,
A t
( )
1 0
,
0 1
,
A t
( )
1 1
,
⎜
⎜
⎝
⎞
⎞
⎟
⎟
⎠
B t
( )
0
B t
( )
1
B t
( )
⎛⎜
⎜
⎝
⎟
⎟
⎠
Решение системы уравнений в матрицах:
−
x t
( )
A t
( )
1
B t
( )
:=
Исследование решения по графику. Задаем диапазон изменения параметра t:
t
0 0.001
,
5
:=
⋅
шаблона графика
Рис. 2.38. Решение системы линейных уравнений с помощью матриц.
7.3. Применение матриц и векторов в задаче интерполяции
7.3.1. Необходимые теоретические сведения. Интерполяцией на- зывается группа методов восстановления значений функции в промежут- ках между точками, заданными своими координатами.
Реализуем с помощью матрично-векторных операций один из наи- более применяемых методов интерполяции – интерполяция с помощью так называемых кубических сплайн в. Сплайны широко используются в компьютерной тех пьютерном черче- нии, компьютерной
Выводим графики элементов вектора x(t) (для получения нажмите+<2>)
о
нике (компьютерной графике, ком фотографии).
58
ДАНО: координаты точек (рис. 2.39).
ПОЛУЧИТЬ: уравнение гладкой кривой, которая проходит через все заданные точки. Такая кривая позволяет вычислить значение функции
между заданными точками – т. е. решить задачу интерполяции.
Рис. 2.39. Точки, через которые должна пройти интерполяционная кривая.
Если просто соединить точки участками прямых линий, то получит- ся ломаная линия – так называемая кусочно-линейная интерполяция
(иначе – сплайн первого порядка). Она непрерывна, но ее производные
(начиная с первой) разрывны, поэтому ломаная линия не кажется нам гладкой (рис. 2.40).
Рис. 2.40. Интерполяция сплайном первого порядка.
59
В результате многолетних исследований особенностей восприятия зрит и соеди- няются участками кубических парабол.
Примечание
: слово «сплайн» в переводе с английского языка означает гибкую метал- лическую линейку, которую чертежники 19-го века изгибали для плавного соединения то- чек. Термин «кубический» ассоциируется с
кубической
зависимостью. Другое название - кубического сплайна – сплайн
третьего
порядка (если для интерполяции использовать обычные параболы, получится сплайн второго порядка, а если прямые, как на рис. 2.40 – сплайн первого порядка).
Основная идея интерполяции кубическими сплайнами:
Кубическая парабола содержит 4 коэффициента a
i
, i
= 0, … , 3, поэтому если взять 4 значения аргумента x
i
подряд, i= 1, 2, 3, 4 и соответствующие им значения функции y(x
i
)
, то по этим данным можно рассчитать все a
i
, i
= 0, … , 3. Тогда, если постро- ить график функции y(x), то он пройдет точно через эти точки. В проме- жутках между точками можно будет рассчитать значение функции для любого аргумента, используя формулу кубической параболы.
Об стро резу сост парабол с разными коэффициентами, будет воспри- ниматься глазом как гладкая.
Опишем последовательность шагов для получения интерполяцион- ной кривой, построенной на кубических сплайнах.
Шаг 1
. Берем координаты первых четырех точек, охватываем их ок- ном (рис. 2.41). Составляем систему уравнений для определения коэф- фициентов a
i
, i
= 0, … , 3, решаем ее и получаем уравнение кубической параболы. Система уравнений имеет вид, показанный на рис. 2.41.
Шаг 2
. Используя найденные на шаге 1 значения коэффициентов a
i
,
i
= 0, … , 3, можно построить график функции y(x) = a
0
⋅x
3
+ a
1
⋅x
2
+ a
2
⋅x
+ a
3
на интервале изменения аргумента x
1
≤ x ≤ x
4
(рис. 2.42).
Шаг 3
. Но для интерполяции функции используем не весь график для интервала x
1
≤ x ≤ x
4
, а лишь его фрагмент между точками x
2
и x
3
, т. е. прорисовываем кубическую параболу y(x) = a
0
⋅x
3
+ a
1
⋅x
2
+ a
2
+ a
3
только на интервале изменения аргумента x
≤ x ≤ x (см. рис. 2.42). ельных образов человеком было установлено, что кривая воспринима- ется как вполне гладкая, если она сама и две первые ее производные не- прерывны. Так пришли к идее кубических сплайнов – когда точк
3 2
2 1
3 0
)
(
a
x
a
x
a
x
a
x
y
+
⋅
+
⋅
+
⋅
=
ычно точек гораздо больше, чем 4. Тогда поступим так: будем ить для каждых 4-х точек свою кубическую параболу – аналогично тому, как мы строили свою прямую линию для каждых двух точек при аппроксимации первого порядка, см. рис. 2.40. В узлах сопряжения двух соседних кубических парабол значения функции и первых двух произ- водных окажутся равными, в льтате чего кривая, авленная из участков кубических
⋅x
2
3
60
Окно захвата точек для сплайна
Рис. 2.41. Иллюстрация к построению сплайна.
Шаг 4
. Далее сдвигаем окно, в которое попадают точки интерполи- руемой кривой, на одну точку (рис. 2.43). Мы видим, что точка с абсцис- сой x
1
в «новое» окно не попала; точки x
2
, x
3
и x
4
из «старого» окна пере- кочевали в новое, а точка с абсциссой x
5
, появившаяся в «новом» окне,
«старым» окном не охватывалась. Теперь, если мы рассчитаем значения коэф
Система уравнений для определения коэффициентов кубической параболы:
⎪
⎪
⎩
⎪
⎪
⎨
=
⋅
+
⋅
+
⋅
+
⋅
=
⋅
+
⋅
+
⋅
+
⋅
+
⋅
)
(
)
(
4 3
0 4
2 1
4 1
2 4
0 3
4 3
3 0
3 2
1 3
1 2
3 0
3
⎧
=
⋅
+
⋅
+
⋅
+
⋅
)
(
1 3
0 1
2 1
оди фициентов a
i
, i = 0, … , 3 по координатам точек «нового» окна (x
2
,
x
3
, x
4
и x
5
), то получим другую кубическую параболу (но отличающуюся от первой не слишком сильно, т.к. обе они должны пройти через общие для обоих окон точки x
2
, x
3
и x
4
), рис. 2.44.
Шаг 5
. Теперь прорисуем второй участок интерполирующей кривой по уравнению второй параболы, коэффициенты которой рассчитаны для аргументов «нового» окна x
2
, x
3
, x
4
и x
5.
Мы видим (рис. 2.45), что участки примыкают друг к другу гладко, без разрывов. Можно показать, что в точ- ке сопряжения участков (ее абсцисса равна x
3
) у обеих парабол наковы значения самих функций и их производных первого и второго порядков.
=
⋅
+
⋅
+
⋅
)
(
3 0
1 2
3 2
2 2
1 2
2 0
3 2
x
y
a
x
a
x
a
x
a
x
x
y
a
x
a
x
a
x
a
x
x
a
x
В этой системе уравнений неизвестные: a
1
x
y
a
x
a
x
a
1 2
1 0
3 1
x
y
a
x
a
x
a
x
a
x
0
, a
1
, a
2
, a
3
Известные: x
i
, y(x i
), i = 1, 2, 3, 4 61
Рис. 2.42. Иллюстрация к шагу 3: прорисовка первого фрагмента интерполирующей функции.
Рис. 2.43. Иллюстрация к шагу 4: точки для построения второй кубической параболы.
Последующие шаги
выполняются в цикле, начиная с шага 4: после- довательно сдвигаем окно, в которое попадают очередные 4 точки; по их коор инатам вычисляем коэффициенты соответствующей кубической параболы; прорисовываем эту параболу между второй и третьей точкой окна. Так получим кривую, плавно соединяющую точки, начиная со вто- рой и заканчивая предпоследней. д
62
7.1. Нахождение всех корней уравнения n-й степени
Согласно Основной теореме алгебры (Нильс Хенрик Абель) уравне- ние n-й степени имеет n корней. Среди них могут быть действительные и комплексные. Каждый комплексный корень обязательно имеет свою па- ру – сопряженный корень, у которого такая же вещественная часть, а мнимая имеет противоположный знак. Для нахождения всех корней ис- пользуется встроенная Mathcad-функция polyroots( ) (переводится «мно- го корней»). Научимся пользоваться этой очень полезной функцией.
ДАНО: уравнение n-й степени:
0 1
2 2
1 1
0
=
+
⋅
+
+
⋅
+
⋅
+
⋅
−
−
−
n
n
n
n
n
a
y
a
y
a
y
a
y
a
,
(n+1) его коэффициентов a
i
, i = 0, …, n–1 заданы.
ПОЛУЧИТЬ: все корни y
i
, i = 1, …, n, удовлетворяющие заданному уравнению.
54
Способ решения: Сформируем (n+1)-мерный вектор, элементами спользование функции
polyroots
(…) для нахождения корней уравнения.
Уравнение, корни которого нужно найти:
Элеме вет вую которого являются коэффициенты уравнения. Важное замечание: если в уравнении отсутствуют некоторые промежуточные степени переменной, в соответствующий слот вектора следует вставить 0. Порядок ввода ко- эффициентов – с «конца» уравнения к началу, так что нулевому элементу вектора нужно присвоить значение a
n
, а n-му – значение a
0
. Идентифика- тор этого вектора и будет аргументом функции polyroots( ).
Пример
показан на рис. 2.36. Выполните его по шагам и обязательно сделайте про- верку. Вы увидите небольшие вычислительные неточности
(
это и не удивительно: выразить корни через коэффициенты уравнения можно точно только в том случае, когда его порядок
– не выше четвертого: этот результат получил юный гений Эварист Галуа в 21 год, за сутки до дуэли, на которой он был убит
).
7 y
7
⋅
3 y
4
⋅
+
5y
−
17
+
0
Рис. 2.36. И
нты вектора, соот- ствующие несущест- щим в уравнении сте- пеням переменной y, счита- ем равными нулю
D
0 0
3 17 5
0 7
−
0
⎛
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎝
⎞
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎠
:=
z
1.231
−
0.688
−
0.895i
−
0.688
−
0.895i
+
0.348 1.11i
+
0.348 1.11i
−
0.955 0.48i
+
0.955 0.48i
−
⎛⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎝
⎞⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎠
=
verify j
7 z j
( )
7
⋅
3 z j
( )
4
⋅
+
5 z j
−
17
+
:=
Шаг 1.
Формируем 8-ми мерный ве
Жирный знак равенства исления
Шаг 2.
Используем функ- polyroots(…), которая цию возвращает вектор корней уравнения: z := polyroots(D)
Шаг 3.
Выводим значения корней на экра
Ша
н:
г 4.
Дела а) Вводим сч б) ден ем проверку. Для этого: етчик индексов корней j := 0 .. 6
Рассчитываем, чему равна левая часть уравнения при подстановке каждого j-го корня (должна быть равна правой части, т.е. нулю) в) Выводим на экран вектор значений левой части уравнения, в которое подставлены най- ные корни:
Имеют место незначительные вычислительные погрешности verify
4.742 10 6
−
×
9.646 10 9
−
×
8.726i 10 8
−
×
+
1.899 10 8
−
×
2.191i 10 8
−
×
+
1.736
−
10 8
−
×
5.121i 10 9
−
×
+
6
−
−
=
⎛
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎞
⎟
⎟
⎟
⎟
⎟
⎟
⎟
6.856 10
×
1.1i 10 6
×
−
4.549 10 6
−
×
159i 10 7
−
×
−
⎜
⎜
⎜
⎟
⎟
⎟
1.
⎜
⎟
4.996
−
10 8
−
×
6.16i 10 8
−
×
+
⎝
⎠
55
7.2. Применение матриц и векторов для решения систем линей-
ных уравнений
7.2.1. Теоретические сведения. Традиционно решение систем ли- нейных уравнений рассматривается в терминах матричной алгебры.
Пусть задана система из n линейных уравнений. Коэффициенты этих уравнений – не обязательно постоянные, они могут зависеть от какого- либо внешнего параметра (на практике чаще всего – от времени), но не должны зависеть от искомых переменных (в этом случае уравнения были бы нелинейными).
Система уравнений, записанная в обычной форме, имеет вид:
)
(
12 1
11
a
x
t
a
2 2
1 1
2 2
2 22 1
21 1
1 2
t
b
x
t
a
x
t
a
x
t
a
t
b
x
t
a
x
t
a
x
t
a
t
b
x
t
a
x
t
n
n
nn
n
n
n
n
n
n
=
⋅
+
+
⋅
+
⋅
=
⋅
+
+
⋅
+
⋅
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
+
⋅
⋅ + +
⋅ =
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
Здесь t– некоторый параметр, от которого зависят коэффициенты уравнения.
Сформируем квадратную n
×n матрицу из коэффициентов левой час- ти и n-мерный вектор из значений b
i
(t), i = 1, … , n, входящих в правую часть. Эти матрицы будут иметь вид:
)
(
)
(
)
(
)
(
,
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
)
(
2 1
2 1
2 22 21 1
12 11
t
b
t
b
t
b
t
B
t
a
t
a
t
a
t
a
t
a
t
a
t
a
t
a
t
a
t
A
n
nn
n
n
n
n
L
L
L
L
L
L
L
L
=
=
Согласно правилам матричной алгебры решение системы линейных уравнений для случая, когда правая часть – не нулевой вектор, возможно тогда и только тогда, когда определитель матрицы не равен 0 ни для од- ного значения параметра t из диапазона, на котором он задан. В этом случае решение будет n-мерным вектором, зависящим от параметра t:
Как видим, для получения решения используются следующие матричные операции:
Обращение квадратной матрицы;
Умножение матрицы на вектор;
Диагностика отличия определителя матрицы от 0 (для установ- ления существования решения).
7.2.2. Пример. Найдем значения двумерного вектора x(t) при изме- нении параметра t в диапазоне 0,…,5 с шагом 0.01. Пусть каждый эле мент матрицы A(t) – экспонента с заданным показателем степени, а каж
).
(
)]
(
[
)
(
1
t
B
t
A
t
x
⋅
=
−
-
-
56
дый
. Воспроизведите его. Попутно Вы научитесь делать масс но: ут ис- пользоваться как коэффициенты в формулах для операций с матрицей;
2. Ввести идентификатор матрицы с указанием ее ависимости от параметра (можно – тот же, что и для матрицы коэффициентов), присво- ить ему значение функции, которую мы хотим применить ко всем эле- ментам и
нус)>. Над функцией появится горизонтальная стрелка – сим сомножителем-элементом а непо д
Шаг
A
1 2
1.5 4
элемент вектора B(t) – синусоидальная функция. Решение показано на рис. 2.37, 2.38
овые операции над всеми элементами матриц (рис. 2.37).
7.2.2.1. Векторизация. Термин «векторизация» означает применение
одной и той же функции тотально ко всем элементам матрицы. Этот прием часто экономит время и при вводе, и при вычислениях за счет параллель- ных действий над всеми элементами матрицы сразу. Освоим технику век- торизации на примере, показанном на рис. 2.37, 2.38 Для того чтобы над всеми элементами матрицы выполнялась одна и та же операция, нуж
1. Ввести матрицу с постоянными элементами, которые буд з
матр цы.
3. Результат охватить синим контуром и нажать клавиши
<Ctrl>+<(ми вол векторизации.
Изучение операции векторизации закончено.
⎛
⎞
Шаг 1. Задаем матрицу и вектор коэффициентов.
Шаг 2. Проводим векторизацию матрицы А. Каждый элемент ее превратится в экспоненту. Показателем будет соответствующий элемент матрицы А
Шаг 3. Для контроля проведем вычисление экспонент непосредственно (должен быть получен тот же результат, что и при векторизации):
Шаг 4. Проводим векторизацию вектора В. Каждый его элемент должен превратиться в синус с вектора В:
Шаг 5. Для контроля вводим функцию синус сре ственно:
6. Проверяем, действительно ли выполнилась векторизация, например, при t
0.5
:=
⎜
⎝
⎟
⎠
:=
B
5 7
⎛ ⎞
⎜ ⎟
⎝ ⎠
:=
Для осуществления векторизации нажмите
+<(минус)>
A t
( )
e
A t
⋅
( )
→
⎯⎯
:=
A1 t
( )
e
1 t
⋅
e
2 t
⋅
e
1.5 t
⋅
e
4 t
⋅
⎛
⎜
⎜
⎝
⎞
⎟
⎟
⎠
:=
B t
( )
sin B t
⋅
(
)
→
⎯⎯⎯
:=
B1 t
( )
sin 5 t
⋅
(
)
sin 7 t
⋅
(
)
⎛
⎜
⎝
⎞
⎟
⎠
:=
A t
( )
1.649 2.718 2.117 7.389
⎛
⎜
⎝
⎞
⎟
⎠
=
A1 t
( )
1.649 2.718 2.117 7.389
⎛
⎜
⎝
⎞
⎟
⎠
=
B t
( )
0.351
−
⎛
0.598
⎜
⎝
⎞
⎟
⎠
=
B1 t
( )
0.351
−
⎛
0.598
⎜
⎝
⎞
⎟
⎠
=
Рис. 2.37. Векторизация матриц и векторов.
57
. Воспроизведите его. Попутно Вы научитесь делать масс но: ут ис- пользоваться как коэффициенты в формулах для операций с матрицей;
2. Ввести идентификатор матрицы с указанием ее ависимости от параметра (можно – тот же, что и для матрицы коэффициентов), присво- ить ему значение функции, которую мы хотим применить ко всем эле- ментам и
нус)>. Над функцией появится горизонтальная стрелка – сим сомножителем-элементом а непо д
Шаг
A
1 2
1.5 4
элемент вектора B(t) – синусоидальная функция. Решение показано на рис. 2.37, 2.38
овые операции над всеми элементами матриц (рис. 2.37).
7.2.2.1. Векторизация. Термин «векторизация» означает применение
одной и той же функции тотально ко всем элементам матрицы. Этот прием часто экономит время и при вводе, и при вычислениях за счет параллель- ных действий над всеми элементами матрицы сразу. Освоим технику век- торизации на примере, показанном на рис. 2.37, 2.38 Для того чтобы над всеми элементами матрицы выполнялась одна и та же операция, нуж
1. Ввести матрицу с постоянными элементами, которые буд з
матр цы.
3. Результат охватить синим контуром и нажать клавиши
<Ctrl>+<(ми вол векторизации.
Изучение операции векторизации закончено.
⎛
⎞
Шаг 1. Задаем матрицу и вектор коэффициентов.
Шаг 2. Проводим векторизацию матрицы А. Каждый элемент ее превратится в экспоненту. Показателем будет соответствующий элемент матрицы А
Шаг 3. Для контроля проведем вычисление экспонент непосредственно (должен быть получен тот же результат, что и при векторизации):
Шаг 4. Проводим векторизацию вектора В. Каждый его элемент должен превратиться в синус с вектора В:
Шаг 5. Для контроля вводим функцию синус сре ственно:
6. Проверяем, действительно ли выполнилась векторизация, например, при t
0.5
:=
⎜
⎝
⎟
⎠
:=
B
5 7
⎛ ⎞
⎜ ⎟
⎝ ⎠
:=
Для осуществления векторизации нажмите
A t
( )
e
A t
⋅
( )
→
⎯⎯
:=
A1 t
( )
e
1 t
⋅
e
2 t
⋅
e
1.5 t
⋅
e
4 t
⋅
⎛
⎜
⎜
⎝
⎞
⎟
⎟
⎠
:=
B t
( )
sin B t
⋅
(
)
→
⎯⎯⎯
:=
B1 t
( )
sin 5 t
⋅
(
)
sin 7 t
⋅
(
)
⎛
⎜
⎝
⎞
⎟
⎠
:=
A t
( )
1.649 2.718 2.117 7.389
⎛
⎜
⎝
⎞
⎟
⎠
=
A1 t
( )
1.649 2.718 2.117 7.389
⎛
⎜
⎝
⎞
⎟
⎠
=
B t
( )
0.351
−
⎛
0.598
⎜
⎝
⎞
⎟
⎠
=
B1 t
( )
0.351
−
⎛
0.598
⎜
⎝
⎞
⎟
⎠
=
Рис. 2.37. Векторизация матриц и векторов.
57
В матрично-векторных обозначениях (с учетом MathCAD-нумерации элементов матриц с нуля) система уравнений имеет вид:
A t
( )
0 0
,
x t
( )
0
⋅
A t
( )
0 1
,
x t
( )
1
⋅
+
B t
( )
0
A t
( )
1 0
,
x t
( )
0
⋅
A t
( )
1 1
,
x t
( )
1
⋅
+
B t
( )
1
Введем вектор искомых переменных (жирный знак равенства
x t
( )
x t
( )
0
x t
( )
1
⎛⎜
⎜
⎝
⎞⎟
⎟
⎠
Элементы матриц A(t) и B(t) найдены ранее в процессе векторизации, рис. 4.37
A t
( )
A t
( )
⎛
0 1.5 3
4.5 6
1 0.25 0.5 1.25 2
x t
( )
1
t
0 1.5 3
4.5 6
2 1
1 2
x t
( )
0
t
A t
( )
0 0
,
A t
( )
1 0
,
0 1
,
A t
( )
1 1
,
⎜
⎜
⎝
⎞
⎞
⎟
⎟
⎠
B t
( )
0
B t
( )
1
B t
( )
⎛⎜
⎜
⎝
⎟
⎟
⎠
Решение системы уравнений в матрицах:
−
x t
( )
A t
( )
1
B t
( )
:=
Исследование решения по графику. Задаем диапазон изменения параметра t:
t
0 0.001
,
5
:=
⋅
шаблона графика
Рис. 2.38. Решение системы линейных уравнений с помощью матриц.
7.3. Применение матриц и векторов в задаче интерполяции
7.3.1. Необходимые теоретические сведения. Интерполяцией на- зывается группа методов восстановления значений функции в промежут- ках между точками, заданными своими координатами.
Реализуем с помощью матрично-векторных операций один из наи- более применяемых методов интерполяции – интерполяция с помощью так называемых кубических сплайн в. Сплайны широко используются в компьютерной тех пьютерном черче- нии, компьютерной
Выводим графики элементов вектора x(t) (для получения нажмите
о
нике (компьютерной графике, ком фотографии).
58
ДАНО: координаты точек (рис. 2.39).
ПОЛУЧИТЬ: уравнение гладкой кривой, которая проходит через все заданные точки. Такая кривая позволяет вычислить значение функции
между заданными точками – т. е. решить задачу интерполяции.
Рис. 2.39. Точки, через которые должна пройти интерполяционная кривая.
Если просто соединить точки участками прямых линий, то получит- ся ломаная линия – так называемая кусочно-линейная интерполяция
(иначе – сплайн первого порядка). Она непрерывна, но ее производные
(начиная с первой) разрывны, поэтому ломаная линия не кажется нам гладкой (рис. 2.40).
Рис. 2.40. Интерполяция сплайном первого порядка.
59
В результате многолетних исследований особенностей восприятия зрит и соеди- няются участками кубических парабол.
Примечание
: слово «сплайн» в переводе с английского языка означает гибкую метал- лическую линейку, которую чертежники 19-го века изгибали для плавного соединения то- чек. Термин «кубический» ассоциируется с
кубической
зависимостью. Другое название - кубического сплайна – сплайн
третьего
порядка (если для интерполяции использовать обычные параболы, получится сплайн второго порядка, а если прямые, как на рис. 2.40 – сплайн первого порядка).
Основная идея интерполяции кубическими сплайнами:
Кубическая парабола содержит 4 коэффициента a
i
, i
= 0, … , 3, поэтому если взять 4 значения аргумента x
i
подряд, i= 1, 2, 3, 4 и соответствующие им значения функции y(x
i
)
, то по этим данным можно рассчитать все a
i
, i
= 0, … , 3. Тогда, если постро- ить график функции y(x), то он пройдет точно через эти точки. В проме- жутках между точками можно будет рассчитать значение функции для любого аргумента, используя формулу кубической параболы.
Об стро резу сост парабол с разными коэффициентами, будет воспри- ниматься глазом как гладкая.
Опишем последовательность шагов для получения интерполяцион- ной кривой, построенной на кубических сплайнах.
Шаг 1
. Берем координаты первых четырех точек, охватываем их ок- ном (рис. 2.41). Составляем систему уравнений для определения коэф- фициентов a
i
, i
= 0, … , 3, решаем ее и получаем уравнение кубической параболы. Система уравнений имеет вид, показанный на рис. 2.41.
Шаг 2
. Используя найденные на шаге 1 значения коэффициентов a
i
,
i
= 0, … , 3, можно построить график функции y(x) = a
0
⋅x
3
+ a
1
⋅x
2
+ a
2
⋅x
+ a
3
на интервале изменения аргумента x
1
≤ x ≤ x
4
(рис. 2.42).
Шаг 3
. Но для интерполяции функции используем не весь график для интервала x
1
≤ x ≤ x
4
, а лишь его фрагмент между точками x
2
и x
3
, т. е. прорисовываем кубическую параболу y(x) = a
0
⋅x
3
+ a
1
⋅x
2
+ a
2
+ a
3
только на интервале изменения аргумента x
≤ x ≤ x (см. рис. 2.42). ельных образов человеком было установлено, что кривая воспринима- ется как вполне гладкая, если она сама и две первые ее производные не- прерывны. Так пришли к идее кубических сплайнов – когда точк
3 2
2 1
3 0
)
(
a
x
a
x
a
x
a
x
y
+
⋅
+
⋅
+
⋅
=
ычно точек гораздо больше, чем 4. Тогда поступим так: будем ить для каждых 4-х точек свою кубическую параболу – аналогично тому, как мы строили свою прямую линию для каждых двух точек при аппроксимации первого порядка, см. рис. 2.40. В узлах сопряжения двух соседних кубических парабол значения функции и первых двух произ- водных окажутся равными, в льтате чего кривая, авленная из участков кубических
⋅x
2
3
60
Окно захвата точек для сплайна
Рис. 2.41. Иллюстрация к построению сплайна.
Шаг 4
. Далее сдвигаем окно, в которое попадают точки интерполи- руемой кривой, на одну точку (рис. 2.43). Мы видим, что точка с абсцис- сой x
1
в «новое» окно не попала; точки x
2
, x
3
и x
4
из «старого» окна пере- кочевали в новое, а точка с абсциссой x
5
, появившаяся в «новом» окне,
«старым» окном не охватывалась. Теперь, если мы рассчитаем значения коэф
Система уравнений для определения коэффициентов кубической параболы:
⎪
⎪
⎩
⎪
⎪
⎨
=
⋅
+
⋅
+
⋅
+
⋅
=
⋅
+
⋅
+
⋅
+
⋅
+
⋅
)
(
)
(
4 3
0 4
2 1
4 1
2 4
0 3
4 3
3 0
3 2
1 3
1 2
3 0
3
⎧
=
⋅
+
⋅
+
⋅
+
⋅
)
(
1 3
0 1
2 1
оди фициентов a
i
, i = 0, … , 3 по координатам точек «нового» окна (x
2
,
x
3
, x
4
и x
5
), то получим другую кубическую параболу (но отличающуюся от первой не слишком сильно, т.к. обе они должны пройти через общие для обоих окон точки x
2
, x
3
и x
4
), рис. 2.44.
Шаг 5
. Теперь прорисуем второй участок интерполирующей кривой по уравнению второй параболы, коэффициенты которой рассчитаны для аргументов «нового» окна x
2
, x
3
, x
4
и x
5.
Мы видим (рис. 2.45), что участки примыкают друг к другу гладко, без разрывов. Можно показать, что в точ- ке сопряжения участков (ее абсцисса равна x
3
) у обеих парабол наковы значения самих функций и их производных первого и второго порядков.
=
⋅
+
⋅
+
⋅
)
(
3 0
1 2
3 2
2 2
1 2
2 0
3 2
x
y
a
x
a
x
a
x
a
x
x
y
a
x
a
x
a
x
a
x
x
a
x
В этой системе уравнений неизвестные: a
1
x
y
a
x
a
x
a
1 2
1 0
3 1
x
y
a
x
a
x
a
x
a
x
0
, a
1
, a
2
, a
3
Известные: x
i
, y(x i
), i = 1, 2, 3, 4 61
Рис. 2.42. Иллюстрация к шагу 3: прорисовка первого фрагмента интерполирующей функции.
Рис. 2.43. Иллюстрация к шагу 4: точки для построения второй кубической параболы.
Последующие шаги
выполняются в цикле, начиная с шага 4: после- довательно сдвигаем окно, в которое попадают очередные 4 точки; по их коор инатам вычисляем коэффициенты соответствующей кубической параболы; прорисовываем эту параболу между второй и третьей точкой окна. Так получим кривую, плавно соединяющую точки, начиная со вто- рой и заканчивая предпоследней. д
62