Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
mathcad_book.pdf
Скачиваний:
52
Добавлен:
23.02.2015
Размер:
3.8 Mб
Скачать

Вид окна «Матрицы» (Insert matrix).

Закрыть окно

Окошко

ввода

числа

строк

Окошко

ввода

числа

столбцов

Кнопка сброса

Кнопка вывода шаблона матрицы, или результата изменения числа строк и/или столбцов на экран

Кнопка вставки (Jnsert) и удаления (Delete) числа строк и/или столбцов указанного в окошках ввода

Рис. 2.1. Окно «Матрицы» и пояснения к нему.

Окно «Матрицы» (рис. 2.1) вызывается из меню Insert – Matrix или (это быстрее и лучше) клавишами <Ctrl>+<M> (можно набрать либо строчную m, либо прописную M, мнемоническая связь m – matrix).

§5. Осваиваем технику работы с матрицами и векторами

Будем изучать возможности матричной алгебры Mathcad на примерах.

5.1. Ввод матрицы и вектора

Наберите идентификатор матрицы. Традиция представления матриц в научной литературе предписывает использовать в качестве идентификаторов матриц прописные литеры (хотя не будет ошибки и при использовании строчных). Затем наберите знак присваивания (<двоеточие>, на экране выведется :=), после чего вызовите окно «Матрицы» (<Ctrl>+<M>). Экран будет выглядеть так, как показано на рис. 2.2:

Рис. 2.2. Подготовка к вводу матрицы. Число строк и столбцов указано по умолчанию.

27

Мы видим, что имеется указание числа строк и столбцов (по умолчанию 3). Исправьте их для ввода нашего примера. Число строк (rows)

укажите равным 3, число столбцов (columns) –

 

 

 

 

 

 

 

 

равным 4 и нажмите OK. Между окошками ввода

 

 

 

 

 

 

 

 

 

 

 

 

A :=

 

 

 

 

 

 

 

лучше всего перемещаться клавишей <Tab> (мож-

 

 

 

 

 

 

 

 

 

 

 

 

 

но и мышью). На экран выведется шаблон мат-

 

 

 

 

 

 

 

 

рицы со слотами для ввода значений (рис. 2.3).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.3. Шаблон

 

Пользуясь клавишей <Tab> для перемеще-

 

ния между слотами, введите какие-либо числовые

 

 

матрицы.

 

 

данные, затем щелкните левой кнопкой мыши

 

 

 

 

 

 

 

 

2

4

 

5

6

 

где-либо вне шаблона (рис. 2.4).

A :=

5

7

 

8

9

 

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

 

вершен.

 

 

7

6.8

9.3

 

Аналогично вводятся частные случаи мат-

1

 

 

 

 

 

 

 

 

 

риц – векторы (для их ввода нужно указать число

Рис. 2.4. Матрица

столбцов = 1) и строки (для них нужно указать

число строк = 1).

введена.

Освоим теперь операцию ввода матриц в

 

форме функции значений их элементов. Сформируем, например, вектор с числом элементов, равным 2, как функцию от значений этих элементов. Наберите B(b1,b2):= и затем вызовите окно «Матрицы». Введите число строк (2) и столбцов (1), нажмите OK и в слоты введите параметры b1 и b2. Здесь 1 и 2 – НЕ индексы, а косметические обозначения (вводятся через косметическую точку). Результат ввода показан на рис. 2.5.

B(b1,b2):= b1b2

 

B(7,−0.6) =

7

 

 

0.6

 

 

 

 

 

Рис. 2.5. Матрица как функция значений ее элементов.

Если теперь Вы наберете идентификатор вектора и укажете в скобках числовые значения параметров, вектор получится с числовыми значениями (см. рис. 2.5).

Ввод матрицы в форме функции значений ее элементов завершен.

5.2. Обращение к элементам матриц.

По умолчанию элементы матриц нумеруются в Mathcad начиная с нулевого. При желании можно переопределить начальный индекс, но лучше этого не делать (из-за этого осложнится обращение ко многим встроенным функциям и работа с программами). После небольшой тренировки Вы привыкнете считать элементы с нуля (как американцы).

28

