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

MathCad_Дятко_Кишкурно

.pdf
Скачиваний:
113
Добавлен:
09.03.2016
Размер:
1.81 Mб
Скачать

max(A)

Максимальный элемент в массиве A

min(A)

Минимальный элемент в массиве A

identity(n)

(n n) – единичная матрица

diag(v)

Диагональная матрица, содержащая на диагонали

 

элементы вектора v

tr(A)

Сумма диагональных элементов матрицы A (след

 

A). Матрица A должна быть квадратной

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

панель инструментов Matrix. Произведение матриц:

 

1

2

4

 

3

2

1

 

51

40

47

A

6

7

9

B

6

5

9

C A B

C 141

110

132

 

4

7

8

 

9

7

7

 

126

99

123

Произведение матрицы на вектор:

 

1

 

 

 

49

V

6

 

P

A V P

129

 

9

 

 

 

118

Транспонирование матрицы и вектора:

 

 

1

6

4

 

 

AT

2

7 7

VT

( 1 6 9 )

 

4

9

8

 

 

Вычисление определителя матрицы:

 

 

 

 

 

 

 

 

D

 

A

 

 

 

D 25

Вычисление обратной матрицы:

 

31

 

0.28

0.48

0.4

 

1

0

0

S A 1 S

0.48

0.32

0.6

I A A 1 I

0

1

0

 

0.56

0.04

0.2

 

0

0

1

Скалярное произведение векторов:

2

W 5

P W V P 95

7

Сумма элементов вектора:

s

V

s 16

Выделение из матрицы и второго столбца и второй строки:

 

 

 

2

 

 

1

 

 

Y A

1

Y

7

Z

T

T

( 6 7 9 )

 

A

 

Z

 

 

 

7

 

 

 

 

 

Число строк и столбцов матрицы:

 

 

 

 

n

 

rows(A)

n 3

m

 

cols(A)

m 3

Максимальный и минимальный элемент матрицы:

Bmax max(B) Bmax 9

Bmin min(B) Bmin 1

Число элементов вектора:

k length(V) k 3

Номер последнего элемента вектора:

m last(V)

m 2

Создание единичной матрицы:

1

0

I identity(2) I

 

0

1

32

Создание диагональной матрицы из элементов вектора:

1 0 0

T diag(V) T

0 6 0

0 0 9

Вычисление следа (сумы диагональных элементов) квадратной матрицы:

Sp tr(A) Sp 16

Рассмотрим построение графика функции, когда ее рассчитанные значения и значения ее аргумента предварительно записаны в массивы.

f (x)

3x e x

 

 

 

 

 

 

x1

0

x2

5

x

0.1

N

x2

x1

 

x

 

 

 

 

 

 

 

 

i 0 N Xi

x1 i x Yi

f Xi

 

 

 

1.5

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

Y

 

 

 

 

 

 

 

 

 

0.5

 

 

 

 

 

 

 

 

0

0

1

2

3

4

 

5

 

 

 

 

 

X

 

 

 

Для выполнения поэлементных операций над элементами векторов или матриц в пакете Mathcad существует оператор векторизации, который предписывает Mathcad применять операторы и функции к каждому элементу массива поочередно. Так если V – вектор, то sin(V) – недопустимое выражение. Но если использовать оператор векторизации, Mathcad вычисляет синус каждого элемента вектора V, а результат – новый вектор, чьи элементы – синусы элементов V.

Для применения оператора векторизации к некоторому выражению необходимо:

33

установить в нужном месте документа шаблон оператора векторизации (нажать комбинацию клавиш <Ctr>+<–> или воспользовать-

ся палитрой символов ); заполнить шаблон необходимым выражением. Например:

 

0.841

0.909

0.757

 

0.54

sin(A)

0.279

0.657

0.412

cos(V)

0.96

 

0.757

0.657

0.989

 

0.911

3.2.Решение уравнений и систем уравнений

3.2.1.Системы линейных уравнений

Рассмотрим систему линейных уравнений:

a11 x1

a12 x2 a1n

b1

a21 x1

a22 x2 a2n

