- •Математический практикум с применением пакета Mathcad
- •Оглавление
- •1. Введение в Mathcad
- •1.1. Интерфейс Mathcad
- •1.1.1. Главное меню Mathcad
- •1.1.2. Панели инструментов
- •2. Задачи элементарной математики
- •2.2. Построение графиков функций
- •2.3. Решение алгебраических уравнений и систем
- •3. Задачи линейной алгебры
- •3.1. Основные сведения о матричных операциях
- •3.2. Решение типовых задач по линейной алгебре
- •4. Задачи математического анализа
- •4.1. Вычисление пределов числовых последовательностей и функций
- •4.2. Исследование сходимости и вычисление сумм рядов
- •4.3. Дифференцирование функций одной переменной
- •4.4. Интегрирование функции одной переменной
- •4.4.1. Неопределенные интегралы
- •4.4.2. Определенные интегралы
- •5.1. Решение задачи Коши
- •5.1.1. Решение задачи Коши методом Эйлера
- •5.1.2. Решение задачи Коши методом Рунге–Кутта второго порядка
- •5.1.3. Решение задачи Коши методом Рунге–Кутта четвертого порядка
- •5.1.4. Решение задачи Коши при помощи встроенных функций
- •5.2. Решение краевой задачи
- •6. Теории вероятностей и математическая статистика
- •6.1. Дискретные случайные величины
- •6.2. Непрерывная случайная величина
- •7. Программирование в Mathcad
- •Заключение
- •Предметный указатель
- •Список литературы
3. Задачи линейной алгебры |
41 |
last(V) – возвращает номер последней компоненты вектора V. length(V) – возвращает количество компонент вектора V. rows( A) – возвращает количество строк в матрице A. cols(A) – возвращает количество столбцов в матрице A. max(A, B, C, …) , min(A, B, C, …) – возвращают соответст-
венно максимальное и минимальное значение элементов матриц, включенных в скобки.
tr(A) – возвращает сумму диагональных элементов матрицы A (след матрицы A).
rank(A) – вычисляет ранг матрицы A.
norm1(A), norm2(A), norme(A), normi(A) – вычисление норм матрицы A по разным методам.
3. Функции, реализующие численные алгоритмы решения задач линейной алгебры.
eigenvals(A) – вычисление собственных значений квадратной матрицы A.
eigenvecs(A) – вычисление собственных векторов квадратной матрицы A.
lsolve(A,b) – решение системы линейных алгебраических уравнений Ax=b.
rref(A) – приведение матрицы к ступенчатому виду при помощи элементарных преобразований с единичным базисным минором.
3.2. Решение типовых задач по линейной алгебре
Рассмотрим решение нулевого варианта средствами Mathcad, приведенного в работе [4].
41
Пример 1. Найти миноры M22, алгебраические дополнения A31 и вычислить определители матриц
|
5 |
6 |
3 |
|
|
1 |
−2 |
3 |
4 |
|
|
, B = 2 |
1 −4 |
3 . |
|||||||||
A = |
0 |
1 |
0 |
|
|||||||
|
|
|
|
|
|
3 |
−4 |
−1 |
−2 |
|
|
|
7 |
4 |
5 |
|
|||||||
|
|
|
4 |
3 |
2 |
|
|
||||
|
|
|
|
|
|
−1 |
Решение:
Все элементы одномерных и двумерных массивов будем нумеровать начиная с 1, поэтому вначале файла вставим команду
ORIGIN :=1
Чтобы ввести матрицу, необходимо набрать имя матрицы и знак присвоить. Затем на панели операций с матрицами нажать
на кнопку или использовать «горячую» комбинацию клавиш «Ctrl+m» (удерживая клавишу Ctrl, нажать другую клавишу m). В появившемся диалоговом окне необходимо ввести число строк (Rows) и число столбцов (Columns). Перемещаться к следующему элементу можно при помощи мышки, стрелок или клавиши Tab. Чтобы вычислить определитель матрицы A, необходимо нажать
кнопку или клавишу | и ввести имя матрицы A, и нажать клавишу пробела и знак =.
a) Решаем первую часть примера 1. Вводим матрицу A.
|
5 |
6 |
3 |
|
|
|
0 |
1 |
0 |
|
. Для этого набираем следующую последователь- |
A := |
|
||||
|
7 |
4 |
5 |
|
|
|
|
|
ность символов: A «Shift+:» «Ctrl+m» 3 3 5 Tab 6 Tab 3 Tab 0 Tab 1 Tab 0 Tab 7 Tab 4 Tab 5 Enter.
Вычисляем определитель этой матрицы |A|=4.
Для вычисления минора M22 вычислим определитель
|
5 |
3 |
|
= 4. |
|
7 |
5 |
|
|
|
|
|
Аргумент определителя в данном случае быстрее ввести вручную, вставив и заполнив матрицу второго порядка. Для этого
мышкой нажимаем кнопку или клавишу | и вместо аргумента
42
3. Задачи линейной алгебры |
43 |
вводим матрицу второго порядка, используя кнопку , после чего нажимаем клавишу =.
Вычислим теперь алгебраическое дополнение A31. Для этого используем функцию submatrix.
A31:= (−1)1+3 | submatrix(A,1,2,2,3) |.
При помощи функции submatrix, из матрицы A порядка 3, извлекаем матрицу второго порядка, получающуюся вычеркиванием первого столбца и третьей строки. Вычисляем определитель из этой матрицы и умножаем его на знак алгебраического дополнения. Для вывода результата вычисления вводим имя переменной A31, в которой хранится результат, и нажимаем клавишу =. Получаем, A31= –3.
b) Теперь найдем те же величины для матрицы B.
Вводим переменную B1 и присваиваем ей значение, соответствующее квадратной матрице B, состоящей из четырех строк
|
1 |
−2 |
3 |
4 |
|
|
2 |
1 |
−4 |
3 |
|
(Rows) и четырех столбцов (Columns). B := |
. |
||||
|
3 |
−4 |
−1 |
−2 |
|
|
|
||||
|
4 |
3 |
2 |
−1 |
|
Вычисляем определитель |B|=900.
Теперь вычислим минор элемента B22. Для этого получим матрицу B22, исключив из матрицы B вторую строку и второй столбец. Проще набрать вручную эту матрицу. С целью демонстрации использования матричных функций получим матрицу
B22 при помощи функций augment, stack и submatrix. Чтобы фор-
мула была понятнее, используем две вспомогательные матрицы B1 и B2. B1 – это первая строка без второго столбца. B2 – третья и четвертая строки без второго столбца.
B1:= augment(submatrix(B,1,1,1,1), submatrix(B,1,1,3,4)). B2 := augment(submatrix(B,3,4,1,1), submatrix(B,3,4,3,4)).
Затем, используя функцию stack, соединяем эти две матрицы в одну матрицу B22. B22 := stack(B1, B2).
|
1 |
3 |
4 |
|
|
3 |
−1 |
−2 |
|
Получили матрицу B22 = |
. |
|||
|
4 |
2 |
−1 |
|
|
|
43
Теперь вычисляем определитель матрицы B22 и получаем минор B22. | B22 |= 30.
Вычислим теперь алгебраическое дополнение B31. Для того чтобы из матрицы B вычеркнуть третью строку и первый столбец, нужно вырезать из B два блока, имеющие по три столбца: submatrix(B,1,2,2,4) и submatrix(B,4,4,2,4), – присоединить к пер-
вому второй блок, используя функцию stack.
M 31:= stack(submatrix(B,1,2,2,4), submatrix(B,4,4,2,4)).
Далее вычисляем и запоминаем в переменной B31 значение алгебраического дополнения B31. B31:= (−1)3+1 | M 31| . Выводим значение переменной B31. B31= –124.
0 −1 5
Пример 2. Решить уравнение: 3 4 7 =12. x x 8
Решение: В общем случае такая задача решается разложением определителя на множители и решением полученного алгебраического уравнения. Раскладываем этот определитель по третьей строке. Получаем линейное уравнение:
x |
|
|
−1 5 |
|
− x |
|
0 |
5 |
|
+8 |
|
0 |
−1 |
|
=12. |
|||||
|
|
|
|
|
|
|||||||||||||||
|
|
4 7 |
|
|
|
|
3 |
7 |
|
|
|
|
3 |
4 |
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Для решения этого уравнения мышкой выделяем любую из двух переменных x и переходим в пункт меню Simbolics, выбираем пункт подменю Variable и вызываем команду Solve. В результате получаем ответ: 1.
Для проверки правильности решения введем переменную x и присвоим ей значение x:=1. Затем, введем матрицу A, соответст-
|
|
0 |
−1 |
5 |
|
|
вующую условию задачи. |
|
3 |
4 |
7 |
|
. Вычислим определи- |
A := |
|
|||||
|
|
|
x |
8 |
|
|
|
x |
|
|
тель матрицы A. |A|=12.
Для версий Mathcad, начиная с 2001, удобнее использовать вычислительный блок Given/Find.
44
3. Задачи линейной алгебры |
45 |
|
|
0 |
−1 |
5 |
|
|
|
|
|||||
x := 0 Given |
|
3 |
4 |
7 |
|
=0 x := Find(x). |
|
|
|||||
|
|
|
x |
8 |
|
|
|
x |
|
|
Осталось узнать значение искомой переменной x=1. Напомним, что знак = в уравнении набирается как знак логической операции. («Ctrl+=» или используя команду = в панели инструментов
Boolean).
Пример 3. Найти произведения матриц A B:
|
1 |
0 1 |
|
|
1 |
2 |
2 |
|
|
2 |
−1 3 |
|
|
2 |
1 |
−2 |
|
A = |
|
B = |
. |
|||||
|
0 2 −1 |
|
|
2 |
−2 1 |
|
||
|
|
|
|
Решение: Вводим с клавиатуры значения всех элементов перемножаемых матриц и набираем команду A*B=. В результате
|
|
3 |
0 |
3 |
|
получаем: |
|
6 |
−3 |
9 |
|
A B = |
. |
||||
|
|
2 |
4 |
−5 |
|
|
|
|
Пример 4. Доказать, что матрица A имеет обратную и найти
её:
|
2 |
3 |
2 |
|
|
1 |
2 |
−3 |
|
A := |
. |
|||
|
3 |
4 |
1 |
|
|
|
Решение. Вводим матрицу A. Для доказательства существования обратной матрицы, вычисляем её определитель. |A|= –6. Он не равен нулю, следовательно, существует обратная матрица A−1 . Для определения обратной матрицы вводим имя
матрицы A и нажимаем на кнопку . Затем два раза нажимаем клавишу пробел и клавишу =. В результате получаем обратную матрицу с точностью до трех знаков после запятой:
|
|
−2.333 |
−0.833 |
2.167 |
|
|
A |
-1 |
|
1.667 |
0.667 |
−1.333 |
|
|
= |
. |
||||
|
|
|
0.333 |
−0.167 |
−0.167 |
|
|
|
|
|
Для того чтобы получить более точный ответ, необходимо дважды щелкнуть мышкой внутри поля обратной матрицы. В
45
появившемся окне Result Format выбрать поле Decimal и в области Number of Decimal places установить необходимое количество знаков после запятой.
|
1 |
0 |
2 |
0 |
0 |
|
|
0 |
1 |
0 |
2 |
0 |
|
Пример 5. Найти ранг матрицы: A := |
. |
|||||
|
2 |
0 |
4 |
0 |
0 |
|
|
|
Решение. Вводим матрицу A, состоящую из трех строк и пяти столбцов. Вызываем функцию rank(A) и нажимаем клавишу =.
Получаем ответ: rank(A) = 2.
Пример 6. Решить систему линейных уравнений: а) матричным методом; б) методом Крамера; в) методом Гаусса.
|
2x + x |
+ x |
= |
2, |
|
|
|
|
|
|
|
|||
|
|
1 |
2 |
3 |
|
|
|
|
|
|
|
|
|
|
x1 |
|
+ x2 +3x3 |
= 6, |
|
|
|
|
|
|
|
||||
2x |
|
+ x |
+ 2x |
= |
5. |
|
|
|
|
|
|
|
||
|
1 |
|
2 |
3 |
|
|
|
2 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Решение. |
а) |
Вводим матрицу |
|
1 |
1 |
3 |
|
и |
вектор |
|||||
A := |
|
|||||||||||||
|
|
|
|
|
|
|
|
|
2 |
1 |
2 |
|
|
|
b := (2 |
|
|
|
5)T . Вводим команду: |
|
|
|
|
||||||
|
6 |
x := A−1 b. |
Выводим |
ответ, |
транспонируя вектор-столбец (с целью экономия места в учебном пособии): xT = (2 −5 3).
Проверяем полученный результат: (A x)T = (2 6 5). По-
лучили правую часть. Следовательно, система линейных алгебраических уравнений решена правильно.
б) Решаем систему методом Крамера. На базе матрицы A получаем три вспомогательные матрицы: A1, A2 и A3. В матрице A1, вместо первого столбца, в матрице A2, вместо второго столбца и в матрице A3, вместо третьего столбца, подставляем вектор b.
A1:= augment(b, A 2 , A 3 ), A2 := augment( A 1 ,b,A 3 ) и A3 := augment( A 1 ,A 2 ,b ).
Вычисляем определитель матрицы A. d:=|A|. Сохраняем его значение в переменной d. По формулам Крамера получаем все
46
3. Задачи линейной алгебры |
47 |
три компоненты вектора решений x1, x2, x3 и, используя функцию stack, запоминаем их в векторе y.
| A1| |
| A2 | |
| A3| |
|||||
y := stack |
|
|
|
|
|
. |
|
d |
d |
d |
|||||
|
|
Осталось вывести полученное решение: yT = (2 −5 3).
в) Решение методом Гаусса. В Mathcad прямой и обратный ход метода Гаусса выполняет функция rref(A), где матрица A является расширенной матрицей. В первых столбцах матрицы находится левая часть системы линейных алгебраических уравнений, а в последних столбцах – правые части системы, которых может быть несколько. Данная функция при помощи элементарных преобразований приводит расширенную матрицу к матрице, содержащей в левом верхнем угле единичную подматрицу. При помощи функции rref можно решать системы линейных алгебраических уравнений с несколькими правыми частями, определять ранг матрицы, находить фундаментальную систему, решать системы уравнений, имеющие бесконечное множество решений, и получать обратную матрицу.
Для того чтобы получить обратную матрицу для квадратной матрицы A порядка N, необходимо к матрице A справа приписать единичную матрицу порядка N и для полученной расширенной матрицы состоящей из N строк и 2N столбцов, применить функцию rref. В результате получим матрицу, в которой слева будет единичная матрица, а справа – обратная матрица.
Пример:
1 |
2 |
1 0 1 −2 |
|
|
G := |
. |
rref (augment,identify(2))) = |
. |
|
0 |
1 |
0 1 0 |
1 |
|
Обратной матрицей для матрицы G будет матрица 1 |
−2 |
. |
||
|
|
0 |
1 |
|
Учитывая, что матрица A и вектор b уже определены ранее, решить пример 6 методом Гаусса можно одной командой
|
1 |
0 |
0 |
2 |
|
|
0 |
1 |
0 |
−5 |
|
rref ( augment( A,b )) = |
. |
||||
|
0 |
0 |
1 |
3 |
|
|
|
47
Последний столбец результирующей матрицы и есть решение нашей системы.
Эту же задачу можно решить при помощи функции lsolve(A,b), где A – квадратная матрица, b – вектор правых частей. Решение примера получается при помощи команды:
lsolve( A,b )T = (2 −5 3).
Пример 7. Установить совместимость систем уравнений и решить их, если они совместны:
|
x + x + x |
=3, |
|
|
x + x + x =6, |
|||||
|
|
1 |
2 |
3 |
|
|
|
1 |
2 |
3 |
а) |
2x1 + x2 −2x3 =1, |
б) |
|
x1 − x2 + 2x3 =5, |
||||||
|
x |
+ 2x |
−3x =1, |
|
2x − x + x =3, |
|||||
|
|
|
|
|||||||
|
1 |
2 |
|
3 |
|
1 |
2 |
3 |
||
|
x + x + x |
=−1; |
|
3x −6x +5x =6. |
||||||
|
|
1 |
2 |
3 |
|
|
|
1 |
2 |
3 |
Решение:
а) Выпишем расширенную матрицу (назовем ее B) данной
|
1 |
1 |
1 |
3 |
|
|
2 |
1 |
−2 |
1 |
|
системы. B := |
. |
||||
1 |
2 |
−3 |
1 |
|
|
1 |
1 |
1 |
−1 |
|
Очевидно, что ранг исследуемой системы не больше количества неизвестных, т.е. не более трех. Подаем команду rref(B) =.
|
1 |
0 |
0 |
0 |
|
|
0 |
1 |
0 |
0 |
|
Получаем следующий результат: rref ( B ) = |
. |
||||
|
0 |
0 |
1 |
0 |
|
|
|
||||
|
0 |
0 |
0 |
1 |
|
Отсюда следует, что ранг матрицы системы A равен трем, а ранг расширенной матрицы B равен четырем. Следовательно, согласно теореме Кронекера–Капели система несовместна.
б) Выпишем расширенную матрицу (назовем ее B) данной
|
|
1 |
1 |
1 |
6 |
|
|
|
|
1 |
−1 |
2 |
5 |
|
|
системы |
B := |
. |
Применяем к этой матрице функ- |
||||
|
|
2 |
−1 |
1 |
3 |
|
|
|
|
|
|
||||
|
|
3 |
−6 |
5 |
6 |
|
|
цию rref:
48
3. Задачи линейной алгебры |
49 |
|
1 |
0 |
0 |
1 |
|
|
0 |
1 |
0 |
2 |
|
rref ( B ) = |
. |
||||
|
0 |
0 |
1 |
3 |
|
|
|
||||
|
0 |
0 |
0 |
0 |
|
Ранг исследуемой системы и ранг расширенной матрицы равен трем. Таким образом, система уравнений совместна и имеет единственное решение. После применения элементарных преобразований получили систему трех уравнений. Четвертое уравнение превратилось в тождество.
Ответ: x1=1, x2=2, x3=3.
Задание для самостоятельной работы.
Выполнить свой вариант типового задания по линейной алгебре из сборника типовых расчетов [4].
49