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

Инструментальные средства математического моделирования. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
870 Кб
Скачать

6.2. Перечень пакетов расширения Maple V

 

 

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

 

 

 

№ п/п

Пакет

Функции, описание

 

 

 

74.

Student[Calculus1]

Помощь в обучении и изуче-

 

 

нии вычислений одномерных

 

 

задач

75.

Student[LinearAlgebra]

Помощь в обучении и изуче-

 

 

нии основ линейной алгебры

76.

sumtools

Команды для вычисления ко-

 

 

нечных и бесконечных сумм

77.

SumTools

Пакет программ для нахожде-

 

 

ния закрытых форм конеч-

 

 

ных и бесконечных сумм

78.

tensor

Команды тензорных вычисле-

 

 

ний и их приложения в общей

 

 

теории относительности

79.

TypeTools

Команды для распознавания

 

 

типов

80.

Units

Команды межмодульного

 

 

окружения и обмена данными

81.

VariationalCalculus

Пакет программ вариацион-

 

 

ного исчисления

82.

VectorCalculus

Пакет векторных вычислений

83.

Worksheet

Пакет программ для создания

 

 

и работы с рабочим полем

 

 

среды Maple

84.

XMLTools

Пакет программ для исполь-

 

 

зования XML-документов

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

1.Перечислите основные пакеты расширений Maple V.

2.Приведите название пакетов по линейной алгебре.

3.Какие задачи решает пакет DETools?

4.Назовите пакет, необходимый для решения задач оптимизации.

5.При решении каких задач используется пакет geometry?

6.Для чего используется пакет plots?

7.Назовите пакет расширения Maple V для проведения статистических расчетов.

51

7. Обращение к пакетам линейной алгебры

7.1. Вызов пакета linalg и его основных команд

Для эффективного анализа широкого класса базовых линейных алгебраических задач применяется linalg – пакет линейной алгебры, базирующийся на данных в виде массивов и содержащий необходимые математические функции, обеспечивающие его операционную полноту. Идентификаторы функций этого пакета перечислены ниже и возвращаются командой подключения пакета:

> with(linalg);

7.2. Функции основных команд linalg

Ниже в таблице приводятся краткие сведения, поясняющие функциональные свойства основных команд пакета linalg:

 

 

Таблица 2

 

 

 

Команды

Описание

п/п

 

 

1.

BlockDiagonal

Создает блок-диагональную матрицу

2.

Wronskian

Создает матрицу Вронского векторных функ-

 

 

ций

 

 

 

3.

addcol

Линейное преобразование столбцов матрицы

4.

addrow

Линейное преобразование строк матрицы

5.

adjoint (adj)

Возвращает сопряженную матрицу.

6.

angle

Функция вычисляет угол между двумя век-

 

 

торами

 

 

 

7.

augment

Горизонтально объединяет две матрицы и

 

 

более

 

 

 

8.

backsub

Обратная подстановка в матрице

9.

band

Создает ленточную матрицу

52

7.2. Функции основных команд linalg

 

 

Продолжение табл. 2

 

 

 

Команды

Описание

п/п

 

 

10.

basis

Находит базис для векторного пространства

11.

bezout

Создает Bezout-матрицу двух полиномов

12.

blockmatrix

Создает блок-матрицу

13.

charmat

Создает характеристическую матрицу

14.

charpoly

Находит характеристический полином ма-

 

 

трицы

 

 

 

15.

col

Извлекает столбцы матрицы как векторы

16.

coldim

Определяет размерность столбца матрицы

17.

colspace

Вычисляет базис пространства столбцов

18.

colspan

Находит базис столбцов матрицы

19.

companion

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

20.

cond

Находит условные числа матрицы

21.

copyinto

Перемещает элементы из одной матрицы

 

 

в другую

 

 

 

22.

crossprod

Находит векторное произведение

23.

сurl

Вычисляет ротор вектора

24.

definite

Проводит тест на положительно (отрицатель-

 

 

но) определенные матрицы

 

 

 

25.

delcols

Удаляет столбцы матрицы

26.

delrows

Удаляет строки матрицы

27.

det

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

28.

diag

Создает блок-диагональную матрицу

29.

diverge

Находит дивергенцию векторной функции

30.

dotprod

Вычисляет скалярное произведение векто-

 

 

ров

 

 

 

53

7. Обращение к пакетам линейной алгебры

 

 

Продолжение табл. 2

 

 

 

Команды

Описание

п/п

 

 

31.

eigenvals

Находит собственные числа матрицы

32.

eigenvectors