b2 ,

 

 

 

an1 x1

an2 x2 ann

bn

Запишем ее в матричном виде:

AX B ,

 

 

a11

a12

a1n

 

где A

a21

a22

a2n

квадратная матрица размером n×n

 

 

 

 

 

 

 

 

 

an1 an2

ann

 

 

b1

 

 

 

 

 

B

b2

 

вектор размером n×1

bn

34

x1

X

x2

вектор неизвестных размером n×1

xn

Из курса линейной алгебры известно, что решение рассматриваемой системы уравнений имеет вид:

X A 1 B

Ниже приведен пример решения системы линейных уравнений:

2x

3 y

z

5

x

2 y

3z

6

3x

y

2z

1

в пакете Mathcad.

 

2

3

1

 

5

x

 

A

1

2

3

B

6

y

A 1 B

 

3

1

2

 

1

z

 

 

x

 

 

1

 

 

 

X

y

 

X

2

x 1

y

2 z 3

 

z

 

 

3

 

 

 

В Mathcad имеется встроенная функция lsolve(A,B), которая служит для решения системы линейных уравнений. Далее приведен пример решения рассматриваемой системы с помощью этой функции.

1 X lsolve(A B) X 2 3

3.2.2. Одно уравнение с одним неизвестным

 

 

Для решения одного уравнения с одним неизвестным f ( x)

0 в

пакете Mathcad используются функции

root( f ( x), x)

и

 

 

35

root( f ( x), x,a,b) , где f ( x) – функция, определенная где-либо в рабо-

чем документе, или выражение, которое возвращает скалярное значение, x – имя переменной, относительно которой ищется решение уравнения.

Функция root( f ( x), x) требует дополнительного задания началь-

ного значения (guess value) переменной x. Для этого нужно просто предварительно присвоить x некоторое число. Поиск корня будет производиться вблизи этого числа. Таким образом, присвоение на-

чального значения требует априорной информации о примерной локализации корня.

Если функция f ( x) имеет несколько корней, то найденное значе-

ние корня будет зависеть от начального приближения для переменной x. Будет найдено такое значение корня, в окрестности которого задано начальное приближение.

Рассмотрим пример. Пусть необходимо найти все корни уравнения e xcos( x) 0,5 на отрезке 1,5; 1,5 .

Ниже приведен пример решения этого уравнения с применением функции root( f ( x), x) . Для локализации корней используется по-

строение графика функции на заданном интервале.

f (x)

e x cos(x)

0.5

 

 

 

x1

1.5

x2

1.5

x

0.1

 

x

x1 x1

x

x2

 

 

 

 

 

 

1.5

 

 

 

 

 

 

1

 

 

 

f (x)

 

 

0.5

 

 

 

 

2

1

0

 

1

2

 

 

 

0.5

 

 

 

 

 

 

x

 

 

 

36

x

 

2 - начальное приближение для первого корня

x1

root(f (x)

x)

x1

1.454

- найден первый корень

x

1

- начальное приближение для второго корня

x2

root(f (x)

x)

x2

0.54

- найден второй корень

Иногда удобнее задавать не начальное приближение к корню, а интервал a, b , внутри которого корень заведомо находится. В этом

случае следует использовать функцию root( f ( x), x,a,b) с четырьмя

аргументами, а присваивать начальное значение x не нужно, как показано ниже.

x1

root(f (x)

x

 

2

1) x1

1.454

x2

root(f (x)

x

0

1)

x2

0.54

При использовании функции root( f ( x), x,a,b) необходимо помнить следующее:

внутри интервала a, b не должно находиться более одного корня. Иначе будет заранее неизвестно, какой именно из корней найден;

значения функций f (a)и f (b) должны иметь разный знак, иначе

будет выдано сообщение об ошибке.

Для нахождения корней полинома, т. е. для решения уравнения

a

n

xn

 

a

n

1

xn

1 ...

a x a

0

0

используется

 

функция

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

polyroots(V ) ,

где

 

V

 

вектор

коэффициентов

полинома.

V T

a

0

,a ,...,a

n 1

,a

n

