маткад учебник
.pdf
|
Таблица 2 |
|
|
Векторные функции |
|
|
|
|
Имя функции |
Возвращается |
|
|
|
|
rows(A) |
Число строк в массиве А. Если А – скаляр, |
|
|
возвращается 0 |
|
|
|
|
cols(A) |
Число столбцов в массиве А. Если А – скаляр, |
|
|
возвращается 0 |
|
|
|
|
length(v) |
Число элементов в векторе v |
|
|
|
|
last(v) |
Индекс последнего элемента в векторе v |
|
|
|
|
max(A) |
Самый большой элемент в массиве А. Если А имеет |
|
|
комплексные элементы, возвращает наибольшую |
|
|
вещественную часть плюс мнимая единица, умно- |
|
|
женная на наибольшую мнимую часть |
|
|
|
|
min(A) |
Самый маленький элемент в массиве А. Если А |
|
|
имеет комплексные элементы, возвращает наимень- |
|
|
шую вещественную часть плюс мнимая единица, |
|
|
умноженная на наименьшую мнимую часть |
|
|
|
|
identity(n) |
Единичная матрица n n (матрица, все диагональ- |
|
|
ные элементы которой равны 1, а все остальные |
|
|
элементы равны 0) |
|
|
|
|
Re(A) |
Массив, состоящий из элементов, которые являют- |
|
|
ся вещественными частями элементов А |
|
|
|
|
Im(A) |
Массив, состоящий из элементов, которые являются |
|
|
мнимыми частями элементов А |
|
|
|
|
tr(M) |
Сумма диагональных элементов, называемая |
|
|
следом М |
|
|
|
|
rank(A) |
Ранг вещественный матрицы А |
|
|
|
|
norm1(M), norm2(M) |
L1, L2, евклидова и равномерная нормы матрицы М |
|
norme(M), normi(M) |
|
|
cond1(M), cond2(M) |
Числа обусловленности матрицы М, основанные |
|
conde(M), condi(M) |
на L1, L2, евклидовой и равномерной нормах |
|
eigenvals(M) |
Вектор, содержащий собственные значения матри- |
|
|
цы М |
|
|
|
|
eigenvec(M, z) |
Матрица, содержащая нормированный собствен- |
|
|
ный вектор, соответствующий собственному |
|
|
значению z квадратной матрицы М |
21
|
Окончание табл. 2 |
|
|
Имя функции |
Возвращается |
|
|
eigenvec(M) |
Матрица, содержащая нормированные собствен- |
|
ные векторы, соответствующие собственным значе- |
|
ниям квадратной матрицы М. n-й столбец возвра- |
|
щенной матрицы – собственный вектор, соответст- |
|
вующий n-у собственному значению, возвращен- |
|
ному eigenvals |
|
|
cholesky(M) |
Нижняя треугольная матрица L такая, что LLT = M. |
|
Матрица М должна быть симметричной и поло- |
|
жительно определенной. Симметрия означает, что |
|
М = МТ, положительная определенность – что |
|
xТМx > 0 для любого вектора x ≠ 0 |
qr(A) |
Матрица, чьи первые n столбцов содержат ортого- |
|
нальную матрицу Q, а последующие столбцы со- |
|
держат верхнюю треугольную матрицу R. Матрицы |
|
Q и R удовлетворяют равенству А = QR. Матрица |
|
А должна быть вещественной |
|
|
eu(M) |
Матрица, которая содержит три квадратные мат- |
|
рицы P, L и U, расположенные последовательно |
|
в указанном порядке и имеющие с М одинаковый |
|
размер. L и U являются соответственно нижней и |
|
верхней треугольными матрицами. Эти матрицы |
|
удовлетворяют равенству PM = LU |
|
|
Примеры использования встроенных функций иллюстрируются рис. 5 и 6.
22
Матрица A:
|
|
0 |
1 |
|
A := |
|
5 |
3 |
|
|
|
|||
|
|
6 |
−2 |
Вектор V:
13
V := 350
cols (A) = 2 rows(A) = 3
Наибольшее и наименьшее значения элементов A:
min(A) = −2 max(A) = 6
Число элементов в V:
length (V) = 3
Индекс последнего элемента V:
last(V) = 2
|
|
5 + 2i |
|
|
|
|
2 |
|
B := |
|
5.54 − 3i |
|
Мнимая часть матрицы B: |
Im(B) = |
|
−3 |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
3 + (4 + 0.8)i |
|
|
|
4.8 |
Рис. 5. Векторные и матричные функции
23
|
|
1 |
−7 |
6 |
|
|
|
|
3.805 + 1.194i |
|
A := |
|
3 |
0 |
10 |
|
C := eigenvals (A) |
C = |
|
3.805 − 1.194i |
|
|
|
|
|
|||||||
|
|
2 |
5 |
−1 |
|
|
|
−7.609 |
|
Собственный вектор, соответствующий первому из собственных чисел
V := eigenvec (A , C0)
Проверка: |
|
||
|
|
−0.213 + 2.553i |
|
AV = |
|
1.197 − 2.256i |
|
|
|
||
|
|
0.788 − 1.481i |
|
|
|
0.141 + 0.627i |
|
|
|
|
V = |
|
|
|
V |
|
= 1 |
|
|
|||||
|
0.117 − 0.63i |
|
|
|||
|
|
|
|
|
||
|
|
0.077 − 0.414i |
|
|
|
|
|
|
−0.213 + 2.553i |
|
C |
V = |
1.197 − 2.256i |
|
0 |
|
|
|
|
|
0.788 − 1.481i |
|
Рис. 6. Собственные значения и вектора вещественных матриц
В Mathcad есть две функции объединения матриц.
Функция augment (A, B) возвращает массив, сформированный расположением массивов А и В бок о бок. Массивы А и В должны иметь одинаковое число строк.
Функция stack (A, B) возвращает массив, сформированный расположением В под А. Массивы А и В должны иметь одинаковое число столбцов.
Функция submatrix (A, ir, jr, ic, jc) возвращает субматрицу, состоящую из всех элементов, содержащихся в строках с ir по jc и в столбцах с ic по jc. Чтобы поддержать порядок строк и (или) столбцов, удостоверьтесь, что ir ≤ jr и ic ≤ jc, иначе порядок строк и (или) столбцов будет обращен. Примеры использования этих функций приведены на рис. 7.
24
ORIGIN≡ 0 |
Объединение матриц |
|
|
|
1 |
1 |
6 |
4 |
|
9 |
|
A1 := |
|
−5 −8 −3 3 7 |
|
||||||
|
|
||||||||
|
|
|
−2 |
−4 |
−6 3 2 |
||||
|
|
|
1 |
1 |
6 |
4 |
9 |
|
|
|
|
|
−5 |
−8 |
−3 3 7 |
|
|
||
|
|
|
|
|
|||||
A = |
|
−2 −4 −6 |
3 2 |
|
|||||
|
|
|
2 |
3 |
4 |
4 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
8 |
5 |
3 |
9 |
|
|
|
|
|
1 |
2 |
−1 |
|
|
|
|
|
|
|
2.3 |
4 |
4 |
|
|
|
|
B := |
|
|
|
|
|
|
|||
|
|
−2 |
5.1 |
1 |
|
|
|
|
|
|
|
|
0 |
.8 |
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
3 |
4 |
4 |
1 |
|
|
A2 |
:= |
5 |
8 |
5 |
3 |
9 |
|
A := stack (A1, A2) |
|
|
|
−3 −8 −5
submatrix(A , 1, 2, 2, 0) = −6 −4 −2
−5 −8 −3
submatrix(A , 1, 2, 0, 2) = −2 −4 −6
−6 −4 −2
submatrix(A , 2, 1, 2, 0) = −3 −8 −5
C := qr(B)
|
|
0.312 |
0.279 |
−0.411 |
−0.81 |
3.208 |
0.312 |
1.933 |
|
|
|
0.717 |
0.553 |
0.117 |
0.407 |
0 |
6.823 |
3.415 |
|
C = |
|
|
|||||||
|
−0.623 |
0.776 |
−0.072 |
0.064 |
0 |
0 |
6.213 |
|
|
|
|
0 |
0.117 |
0.901 |
−0.417 |
0 |
0 |
0 |
|
|
|
|
Q := submatrix(C, 0, 3, 0, 3) |
R := submatrix(C, 0, 3, 4, 6) |
|||||||||
|
1 |
0 |
0 |
0 |
|
1 |
2 |
−1 |
||
|
|
|
|
|
|
|
|
|
|
|
QQT = |
0 |
1 |
0 |
0 |
|
QR = |
2.3 |
4 |
4 |
|
|
0 |
0 |
1 |
0 |
|
|
−2 |
5.1 |
1 |
|
|
0 |
0 |
0 |
1 |
|
|
0 |
0.8 |
6 |
|
|
|
|
|
Рис. 7. Примеры формирования новых матриц
25
2.3. Дискретные аргументы
Дискретный аргумент – переменная, которая принимает ряд значений при каждом ее использовании. Дискретные аргументы значительно расширяют возможности Mathcad, позволяя выполнять многократные вычисления или циклы с повторяющимися вычислениями.
Если набрать на клавиатуре
k:1,1.1;2
на экране появится определение дискретного аргумента
k:= 1,1.1..2
В этом определении:
переменная k – имя дискретного аргумента. Это должно быть простое имя. Никакие нижние индексы или функциональные определения не допустимы;
число 1 – первое значение, принимаемое аргументом k;
число 1.1 – второе значение k. Обратите внимание, что это не размер шага. Размер шага в этом примере 0.1, разница между 1.1 и 1. Размер шага может быть как положительным числом, так и отрицательным. Если опустить запятую и 1.1, Mathcad примет размер шага равным 1 в подходящем направлении;
число 2 – последнее число в диапазоне. Если третье число в определении диапазона не равно целому числу приращений начального значения, аргумент все равно не выйдет за его пределы.
Можно использовать произвольные скалярные выражения вместо 1, 1.1 и 2. Однако эти значения должны быть вещественными числами. Рис. 8 показывает результаты различных определений дискретного аргумента.
Для набора букв греческого алфавита используйте палитру символов αβ . Последний пример на рис. 8 сравните с аналогичным примером, приведенным на рис. 3.
26
j1 := 0, 0.5.. 8 |
j2 := 10.. 0 |
|
|
|
N := 20 |
|
i := 0.. N |
|
|
|
|
|
|||||||||||||||||
j3 := 0.. 10 |
j4 := 0, 2.. 10 |
|
|
|
υ |
|
:= 2 π |
|
i |
r := cos (υ |
|
) + |
1 |
||||||||||||||||
|
|
|
i |
|
|
|
|
i |
|||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
N |
i |
|
|
|
|
|||||
j5 := 10.. 15 |
j6 := 0, 5.. 18 |
|
|
|
xi |
:= ri cos (υ i) |
yi := ri sin(υ |
i) |
|||||||||||||||||||||
j1 = j2 = j3 = j4 = j5 = j6 = υ i = |
|
|
|
|
ri = |
|
|
|
xi = |
yi = |
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
0 |
|
10 |
|
0 |
|
0 |
|
10 |
|
0 |
|
|
|
|
0 |
|
|
|
2 |
|
2 |
|
|
|
|
0 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
0.5 |
|
9 |
|
1 |
|
2 |
|
11 |
|
5 |
|
0.314 |
|
|
1.951 |
|
1.856 |
|
|
0.603 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
1 |
|
8 |
|
2 |
|
4 |
|
12 |
|
10 |
|
0.628 |
|
|
1.809 |
|
1.464 |
|
|
1.063 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
1.5 |
|
7 |
|
3 |
|
6 |
|
13 |
|
15 |
|
0.942 |
|
|
1.588 |
|
0.933 |
|
|
1.285 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
2 |
|
6 |
|
4 |
|
8 |
|
14 |
|
|
|
1.257 |
|
|
1.309 |
|
0.405 |
|
|
1.245 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
2.5 |
|
5 |
|
5 |
|
10 |
|
15 |
|
|
|
1.571 |
|
|
|
|
1 |
|
0 |
|
|
|
|
1 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
3 |
|
4 |
|
6 |
|
|
|
|
|
|
|
1.885 |
|
|
0.691 |
|
–0.214 |
|
|
0.657 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
3.5 |
|
3 |
|
7 |
|
|
|
|
|
|
|
2.199 |
|
|
0.412 |
|
–0.242 |
|
|
0.333 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
4 |
|
2 |
|
8 |
|
|
|
|
|
|
|
2.513 |
|
|
0.191 |
|
–0.155 |
|
|
0.112 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
4.5 |
|
1 |
|
9 |
|
|
|
|
|
|
|
2.827 |
|
|
0.049 |
|
–0.047 |
|
|
0.015 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
5 |
|
0 |
|
10 |
|
|
|
|
|
|
|
3.142 |
|
|
|
|
0 |
|
0 |
|
|
|
|
0 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
5.5 |
|
|
|
|
|
|
|
|
|
|
|
3.456 |
|
|
0.049 |
|
–0.047 |
|
|
–0.015 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
6 |
|
|
|
|
|
|
|
|
|
|
|
3.77 |
|
|
0.191 |
|
–0.155 |
|
|
–0.112 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
6.5 |
|
|
|
|
|
|
|
|
|
|
|
4.084 |
|
|
0.412 |
|
–0.242 |
|
|
–0.333 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
7 |
|
|
|
|
|
|
|
|
|
|
|
4.398 |
|
|
0.691 |
|
–0.214 |
|
|
–0.657 |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
7.5 |
|
|
|
|
|
|
|
|
|
|
|
4.712 |
|
|
|
|
1 |
|
0 |
|
|
|
–1 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
yi |
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2
1 |
0 |
1 |
2 |
xi
Рис. 8. Некоторые допустимые определения дискретного аргумента
27
В инженерной практике дискретные аргументы часто используют, чтобы выполнить многократные вычисления нескольких переменных одновременно. Рассмотрим модель эпизоотии с четырьмя переменными: i – число инфицированных животных; v - число восприимчивых; d – число умерших; r – число выздоровевших и приобретших иммунитет. Четыре уравнения, которые связывают эти переменные в каждый момент:
Начальные значения
|
i0 |
|
|
|
50 |
|
|
|
v0 |
|
|
|
|
|
|
|
|
:= |
|
22000 |
|||
|
d |
0 |
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
r0 |
|
|
|
0 |
|
|
t |
= |
|
it |
|
= |
|
050
1110
2240.79
3521.291
41.101·103
52.206·103
63.931·103
75.46·103
84.603·103
91.762·103
10363.936
1161.936
1210.157
131.655
140.27
150.044
|
t := 0.. 20 |
|
|
|
|
|
||||
|
it+1 |
|
0.0001v tit |
|
||||||
|
v t+1 |
|
|
v t − 0.0001v tit |
|
|||||
|
|
|
|
|||||||
|
d t+1 |
|
:= |
d t |
+ 0.55it |
|
||||
|
|
|
|
|
|
rt |
+ 0.45it |
|
||
|
rt+1 |
|
|
|||||||
v t = |
|
|
d t |
= |
|
|
|
rt = |
|
|
|
|
|
|
|
|
|
|
|
|
|
2.2·104 |
|
|
|
|
0 |
|
|
|
0 |
|
2.189·104 |
|
|
|
|
27.5 |
|
|
22.5 |
||
2.165·104 |
|
|
|
|
88 |
|
|
72 |
||
2.113·104 |
|
|
|
220.435 |
|
|
180.356 |
|||
2.003·104 |
|
|
|
507.145 |
|
|
414.937 |
|||
1.782·104 |
|
|
|
1.113·103 |
|
|
910.558 |
|||
1.389·104 |
|
|
|
2.326·103 |
|
|
1.903·103 |
|||
8.43·103 |
|
|
|
4.488·103 |
|
|
3.672·103 |
|||
3.828·103 |
|
|
|
7.491·103 |
|
|
6.129·103 |
|||
2.066·103 |
|
|
|
1.002·104 |
|
|
8.2·103 |
|||
1.702·103 |
|
|
|
1.099·104 |
|
|
8.993·103 |
|||
1.64·103 |
|
|
|
1.119·104 |
|
|
9.157·103 |
|||
1.63·103 |
|
|
|
1.123·104 |
|
|
9.185·103 |
|||
1.628·103 |
|
|
|
1.123·104 |
|
|
9.189·103 |
|||
1.628·103 |
|
|
|
1.123·104 |
|
|
9.19·103 |
|||
1.628·103 |
|
|
|
1.123·104 |
|
|
9.19·103 |
Рис. 9. Вычисления в модели распространения инфекции
28
it+1 = 0,0001vt it , vt+1 = vt – 0,0001vt it , dt+1 = dt + 0,55it , rt+1 = rt + 0,45it .
Если задать цикл изменения дискретного аргумента t, то Mathcad будет выполнять цикл для каждого уравнения перед переходом к следующему уравнению.
Для того чтобы значения переменных для следующего значения t вычислялись одновременно, необходимо создать единую формулу. Это возможно с использованием векторных обозначений.
Решение задачи для конкретных начальных условий приведено на рис. 9.
Возможно также выполнить рекурсивные вычисления, начинающиеся с вектора и возвращающие каждый раз новый вектор. При этом удобно использовать оператор верхнего индекса Mathcad. Рассмотрим это на примере численного интегрирования системы дифференциальных уравнений вида
dX(t) =
AX(t)
dt
с известным начальным вектором Х(0). Перейдем к конечным разностям, полагая
dX(t) ≈ ∆ X(t=) X(tk−) X(tk −1) ,
dt ≈ ∆t ,
и перепишем исходную систему уравнений в виде рекурентного соотношения
X(tk ) = X(tk −1) + AX(tk −1)∆ t .
Перепишем последнее соотношение с использованием верхнего индекса Mathcad
X<k> := X<k–1> + A X<k–1> ∆ t.
Здесь верхний индекс обозначает номер столбца матрицы Х. На рис. 10 приведена программа численного интегрирования системы уравнений 3-го порядка.
29
|
|
0.5 |
|
0 |
0.2 |
|
|
|
|
|
|
|
|
1 |
|
|||
A := |
0.25 |
0.9 |
0.1 |
|
Начальные значения |
X 0 |
:= |
2 |
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.25 |
0.1 |
0.7 |
|
|
|
|
|
|
|
|
1.5 |
|
||||
k := 1.. 8 |
|
|
∆ t := 1 |
X k |
:= X k−1 |
+ A X k−1 ∆ t |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
159.565 |
|
|
|
|
|
||
Конечные значения |
X 8 |
= |
630.464 |
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
361.971 |
|
|
|
|
|
|
|
|
|
1 |
1.8 |
3.3 |
|
6.144 |
11.585 |
22.073 |
42.41 |
82.038 |
159.565 |
|
|
|||||
X = |
|
2 |
4.2 |
8.73 |
18.009 |
36.938 |
75.426 |
153.478 |
311.421 |
630.464 |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.5 |
3 |
|
5.97 |
11.847 |
23.477 |
46.501 |
92.112 |
182.541 361.971 |
|
|
Рис. 10. Рекурсивные вычисления с использованием верхнего индекса Mathcad
Для ввода верхнего индекса нажмите [Ctrl+6]. Появится поле между угловыми скобками < >, которое заполняется дискретным аргументом k или k – 1. Результаты расчетов хранятся в матрице Х. Каждый столбец этой матрицы представляет собой значение вектора Х для разных моментов времени от начального момента t = 0 до конечного момента t = 8∆ t.
30