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

Лабораторная работа - Организация расчетов в системе Maple. Часть 2

.pdf
Скачиваний:
68
Добавлен:
14.04.2015
Размер:
2.44 Mб
Скачать

 

 

 

 

 

 

 

 

 

 

 

 

 

Окончание табл. 13.4

 

 

 

 

 

 

 

 

 

 

 

 

Система дифференциальных

 

 

 

 

 

Начальные

 

 

 

 

 

уравнений

 

 

 

 

 

 

условия

 

 

 

(t) 4x(t)

 

 

 

 

 

 

 

 

 

x

y(t)

6 1(t)

1(t

3)

 

 

;

x(0) 0;

16

 

 

 

 

3y(t) (t 6)

 

 

 

 

 

y(0) 3

 

y (t) 2x(t)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4 (t 1);

 

 

 

 

 

x(0) 4;

 

x (t) 5x(t) y(t)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

17

 

 

5y(t)

3 1(t) 1(t 6)

 

y(0) 0

 

y (t) x(t)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(t) 4x(t)

 

 

 

 

 

 

 

 

 

x

y(t)

8 1(t)

1(t

5)

 

 

;

x(0) 0;

18

 

 

 

 

8y(t) 3(t 4)

 

 

 

 

 

y(0) 2

 

y (t) 5x(t)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x(0) 3;

 

x (t) 3x(t) 10y(t) 6 (t);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

19

 

 

 

 

 

 

 

 

 

 

 

 

y(0) 0

 

y (t) x(t) 5y(t) 5 1(t 1) 1(t 7)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x (t) 4x(t)

y(t) 10 1(t)

1(t 9)

 

 

;

x(0) 0;

20

 

 

 

8y(t)

2 (t 3)

 

 

 

 

 

y(0) 1

 

y (t) 3x(t)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 13.5. Задания к теме "Интегральные преобразования" (часть 5)

f1(t)

f2(t)

f(t)

1

t4e t

(t 3)e 5t

t2 cos2 2t

2

t3e t

(t 4)e 4t

t sin t sin 2t

3

t2e t

(t 2)e 3t

t2 sin 2t cos 3t

4

te t

(t 1)e 2t

t sin2 t

5

t4e 2t

(t 2)e t

t sin 2t cos 3t

6

t3e 2t

(t 3)e 5t

t2 sin2 2t

7

t2e 2t

(t 4)e 4t

t cos t cos3t

8

te 2t

(t 2)e 3t

t2 sin 2t sin 3t

9

t4e 3t

(t 1)e 2t

t cos2 2t

10

t3e 3t

(t 2)e t

t2 cos t cos 3t

11

t2e 3t

(t 2)e 5t

t2 cos2 t

71

 

 

 

Окончание табл. 13.5

 

 

 

 

f1(t)

f2(t)

f(t)

 

 

 

 

12

te 3t

(t 1)e 4t

t sin t sin 3t

13

t4e 4t

(t 3)e 3t

t2 sin t cos 2t

14

t3e 4t

(t 2)e 2t

t sin2 2t

15

t2e 4t

(t 1)e t

t sin t cos 3t

16

te 4t

(t 2)e 5t

t2 sin2 t

17

t4e 5t

(t 1)e 4t

t cos 7t cos3t

18

t3e 5t

(t 3)e 3t

t2 sin 2t sin t

19

t2e 5t

(t 2)e 2t

t cos2 t

20

te 5t

(t 1)e t

t2 cos 7t cos 2t

Контрольные вопросы

1.Что называется интегралом Фурье?

2.В чем состоит определение преобразования Фурье? Каковы его основные свойства?

3.Что называется комплексной формой интеграла Фурье для функции f(х)?

4.Дайте определение преобразования Лапласа. Что называется изображением и оригиналом?

5.Как доказать свойство линейности преобразования Лапласа?

6.Как формулируется теорема подобия для интегрального преобразования?

7.Как формулируется теорема смещения для интегрального преобразования Лапласа?

8.В чем состоит теорема о дифференцировании оригинала (покажите пример ее применения)?

72

9.В чем состоит теорема о дифференцировании изображения (покажите пример ее применения)?

10.Как формулируются теоремы об интегрировании оригиналов и изображений?

11.Что называется сверткой двух функций?

12.В чем состоит операционный метод решения дифференциальных уравнений и их систем?

13.Как провести в Maple преобразование Лапласа с помощью функции "int"?

14.Какие функции Maple предназначены для прямого и обратного преобразования Лапласа?

15.Как подробно показать способ решения дифференциального уравнений с помощью преобразования Лапласа?

16.Какие функции Maple предназначены для прямого и обратного преобразования Фурье?

17.Как в Maple преобразование Лапласа может быть применено для проведения преобразования Фурье?