. Функция возвращает вектор, элементами кото-

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

рого являются корни полинома.

 

 

 

 

 

 

 

 

 

Пример. Найти все корни уравнения x3

2x2

x

2

0

 

 

 

 

 

V

 

(

2

1

2

1 )T

- вектор коэффициентов

 

 

 

 

 

 

 

 

X

 

polyroots(V)

XT

 

( 2

1 1 )

- вектор корней

 

 

Пример. Найти все корни уравнения x3

10x

2

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

37

V

( 2 10

0 1 )T

- вектор коэффициентов

X

polyroots(V)

 

 

XT

( 3.258

0.201

3.057 )

- вектор корней

3.2.3. Системы нелинейных уравнений

Пусть необходимо решить систему уравнений

f1 (x1 , x2 ,..., xn )

0

f 2 (x1 , x2 ,..., xn )

0

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

 

f n (x1 , x2 ,..., xn )

0

Процедура решения в пакете Mathcad имеет следующий вид: задаются начальные значения для всех переменных системы:

x1 : x10 x2 : x20

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

xn : xn0

Given – ключевое слово; записываются уравнения системы:

f1 (x1 , x2 ,..., xn )

0

f 2 (x1 , x2 ,..., xn )

0

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

 

f n (x1 , x2 ,..., xn )

0

находится решение системы уравнений в виде вектора значений соответствующих переменных.

V : Find (x1 , x2 ,..., xn )

Здесь V : Find( x1, x2 ,...,xn ) – функция, которая возвращает ре-

шение системы уравнений в виде вектора значений соответствующих переменных, если оно существует.

38

При записи системы уравнений, после ключевого слова Given,

при необходимости можно указывать ограничения на возможные зна-

чения переменных, используя символы

,

,

и .

Замечание. При записи уравнений внутри блока Given…Find

знак равенства следует вводить нажатием комбинаций клавиш

<Ctrl>+<=> или использовать символ Equal to (логическое равенство)

из палитры символов Boolean (Булево).

 

 

 

 

 

Если система уравнений является нелинейной, то найденное ре-

шение может быть не единственным и зависеть от начальных значе-

ний переменных.

 

 

 

 

 

 

 

 

 

 

Пример. Решить систему уравнений для x

4, 4 :

y

x 2

5

0

 

 

 

 

 

 

 

 

 

y

x 2

2x

4

0

 

 

 

 

 

 

 

 

Для поиска начальных приближений для переменных x и y вы-

ражаем из каждого уравнения

y

как функцию

x и строим графики

функций y1( x)

 

x 2

5 и y2( x)

x2

2x

4 .

 

 

 

 

 

y1 (x)

x2

5

 

y2 (x)

x2

2x

4

 

 

 

x1

 

4

 

x2

4

 

 

 

 

 

 

 

 

x

x1 x1

x

x2

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

y1(x)

 

 

 

 

 

 

 

 

 

 

 

 

y2(x)

4

2

0

 

2

4

6

 

 

 

 

 

 

 

 

 

10

 

 

 

 

 

 

 

 

 

 

 

 

 

20

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

39

Находим первое решение:

x

2

 

 

y

1

Given

 

 

 

 

 

y

x2

5

 

0

 

 

 

 

 

 

 

 

y

x2

2x

4

 

0

 

 

 

1.679

V Find(x y)

V

 

2.179

Проверка найденного решения:

y1 V0 y2 V0

0

Находим второе решение:

x

2

 

 

y

1

 

Given

 

 

 

 

 

 

y

x2

5

 

0

 

 

 

 

 

 

 

 

 

 

 

y

x2

2x

4

 

0

 

 

 

 

 

 

x0

 

 

 

 

x0

2.679

 

 

Find(x y)

 

 

y0

 

 

 

 

y0

2.179

Проверка найденного решения:

y1 (x0)

y2 (x0)

 

10

15

1.776

3.3.Дифференциальные уравнения и системы

3.3.1.Дифференциальные уравнения первого порядка

Рассмотрим обыкновенное дифференциальное уравнение (ОДУ) первого порядка

dy

f x, y x

 

dx

 

40