Пример: прочтем второй элемент третьей строки матрицы A. Для этого наберем, используя клавишу ввода индексов (открывающая квадратная скобка [ ): A[2,1 и увидим на экране результат (рис. 2.6). Для вывода какого-либо значения вектора номер столбца указывать не нужно. Выведите, например, значение вектора B(3,7) из второй строки (результат

– на рис. 2.6).

A :=

2

4

5

6

B b

1

,b

2)

:=

b1

5

7

8

9

(

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b2

 

 

1

7

6.8

9.3

 

 

 

 

 

7

 

 

 

 

 

 

B(7,−0.6) =

 

 

 

 

 

0.6

 

 

 

 

 

 

 

 

 

 

A2,1 = −7

 

 

B(7,−0.6)1 = −0.6

Рис. 2.6. Вывод элементов матриц на экран.

Изучение обращения к элементам матриц и векторов завершено.

Не забудьте записать результаты на диск!

5.3. Обращение к столбцу матрицы

Весьма полезной является операция формирования векторов из отдельных столбцов матрицы. С такой операцией мы встречаемся, например, когда вводим исходные данные из таблицы (из файла), а для обработки этих данных удобно пользоваться столбцами матрицы как отдельными векторами.

Освоим эту операцию при решении задачи.

ДАНО: имеется файл результатов наблюдения за процессом нагрева материала в печи, в котором указаны значения подачи топлива (первый столбец) и соответствующего ему значения температуры в печи (столбец 2). Имя файла 4.txt, распложен в папке Mathcad преподавателя. Скопируйте этот файл в свою папку, в которую Вы записываете текущие результаты работы с матрицами. Это избавит Вас от необходимости указывать длинный путь к файлу 4.txt, размещенному не в текущем каталоге. Рассмотрите из оболочки операционной системы структуру этого файла. Вы увидите 2 столбца символов, кодирующих результаты опыта (ASCII-коды, American

Standard Codes for Information Interchange, американские стандартные коды для обмена информацией между различными средами программирования и обработки данных, по-русски произносится «АСКИ-коды»).

29

ПОЛУЧИТЬ: в среде Mathcad представить на графике результаты наблюдений, записанные в файле 4.txt.

Последовательность действий для решения задачи:

Этап 1. Ввести таблицу результатов наблюдений из файла 4.txt

вматрицу в среде Mathcad.

Этап 2. Сформировать из полученной матрицы векторы, один из которых представляет собой запись результатов подачи топлива (пер-

вый столбец в файле, который после выполнения этапа 1 представлен в нулевом столбце матрицы), а второй – значения температуры (второй столбец в файле, который после вы-

полнения этапа 1 представлен в первом столбце матрицы).

Этап 3. Рассчитать число элементов в полученных векторах (это число позволит определить диапазон изменения индексов элементов массива, чтобы указать его на графиках).

Этап 4. Указать диапазон изменения индексов элементов массива по результатам выполнения этапа 3.

Этап 5. Вывести результаты на график.

Выполнение этапа 1 «Ввод файла данных, записанных в ASCII-

кодах, в среду Mathcad». Наберите какой-либо идентификатор матрицы (например, X), в которую будете вводить данные, и введите функцию чтения данных READPRN (имя функции нужно набирать ПРОПИСНЫМИ)

X : = READPRN(“4.txt”)

Этап 1 завершен.

Выполнение Этапа 2 «Формирование векторов из матрицы X».

Выборка векторов создается с помощью клавиш <Ctrl>+<^> («шляпка» над цифрой 6 на левой части клавиатуры). Введите идентификатор для значений топлива (например, Fuel), затем наберите знак присваивания, в образовавшийся слот введите идентификатор матрицы (X) и нажмите <Ctrl>+<^>. Образуется слот, в ко-

X := READPRN("4.txt" )

 

торый нужно вписать номер столбца

 

 

матрицы X (не забудьте – счет начи-

Fuel := X 0

Temperature := X

1

нается с нуля!). Аналогично обра-

Рис. 2.7. Формирование векторов из матрицы.

Этап 2 завершен.

зуйте вектор для значений температуры (Temperature). Должно получиться так, как показано на рис. 2.7.

Выполнение этапа 3 «Расчет числа элементов в векторах». Это можно сделать, используя функцию rows( ), которая возвращает число

30

X := READPRN("4.txt" )

Fuel := X 0 Temperature := X 1

n := rows(Fuel)

n = 375

m := rows(Temperature)

m = 375

Рис. 2.8. Определение числа строк матрицы.

строк матрицы или вектора. Введите идентификаторы числа строк векто-

ров Fuel и Temperature и затем проверьте, одинаковы ли числа строк в обоих векторах. Если совпадения нет – имеется ошибка ввода. Должно получиться так, как показано на рис. 2.8.

Этап 3 завершен.

Выполнение этапов 4 и 5. Диапазон изменения индексов векторов

Fuel и Temperature – от 0 до значения, на единицу меньшего, чем число строк в этих векторах (так получается из-за нумерации с нуля). Вводим диапазон (напоминание: наберите идентификатор индексной переменной, например, s, затем знак присваивания «двоеточие», затем начальный номер индекса 0, затем знак диапазона «точка с запятой», затем номер последнего элемента). За-

тем вводим шаблон графика (лучше всего клавишами <Shift>+<@>), в слот абсциссы вводим идентификатор индексной переменной, а в слоты ординаты – значения векторов (напоминание: для ввода нового слота нужно охватить «старый» слот синим контуром и нажать клавишу «запятая»). Выве-

дется график. Приведите его к надлежащему виду: щелчком левой кнопки мыши по его полю вызовите окно форматирования графика, включите линии сетки, укажите «русское» расположение осей (crossed). Должно получиться так, как показано на рис. 2.9.

Рис. 2.9. Вывод графика, показывающего элементы векторов.

Этапы 4 и 5 завершены, решение задачи закончено.

31

5.4. Добавление и удаление столбцов и строк

Пусть, например, нужно удалить третий столбец матрицы A, в результате чего должна образоваться матрица размером 3×3. Установите синий указатель на третьем элементе первой строки матрицы A так, чтобы угол указателя был справа, вызовите окно «Матрицы» (<Ctrl>+<M>) и укажите число удаляемых строк (равно 0) и столбцов (равно 1). После этого нажмите клавишу Delete окна «Матрицы». Должно получиться так, как показано на рис. 2.10.

После нажатия кнопки ОК этот столбец будет удален

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

Рис. 2.10. Удаление строк и столбцов матрицы.

5.5. Вырезывание прямоугольных блоков из матрицы (декомпозиция матрицы)

Для многих операций матричной алгебры требуется вырезать из матрицы блоки. Чаще всего эти операции делаются для выделения блоков, все элементы которых равны 0. Такие блоки удобно хранить в памяти отдельно (просто указать размер блока, зная, что все элементы в нем – нулевые). Матрицы, в которых число нулей существенно больше, чем число значащих чисел, называются разреженными, и именно для них будет достигнуто сокращение объема памяти, если знать структуру расположения нулевых блоков.

Решим задачу. Пусть известно, что матрица размером n×n имеет структуру Якоби, т. е. такую, как показанная на рис. 2.11. Содержимое всех свободных клеток – нули.

Выделим характерные блоки, показанные на рис. 2.11-б.

1.Столбец, содержащий первые (n-1) строк матрицы – целиком

нулевой;

2.Нижняя строка матрицы – заполнена значащими числами;

3.Субматрица размером (n-1)×(n-1), размещенная выше этой строки и правее нулевого столбца – диагональная матрица с единицами в диагонали (т. е. единичная матрица).

32

а) б)

