Главная » Просмотр файлов » Гурский Д., Турбина Е. - Вычисления в MathCad 12

Гурский Д., Турбина Е. - Вычисления в MathCad 12 (1077322), страница 30

Файл №1077322 Гурский Д., Турбина Е. - Вычисления в MathCad 12 (Гурский Д., Турбина Е. - Вычисления в MathCad 12) 30 страницаГурский Д., Турбина Е. - Вычисления в MathCad 12 (1077322) страница 302018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 30)

Поэтому в этой1 2 2 • Глава 3. Матричные вычисленияглаве матричные функции рассматриваются не по отдельности, а функциональнымигруппами.3.3.1. Задание матриц специального видаСуществует целый ряд матриц так называемого специального вида (верхние и нижниетреугольные, единичные, трапециевидные, скалярные, нулевые и некоторые другие).В Mathcad имеются функции, которые позволяют быстро и просто задавать матрицыспециального вида.• identity(N). Эта функция служит для задания единичной матрицы размерности N.Пример 3.30.

Создание единичной матрицы(\ О (Лidentity(3) = О 1 Оv0 0 1,• diag(V). Функция создает диагональную матрицу, элементы главной диагонали которой равны соответствующим элементам вектора V.3.3.2. Функции определения размерности матрицы•Функции rows(M) и cols(M). Служат для определения количества строк и соответственно столбцов некоторой матрицы М.Пример 3.31. Определение размерности матрицыМ:=rows(M) = 22 3 46 7 6cols(M) = 3• length(V). Функция определяет количество элементов вектора.• last(V). Функция служит для определения индекса последнего элемента некотороговектора V. По умолчанию last(V)=length(V)-l.

Эти две функции очень важны прирешении задач программными методами, поэтому мы с ними еще не раз встретимся.Пример 3.32. Определение размерности вектора' 2 Ъ\V:=length (V) = 3М:=last(4 5=23.3.3. Функции сортировки матрицПри решении очень многих задач возникает необходимость отсортировать полученные векторы или матрицы исходя из величины их элементов или по какому-то дру-3.3. Использование матричных функций.> 1 2 3гому принципу. При решении большинства сложных задач с помощью программирования, как правило, приходится использовать функции сортировки.

Поэтому их значение очень велико и функции эти нужно постараться запомнить.• sort(V). Сортировка элементов вектора по возрастанию. Одна из наиболее важныхи часто используемых на практике матричных функций. Может быть использованаи в том случае, если часть элементов вектора определена комплексными числами.При этом сортировка проводится исходя из действительной части числа, а мнимаячасть просто игнорируется.Пример 3.33. Сортировка элементов вектора' -31-3V:=5-8-i•1sort(V) =45-8iycsort(M,i). Функция выполняет сортировку по возрастанию элементов i-ro столбцанекоторой матрицы М.Пример 3.34. Сортировка выбранного столбца квадратной матрицыUМ:=1Ч5Л03(2 -41 2csort(M,l)=2 -41 2)103\А51Также очень просто можно отсортировать все столбцы матриц.

Для этого следуетзадать цикл с помощью ранжированных переменных. Обратите внимание на использование функции Last(V) в этом примере.Пример 3.35. Сортировка столбцов матрицы/4М:=51 ОV2i:=0..1ast(M)-41(\ -41Ml:=sortMl =05• rsort(M,i). Функция сортирует в порядке возрастания элементы i-й строки матрицыМ за счет перестановки соответствующих столбцов. В своем роде абсолютно идентична функции csort(M,i).Пример 3.36.

Сортировка выбранной строки матрицыМ:=5Г03(\4rsort(M ,0) = 3 15 ^0,2 2 -4\;Если необходимо отсортировать все строки матрицы, то проще всего действоватьисходя из следующего алгоритма.411 2 4 • Глава 3. Матричные вычисленияПример 3.37. Сортировка строк матрицыТранспонируем исходную матрицу:5ОМ:=VМ:=М2 -41 2 ,Задаем с помощью ранжированной переменой цикл.

Задействовав функцию sort( V), поочередносортируем все столбцы транспонированной матрицы:i := 0.. last'Ml:=sortТранспонируем полученную матрицу (при этом отсортированные столбцы становятся строками)и получаем необходимый результат:4 5М1:=МГМ1 =1 3-41 2 2Если же попытаться отсортировать матрицу, задав цикл непосредственно для функции rsort(M,i), то в результате получится вложенный массив, содержащий в качестве элементов матрицы, у которых отсортировано только по одной строке. Конечно, проблему эту обойти можно — но решение при этом очень усложнится. Так чтов таких случаях лучше создавать алгоритмы, подобные вышеописанному.•reverse(V). Эта функция переставляет элементы вектора в обратном порядке.

Используется, как правило, в том случае, если элементы отсортированного вектораили матрицы должны располагаться по принципу «чем ниже — тем меньше». Использование же reverse(V) в данном случае необходимо, поскольку функции сортировки расставляют их в противоположном порядке.В основе работы функций sort(V), csort(M,i) и rsort(M,i) лежит алгоритм так называемойпирамидальной сортировки.

Суть его заключается в представлении массива в виде бинарного сортирующего дерева — пирамиды (рис. 3.6).a. ) ( a ,Рис. 3.6. Бинарное дерево последовательности, состоящей из 15 элементов3.3. Использование матричных функций .;• 1 2 5Любое бинарное дерево содержит только один корневой узел, не имеющий предшественников. Другие же узлы имеют одного предшественника и одного или двух преемников.

Бинарное дерево будет являться пирамидой в том случае, если выполняетсяследующее условие: a>a 2i и a>a 2i+1 . Другими словами, каждый элемент пирамиды должен быть меньше своего предшественника, либо равняться ему. Тогда максимальныйэлемент массива будет помещен в корневой узел. Любой же фрагмент «хвостовой» части пирамиды также является пирамидой.Алгоритм пирамидальной сортировки требует порядка N-log2N операций (где N — размер массива) и включает в себя реализацию двух этапов: построение бинарной пирамиды и непосредственно сортировка ее элементов. Обсудим детально каждый их них.Начнем построение пирамиды с элементов а^.-.а^ поскольку часть массива при i>N/2удовлетворяет свойству пирамиды, так как его элементы не имеют преемников.

Будемнаращивать пирамиду, добавляя на каждом шаге по одному элементу, стоящему передуже готовой частью. Допустим, что построение пирамиды началось с элемента а8(см. рис. 3.6). В этом случае нам необходимо рассмотреть предшественника — элемента4 — и двух его преемников — элементы а8 и а9, из которых выбираем наибольший.

Еслиэтот преемник (предположим, а 8 ) оказывается больше своего предшественника а4, тоих меняют местами («просеивают» а4 к основанию пирамиды). Таким образом, элемента8 попадает на предыдущий уровень. Аналогичные операции проводятся с оставшимися элементами массива а,^ ,2...\. Далее переходим к следующему шагу — повторяем всевышеописанные действия с элементами на уровне, находящемся перед рассмотренным, а «опустившиеся» элементы «просеиваем» по веточке бинарного дерева к основанию до тех пор, пока весь массив не превратится в пирамиду (то есть пока не будетсоблюдаться условие а>а 2] и а^а^,).После того как пирамида построена, переходим к следующему этапу — непосредственной сортировке ее элементов.

Как вы помните, первый элемент, находящийся в корневом узле, — максимальный. Меняем его местами с последним элементом пирамидыа ^ ^ и больше не возвращаемся к нему. Затем «просеиваем» новый верхний элементи получаем пирамиду а,...^ ,, с которой повторяем ту же операцию до тех пор, пока размер массива не уменьшится до одного элемента.

Таким образом, на каждом шаге в конце массива оказывается максимальный элемент текущей пирамиды. В результате формируется упорядоченная последовательность элементов по возрастанию.3.3.4. Функции слияния и разбиения матрицВыделение части матрицыДля выбора из матрицы элемента с известными индексами в Mathcad существует специальная функция htookup(i,M,j), где i — номер строки, j — номер столбца, М — некоторая матрица.При решении многих задач возникает необходимость выделить в отдельные пары соответствующие элементы двух матриц.

Наиболее быстро и просто сделать это можнос помощью специальной функции lookup(r,M,N), где г — известный скаляр, М и N — соразмерные матрицы. Функция эта выводит значение того элемента матрицы N, которыйзанимает в ней такое же положение, как скаляр г в матрице М. При этом, если несколько элементов матрицы М равны г, то в качестве ответа выдается вектор с соответствующими всем им значениями элементов матрицы N.1 2 6 •:• Глава 3. Матричные вычисленияПример 3.38. Выделение элементов из матриц1 2 3М:=(\3 2 52 3'N:= 4 5 65 6 7Ч7 8 9,hlookup(3,M,l)=(5)lookup(2,M,N) =Очень часто на практике возникает задача, обратная рассмотренной: по известномуэлементу определить его положение в матрице. Так как иногда приходится работатьс очень большими матрицами, визуальный поиск нельзя считать универсальным.

Поэтому для выполнения такой задачи в Mathcad существует специальная функцияmatch(z,M), где z — скаляр, положение которого определяется, М — матрица, в которойведется поиск.Пример 3.39. Определение положения элемента матрицыМ:=1 2match(3,M) щ3 4Для выделения из матрицы произвольной подматрицы в Mathcad существует специальная функция submatrix(M,rl,r2,cl,c2), где М — некоторая матрица, rl и г2 — верхняяи нижняя граничные строки, cl и с2 — соответственно граничные столбцы извлекаемой подматрицы. С помощью этой функции, правильно определив границы, можновыделить отдельные строки или столбцы матрицы.Пример 3.40.

Использование функции submatrix'2 3М:=6 7 8б 7 А)Ml :=submatrix(M, 0,1,0,1)Ml =2 36 7Выделение отдельного столбца или строки:Col := submatrix(M ,0,2,1,1)Col=Row: = submatrix(M ,0,0,0,2)Row = ( 2 3 4)Функции слияния матрицИногда при решении задач возникают проблемы, требующие слияния нескольких векторов или матриц. На практике функции слияния матриц используются очень часто,поэтому их нужно постараться запомнить.3.3. Использование матричных функций • 1 2 7•augment(A,B,...), где А, В — некоторые матрицы.

Функция эта служит для слиянияматриц слева направо. Естественно, соединяемые матрицы должны иметь одинаковое количество строк.•stack(A,B,.. •)• Функция отвечает за слияние матриц сверху вниз. В случае ее использования матрицы должны иметь равное число столбцов.Пример 3.41. Слияние матрицА:=N:=1augment (A, N) =1 1222 221 1stack (А, N) =2 2Ч2 2У3.3.5. Функции вычисления матричных нормОдной из важнейших характеристик матрицы является ее норма.

Характеристики

Тип файла
PDF-файл
Размер
47,8 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6381
Авторов
на СтудИзбе
308
Средний доход
с одного платного файла
Обучение Подробнее