Вычисляет собственные векторы матрицы

33.

eigenvects

Вычисляет собственные векторы матрицы

34.

entermatrix

Обеспечивает интерактивный ввод матрицы

35.

equal

Проверяет, являются ли матрицы равными

36.

exponential

Создает экспоненциальную матрицу

37.

extend

Создает расширенную матрицу

38.

ffgausselim

Преобразует матрицу к верхнетреугольному

 

 

виду

 

 

 

39.

fibonacci

Матрица Фибоначчи

 

 

 

40.

forwardsub

Прямая подстановка в матрицу

41.

frobenius

Находит форму frobenius матрицы

42.

gausselim

Преобразует матрицу к верхнетреугольному

 

(gaussjord)

виду

 

 

 

 

 

43.

geneqns

Создает уравнение по коэффициентам матри-

 

 

цы

 

 

 

44.

genmatrix

Записывает матрицу коэффициентов уравне-

 

 

ний

 

 

 

45.

grad

Функция вычисления градиента

46.

hadamard

Вычисляет ограничение на коэффициенты

 

 

детерминанта

 

 

 

47.

hermite

Эрмитова нормальная форма матрицы

48.

hessian

Вычисление Гессиана функции

49.

hilbert

Создает матрицу Гильберта

50.

htranspose

Вычисляет Эрмитову транспонированную

 

 

матрицу

 

 

 

54

7.2. Функции основных команд linalg

 

 

Продолжение табл. 2

 

 

 

Команды

Описание

п/п

 

 

51.

ihermite

Находит целочисленную Эрмитову нормаль-

 

 

ную форму

 

 

 

52.

indexfunc

Определяет функцию индексации массива

53.

innerprod

Вычисляет обобщенное скалярное произве-

 

 

дение

 

 

 

54.

intbasis

Определяет базис для пересечения простран-

 

 

ства

 

 

 

55.

inverse

Вычисляет обратную матрицу

56.

ismith

Создает целочисленную нормальную форму

 

 

Шмидта

 

 

 

57.

issimilar

Проверяет подобие матриц

58.

iszero

Проверяет, является ли матрица ноль-

 

 

матрицей

 

 

 

59.

jacobian

Вычисляет якобиан векторной функции

60.

jordan

Вычисляет Жорданову форму матрицы

61.

kernel

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

62.

laplacian

Вычисляет Лапласиан

63.

leastsqrs

Решение уравнений по методу наименьших

 

 

квадратов

 

 

 

64.

linsolve

Решение линейных уравнений

65.

matadd

Сложение матриц и векторов

66.

matrix

Создает матрицу

67.

minor

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

68.

mulcol

Умножает столбец матрицы на заданное вы-

 

 

ражение

 

 

 

69.

mulrow

Умножает строку матрицы на заданное вы-

 

 

ражение

 

 

 

55

7. Обращение к пакетам линейной алгебры

 

 

 

Продолжение табл. 2

Команды

 

Описание

 

п/п

 

 

 

 

 

 

70.

multiply

Умножает матрицы

 

71.

norm

Вычисляет норму матрицы или вектора

72.

normalize

Нормализация вектора

 

73.

orthog

Проверка ортогональности матрицы

74.

permanent

Вычисляет

постоянную

матрицы

 

 

(permanent)

 

 

 

 

 

75.

pivot

Обеспечивает вращение относительно эле-

 

 

ментов матрицы

 

 

 

 

76.

potential

Вычисляет потенциал векторного поля

77.

randmatrix

Создает случайные матрицы

 

78.

randvector

Создает случайные векторы

 

79.

rank

Возвращает ранг матрицы

 

80.

ratform

Вычисляет

рациональную

каноническую

 

 

форму

 

 

 

 

 

81.

references

Выводит список основных работ по линейной

 

 

алгебре

 

 

 

 

 

82.

row

Извлекает строку матрицы как вектор

83.

rowdim

Определяет размерность строки матрицы

84.

rowspace

Вычисляет базис пространства строки

85.

rowspan

Вычисляет базис для строк матрицы

86.

rref

Сокращенная форма эшелона строки

87.

scalarmul

Умножение матрицы (вектора) на заданное

 

 

выражение

 

 

 

 

 

88.

singularvals

Вычисляет сингулярные значения матрицы

89.

smith

Вычисляет

Шмидтову нормальную форму

 

 

матрицы

 

 

 

 

 

 

 

56

7.3. Обращение к пакету LinearAlgebra

 

 

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

 

 

 

Команды

Описание

п/п

 

 

90.

