Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Берков_Н.Практикум_Mathcad.pdf
Скачиваний:
111
Добавлен:
26.05.2015
Размер:
1.2 Mб
Скачать

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. Он не равен нулю, следовательно, существует обратная матрица A1 . Для определения обратной матрицы вводим имя

матрицы 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 := A1 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