Рис. 2.11. Сильно разреженная матрица: а) матрица Якоби; б) характерные блоки матрицы

Представим себе, что в результате решения некоторой инженерной задачи получился ответ в виде матрицы со структурой Якоби, и нужно записать этот результат на диск для использования в дальнейшем. Присвойте элементам матрицы какие-либо значения, например, как показано на рис. 2.12. Удобнее всего ввести ее так: с помощью клавиши <Tab> очень быстро «нащелкать» нули для всех элементов, а затем исправить нужные на значащие числа. Размерность матрицы в примере 10×10. Учитывая особенности нумерации с нуля, введите максимальное значение индекса строк и столбцов (n := 9)

Легко увидеть (рис. 2.11-б и 2.12), что для последующей реконструкции такой матрицы достаточно хранить в памяти только нижнюю

 

строку. Остальные элементы можно

 

доопределить вычислениями.

 

Освоим функцию submatrix( ),

 

позволяющую вырезать

из матрицы

 

прямоугольный блок. В нашем при-

 

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

 

нужно вырезать строку, номера эле-

 

ментов которой – от первого до по-

 

следнего элемента последней строки

 

матрицы D (рис. 2.13). Аргументы

 

функции (их пять, перечисляются че-

 

рез запятую):

 

 

 

идентификатор матрицы, из

 

которой

производится

извлечение

 

блока;

номера первой и последней

Рис. 2.12. Матрица Якоби

 

с числами.

строк матрицы, соответствующие из-

влекаемому блоку; 33

номера первого и последнего столбцов матрицы, соответствующие извлекаемому блоку.

Максимальное значение строк и столбцов (нумерация – с нуля!)

Идентификатор матрицы, из которой извлекаются блоки

Результаты извлечения блоков

Начальный и конечный номера столбцов матрицы, соответствующие извлекаемому блоку

Начальный и конечный номера строк матрицы, соответствующие извлекаемому блоку

Рис. 2.13. Операции извлечения блоков матрицы.

Введите соответствующие функции и рассмотрите, правильно ли получилось извлечение (наберите идентификатор блока и знак равенства).

Декомпозиция матрицы на блоки завершена.

34

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