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

маткад учебник

.pdf
Скачиваний:
1817
Добавлен:
10.02.2015
Размер:
565.34 Кб
Скачать

 

Таблица 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

ORIGIN0

Объединение матриц

 

 

 

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 k1

+ A X k1 ∆ 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 = 8t.

30

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]