18.Как в Maple с помощью преобразования Фурье построить амплитудные и фазовые спектры функций?

73

Лабораторная работа № 14. МАТРИЦЫ

Цель работы

Изучение теоретических основ работы с матрицами.

Получение навыков работы с матрицами в программе

Maple.

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

Функции Maple, полезные при выполнении лабораторной работы

Понятия матриц и векторов в Maple тесно связаны с понятием массива. Вектор представляет собой одномерный массив, а матрица – двумерный. Заметим, что одномерный массив, в общем-то, является строкой, а не столбцом, поэтому одномерный массив – это вектор-строка, а вектор-столбец все-таки соответствует двумерному массиву.

Элементами массивов могут быть константы, переменные, выражения, списки и иные объекты. Эти элементы являются индексированными переменными и их положение указывается индексами.

Для создания массива применяется функция "array". С ее помощью можно создать просто пустую заготовку для массива (то есть фактически выделить память под соответствующую переменную) и заполнить этот массив потом, а можно сразу создать массив и присвоить конкретные значения его элементам.

74

Формат вызова функции для создания одномерного массива (вектор-строка):

array (1 .. jк, [ < список элементов строки>]);

Для двумерного массива (матрицы) необходимо вы-

звать

array (1 .. iк, 1 .. jк, [[< список элементов 1-ой стро-

ки>], [< список элементов 2-ой строки>], … , [< список элементов iк-ой строки>]]);

Здесь iк – количество строк, jк – количество столбцов. Как уже упоминалось выше, задавать список элементов необязательно.

Обратиться к элементу массива можно, если указать его имя и (в квадратных скобках) индекс (или индексы) этого элемента. Естественно, что попытка обратиться к несуществующему элементу массива приведет к ошибке.

Еще одним специализированным типом данных является тип "matrix". Принципиального отличия матрицы от массива не существует, но есть особенности, которые необходимо учитывать. Минимальным индексом ячеек массива может быть 0, для матрицы минимальный индекс равен 1. При создании матрицы указывается не диапазон индексов ячеек, как для массивов, а количество строк и столбцов. Элементы матрицы можно задавать как двумерным, так и одномерным списком. В отличие от массива, матрицу при создании можно заполнить одним числом без указания списка.

В отличие от обычных переменных, вывести массив или матрицу на экран, просто указав имя соответствующей переменной, невозможно. Для отображения содержимого массива используются функции "op" или "print".

Ввести элементы матрицы можно и интерактив-

но с помощью функции "entermatrix" пакета "linalg". При вызове функции на экране появляются приглашения вве-

75

сти значения конкретных элементов. После ввода числа пользователь обязательно должен закончить оператор ввода, то есть поставить точку с запятой.

Арифметические операции с матрицами описы-

ваются специфически, для их выполнения необходимо либо применять функцию "evalm", либо вызывать специфические функции. Так, для сложения матриц можно применять функцию "matadd".

Для нахождения произведения матриц необходимо использовать операцию не обычного ("*"), а матричного умножения ("&*"), либо применять функцию умноже-

ния матриц "multiply". Для умножения матрицы на чис-

ло необходимо использовать функцию "evalm" с указанием операции обычного умножения "*". Также для умножения матрицы на число можно применить функцию "scalarmul".

Бóльшая часть функций для работы с матрицами содержится в специальном пакете "linalg". Для использования этих функций необходимо подключить пакет с по-

мощью вызова "with (linalg)".

Транспонирование матриц осуществляется с по-

мощью функции "transpose". Заметим, что конкретный результат можно получить только для матриц и векторов (то есть только для одномерных и двумерных, но не многомерных массивов).

Для нахождения определителя матрицы используется функция "det".

Функция "minor" возвращает значение минора матрицы. Формат вызова:

minor (matr, num_row, num_col);

Здесь "matr" – имя матрицы;

"num_row" и "num_col" – соответственно номера строки и столбца элемента, для которого находится минор.

76

Для поиска ранга используется функция "rank". След матрицы можно определить, воспользовавшись функцией "trace".

Для вычисления нормы матрицы используется функция "norm". Формат вызова:

norm(A);

или norm(A, normname);

Здесь "А" – имя матрицы или вектора,

"normname" – необязательный параметр, определяет тип нормы вектора или матрицы.

Параметр "normname" может иметь значения 'infinity', 'frobenius', а также 1 и 2 для матриц и любое целое положительное число для вектора. По умолчанию используется норма типа 'infinity'. В этом случае для вектора норма определяется как максимальное значение среди модулей элементов вектора, для матрицы – максимальное значение среди сумм модулей элементов строк матрицы.

Для значения параметра "normname", равного 'frobenius', норма матрица определяется как квадратный корень из суммы квадратов каждого элемента матрицы или вектора.