stackmatrix

Объединяет две матрицы и более вертикаль-

 

 

но

 

 

 

91.

submatrix

Извлекает указанную подматрицу из матри-

 

 

цы

 

 

 

92.

subvector

Извлекает указанный вектор из матрицы

93.

sumbasis

Определяет базис для суммы векторных про-

 

 

странств

 

 

 

94.

swapcol

Меняет два столбца в матрице

95.

swaprow

Меняет две строки в матрице

96.

sylvester

Создает матрицу Сильвестра из двух полино-

 

 

мов

 

 

 

97.

toeplitz

Создает симметричную матрицу, соответ-

 

 

ствующую списку

 

 

 

98.

trace

Возвращает след матрицы

99.

transpose

Вычисляет транспонированную матрицу

100.

vandermonde

Создает матрицу Вандервуда

101.

vecpotent

Вычисляет векторный потенциал

102.

vectdim

Определяет размерность вектора

103.

vector

Создает вектор

104.

wronskian

Создает матрицу Вронскиана векторной

 

 

функции

 

 

 

7.3. Обращение к пакету LinearAlgebra

Расширенный пакет линейной алгебры, базирующийся на матричных данных и реализуемый, начиная с версии Maple 6, вызывается командой подключения пакета

> with(LinearAlgebra);

Она возвращает список идентификаторов функций этого пакета, большинство из которых дублируют функции команд преды-

57

7. Обращение к пакетам линейной алгебры

дущего пакета, хотя имеют несколько отличные имена. При этом идентификаторы этих команд поясняют их назначение.

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

1.Основная структура пакета linalg.

2.Для решения каких задач предназначена функция linsolve?

3.Перечислите основные команды пакета linearalgebra.

4.Назовите команду, вычисляющую обратную матрицу.

5.Какую задачу решает функция rank?

6.Какая команда определяет собственные числа матрицы?

7.Назовите функцию, проверяющую ортогональность матрицы?

58

8. Технологии решения задач линейной алгебры в среде

Maple V

8.1. Решение систем линейных уравнений

Для системы линейных уравнений вида A·x=b, используя спе-

циальные команды linsolve(A, b) или Linearsolve(A, b, Opc), вхо-

дящие в пакет линейной алгебры linalg или – пакет Linearalgebra, построим решение и оценим степень его удовлетворения системе, вычислив невязку ∆= |A·x-b|.

Необходимо отметить, что команда Linearsolve, реализуемая начиная с версии Maple 6, в отличие от linsolve позволяет конкретизировать метод решения заданием соответствующих опций Opc.

Примеры решения линейных систем

Ниже приведены характерные схемы реализации задания, записанные на языке программирования Maple. Следует учитывать, что при использовании символа «;» в качестве разделителя операторов Maple, выводятся на печать возвращаемые значения сразу после команды. Если же используется разделитель «:», то возвращаемые значения не визуализируются:

Задаем матрицу 3х3 и вектор

>with(linalg): A:=array(1..3,1..3,[[2.8,3.8,-

3.2],[2.5,-2.8, 3.3],[6.5,-7.1,4.8]]): b:=array(1..3,[4.5,7.1,6.3]):

ирешаем систему

>rez:=linsolve(A,b);

rez = [1.590548028, 2.834902787, 3.351926584

Для версий, начиная с Maple 6 и выше, вызываем расширенный пакет

> with(LinearAlgebra):

задаем матрицу G, вектор f и решаем систему:

59

8.Технологии решения задач линейной алгебры в среде Maple V

>G:=<<2.0,1.4,1.2>|<1.2,3.0,-1.4>|<- 1.1,2.2,4.0>>:f:=<-3,6,4>: x:=LinearSolve(G,f);

–1.25412541254125398

1.25412541254125398

1.81518151815181517

Вычисляем невязку ∆, проверяя решение:

> Delta:=Multiply(G,x)-f;

0. := 0.

0.

Исходно можно задать расширенную матрицу и получить решение:

> M:=<<1,1,1,4>|<1,1,-2,1>|<3,1,1,8>|<-1,1,-1,- 1>|<0,1,1,0>>:

res:=LinearSolve(M): evalf(res);

4.166666667

1.333333333

–2.500000000

2

Можно и так: задаем матрицу S, вектор t и решаем систему

> S:= Matrix([[5,0,0],[0,2,-1],[0,0,3]]): t:= Vector([15,12,18], datatype=float): LinearSolve(S, t, method=’LU’);

3.

6.

9.

Матрица и вектор системы может быть задан функциями, например:

60

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