'1'-норма матрицы определяется как максимальное значение среди сумм модулей элементов столбцов матрицы. '2'-норма матрицы А рассчитывается как квадратный корень из максимального собственного числа матрицы А·АТ.

Для вектора k-норма определяется как корень k-й степени из суммы всех элементов вектора, возведенных в k-ую степень (по модулю).

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

Для нахождения собственных чисел матрицы применяется функция "eigenvalues", для поиска собственных

77

векторов – функция "eigenvects". Собственные вектора выдаются в соответствии со следующим форматом: сначала выводится собственное число матрицы, затем его кратность и, наконец, собственный вектор, соответствующий этому числу.

Перечислим еще несколько полезных функций па-

кета "linalg":

addcol (matr, c1, c2, m) – заменяет в матрице "matr"

столбец "с2" на его сумму со столбцом "с1", умноженным на "m";

addrow (matr, r1, r2, m) – заменяет в матрице "matr"

строку "r2" на ее сумму со строкой "r1", умноженной на

"m";

augment (matr1, matr2, …) – объединяет две или больше матриц по горизонтали (для этой же цели используется функция "concat");

col (matr, i .. k) – возвращает столбцы матрицы "matr"

сi-го по k-ый как набор векторов, при вызове col (matr, i) возвращает один вектор;

coldim (matr) – возвращает число столбцов матрицы

"matr";

copyinto (matr1, matr2, i, j) – последовательно копиру-

ет матрицу "matr1" в "matr2" для элементов "matr2", начиная с i-ой строки и j-го столбца;

delcols (matr, i .. j) – удаляет столбцы матрицы "matr"

от i-гo до j-гo;

delrows (matr, i .. j) – удаляет строки матрицы "matr"

от i-ой до j-ой;

diag (n1, n2, …) – создает диагональную матрицу с числами "n1", "n2", … в главной диагонали;

extend (matr, m, n, х) – расширяет матрицу "matr" на" "m" строк и "n" столбцов с применением заполнителя "х".

mulcol (matr, c, expr) – умножает с-ый столбец матри-

78

цы "matr" на заданное выражение "expr" (может быть как числом, так и просто выражением);

mulrow (matr, r, expr) – умножает r-ую строку матри-

цы "matr" на заданное выражение "expr";

row (matr, i .. k) – аналог "col", но оперирует со столбцами;

rowdim (matr) – возвращает число строк матрицы

"matr";

stack (matr1, matr2) – возвращает объединенную матрицу с вертикальным слиянием "matr1" и "matr2";

submatrix (matr, Rrange, Crange) – извлекает подмат-

рицу из матрицы "matr", где "Rrange" и "Crange" – диапазоны изменения соответственно строк и столбцов. Возмо-

жен формат вызова submatrix (matr, Rlist, Clist), где "Rlist"

и"Clist" – списки номеров соответственно строк и столбцов, которые надо извлечь (каждый список указывается в квадратных скобках);

subvector (matr, Rrange, Crange) – извлекает указанный вектор из матрицы (параметры вызова аналогичны

"submatrix");

swapcol (matr, c1, c2)– меняет местами с1-ый и с2-ой столбцы в матрице "matr";

swaprow (matr, r1, r2) – меняет местами r1-ую и r2-ую строки в матрице "matr".

Задание на лабораторную работу

1.Изучите необходимые теоретические сведения

[3, с. 7–55].

Выберите один из вариантов из табл. 14.1.

2.Рассчитайте значение заданного матричного выражения аналитически и с помощью системы Maple.

79

3.Для матрицы А найдите определитель с помощью ручного расчета (метод – любой).

4.Для матрицы А с помощью системы Maple рассчитайте определитель:

– с помощью стандартной функции поиска определителя;

– методом разложения по строке (см. [3, пример на с. 42]), при этом модифицируйте процедуру таким образом, чтобы получить на экране вид и значения всех "промежуточных" определителей, получаемых при разложении (воспользуйтесь функцией "print");

– методом Гаусса (см. [3, пример на с. 46]), также отобразите на экране все промежуточные значения преобразуемой матрицы.

Сравните эти результаты с полученными в п. 3.

5.Для матрицы В найдите обратную матрицу с помощью ручного расчета (метод – любой).

6.Для матрицы В с помощью системы Maple найдите обратную матрицу

– с помощью стандартной функции поиска обратных матриц;

– методом Гаусса (см. [3, пример на с. 48]), при этом отобразите на экране все промежуточные значения преобразуемой матрицы.

Сравните эти результаты с полученными в п. 5.

7.Проверьте правильность расчета матрицы В–1,

подставив матрицы В и В–1 в уравнение B B1

B1 B = E .

8.Для матрицы С (составьте ее из первых 3 строк

истолбцов матрицы В) найдите вещественные собственные числа и соответствующие им векторы аналитически с помощью решения характеристического уравнения.

80