рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

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

Основы алгоритмизации при построении и реализации моделей - раздел Компьютеры, Гартман Т. Н., Клушин Д. В. Основы компьютерного моделирования химико-технологических процессов Алгоритм – Совокупность Четко Определенных Правил С Указанием Того, Как Эти П...

Алгоритм – совокупность четко определенных правил с указанием того, как эти правила применять к первичным данным задачи, чтобы получить ее решение. Известны следующие способы описания алгоритмов:

Словесный;

Словесно-формульный;

Операторный;

Графический (блок-схемный).

Блок-схемы выполняются в соответствии с ГОСТами.

 

Название Функции Изображение
Арифметический блок Выполнение действий по формулам  
Логический блок Выбор между условиями    
Блок ввода-вывода Ввод и вывод информации  
Соединитель блоков    
Блок модификации (цикла) Определяет начало цикла    
Подпрограмма Определяет использование заранее созданных и описанных отдельно алгоритмов
Начало/конец Начало и конец блок-схемы  

Типы алгоритмов: линейные, разветвленные, циклические.

Привести примеры алгоритмов, способы соединения блоков, примеры и задачи из экзам билетов.

 

Основные этапы разработки моделирующих программ для ЭВМ.

Различают 2 этапа при разработке моделирующих программ для ЭВМ:

1) Этап системного анализа. Здесь необходимо точно установить, что надо делать, продумать соответствующий алгоритм, определить структуры данных (), объекты и связи между ними. Данный этап включает в себя:

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

декомпозицию – деление на блоки (модули), которые обладают относительной самостоятельностью и могут рассматриваться как отдельные элементы. Глубина декомпозиции определяется исследователем.

2) Этап кодирования. Выражение созданного алгоритма в виде, понятном ЭВМ.

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

 


Тема 4. Базовые приемы работы в программе Mathcad

Назначение Mathсad.

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

Mathcad позволяет:

- выполнять простейшие расчеты по формулам;

- решать нелинейные уравнения и системы;

- решать задачи линейной алгебры;

- обрабатывать экспериментальные данные;

- дифференцировать и интегрировать;

- решать задачи оптимизации;

- решать задачи математической статистики и теории вероятности;

- решать обыкновенные диф уравнения и системы;

- решать диф уравнения в частных производных;

- создавать и редактировать различные графики.

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

Графический интерфейс Mathcad и его элементы.

Помимо элементов управления, характерных для типичного текстового редактора, Mathcad снабжен дополнительными средствами для ввода и редактирования математических символов, одним из которых является панель инструментов Math (Математика) (рис. 1).

Рис. 1. Панель инструментов Math.

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

Панели: калькулятор, графики, матрицы, вычисления, исчисления (дифференциальные, интегральные), логическое выражения, программирования, греческий алфавит, символьные вычисления.

В Mathcad интерфейс пользователя интуитивен и сходен с другими приложениями Windows.

Ввод и редактирование формул.

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

Элементы интерфейса редактора Mathcad (рис. 2):

указатель мыши (mouse pointer) – играет обычную для приложений Windows роль, следуя за движениями мыши;

курсор – обязательно находится внутри документа в одном из трех видов:

курсор ввода (crosshair) – крестик красного цвета, который отмечает пустое место в документе, куда можно вводить текст или формулу;

линии ввода (editing lines) – горизонтальная (underline) и вертикальная (insertion line) линии синего цвета, выделяющие в тексте или формуле определенную часть;

линия ввода текста (text insertion point) – вертикальная линия, аналог линий ввода для текстовых областей.

местозаполнители (placeholders) – появляются внутри незавершенных формул в местах, которые должны быть заполнены символом или оператором: местозаполнитель символа – черный прямоугольник; местозаполнитель оператора – черная прямоугольная рамка.

 

Рис. 2. Элементы интерфейса редактора Mathcad.

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

Перемещение линий ввода внутри формул.

Чтобы изменить формулу, щелкните на ней мышью, поместив таким образом в ее область линии ввода, и перейдите к месту, которое хотите исправить. Перемещайте линии ввода в пределах формулы одним из двух способов: щелкая в нужном месте мышью; нажимая на клавиатуре клавиши – со стрелками, пробел и <Ins>: клавиши со стрелками имеют естественное назначение, переводя линии ввода вверх, вниз, влево или вправо; клавиша <Ins> переводит вертикальную линию ввода с одного конца горизонтальной линии ввода на противоположный; пробел предназначен для выделения различных частей формулы.

Если раз за разом нажимать клавишу пробела в формуле, то линии ввода будут циклически изменять свое положение, как это показано на рис. 3. Если в ситуации, показанной сверху на этом рисунке, нажать стрелку ¬, то линии ввода переместятся влево (рис. 4). При нажатии пробела теперь линии ввода будут попеременно выделять одну из двух частей формулы.

Рис. 3. Изменение положения линий ввода с помощью пробела.

Рис. 4. Изменение положения линий ввода пробелом после сдвига стрелкой ¬.

Изменение формул. Последовательность вставки оператора в формулу.

Поместите линии ввода на часть формулы, которая должна стать первым операндом. Введите оператор, нажав кнопку на панели инструментов или сочетание клавиш. Для того чтобы вставить оператор не после, а перед частью формулы, выделенной линиями ввода, нажмите перед его вводом клавишу <lns>, которая передвинет вертикальную линию ввода вперед. Это важно, в частности, для вставки оператора отрицания.

На рис. 5 показано несколько примеров вставки оператора сложения в разные части формулы. В левой колонке рис. 5 приведены возможные размещения линий ввода в формуле, а в правой – результат вставки оператора сложения. Как видно, Mathcad сам расставляет, если это необходимо, скобки, чтобы часть формулы, отмеченная линиями ввода, стала первым слагаемым.

Рис. 5. Вставка оператора в разные части формулы.

Ввод символов, операторов и функций.

Для вставки символов в документы доступны следующие инструменты:

большинство символов, например латинские буквы или цифры, для определения имен переменных и функций набираются на клавиатуре;

греческие буквы легче всего вставляются с помощью панели инструментов Greek (Греческие символы). Можно также ввести соответствующую латинскую букву и нажать клавиши <Ctrl>+<G>;

операторы могут быть вставлены либо с различных математических панелей инструментов, либо соответствующим сочетанием клавиш. Например, наиболее часто употребляемые операторы сгруппированы на панели Calculator (Калькулятор);

имена функций вводятся либо с клавиатуры, либо, с большей надежностью, с помощью команды Insert/ Function (Вставка/ Функция).

Скобки могут быть вставлены нажатием соответствующих клавиш.

Ввод и редактирование текста.

Текстовую область (регион с текстом – text region) можно разместить в любом незанятом месте документа Mathcad. Однако, когда пользователь помещает курсор ввода в пустое место документа и просто начинает вводить символы, Mathcad по умолчанию интерпретирует их как начало формулы. Чтобы до начала ввода указать программе, что требуется создать не формульный, а текстовый регион, достаточно, перед тем как ввести первый символ, нажать клавишу ". В результате на месте курсора ввода появляется новый текстовый регион, который имеет характерное выделение (рис. 6). Курсор принимает при этом вид вертикальной линии красного цвета, которая называется линией ввода текста и аналогична по назначению линиям ввода в формулах.

Рис. 6. Вновь созданный текстовый регион.

Создать текстовый регион можно и эквивалентным способом, с помощью команды Insert / Text Region (Вставка / Текстовая область).

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

Переменные и функции.

В Mathcad переменные, операторы и функции реализованы в интуитивной форме, т. е. выражения в редакторе вводятся и вычисляются так, как они были бы написаны на листе бумаги. Порядок вычислений в документе Mathcad также очевиден: математические выражения и действия воспринимаются процессором слева направо и сверху вниз.

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

Чтобы определить переменную, достаточно ввести ее имя и присвоить ей некоторое значение, для чего служит оператор присваивания. Чтобы присвоить переменной новое значение, например переменную х сделать равной 10:

Введите в желаемом месте документа имя переменной, например х.

Введите оператор присваивания с помощью клавиши <:> (Shift+Ж) или нажатием соответствующей кнопки Definition (Присваивание) на панели инструментов Calculator или Evaluation (Выражения), как показано на рис. 8.

Введите в появившийся местозаполнитель новое значение переменной (10).

Рис. 8. Результат ввода оператора присваивания.

Ввести новое значение переменной возможно как в виде числа, так и в виде математического выражения, содержащего другие переменные (рис. 9) и функции, а также в виде строкового выражения (рис. 10). В последнем случае будет создана переменная s не численного, а строкового типа.

Рис. 9. Присваивание переменной вычисленного значения выражения.

Рис. 10. Присваивание переменной строкового значения.

Помимо разобранного оператора присваивания (а он применяется наиболее часто), существует также возможность глобального присваивания.

Функции в Mathcad записываются в обычной для математика форме:

f (х, ...) – функция; f – имя функции; х, ... – список переменных.

Легче всего ввести написание функции в документ при помощи клавиатуры.

В Mathcad формально можно разделить функции на два типа: встроенные функции и функции, определенные пользователем.

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

Определение функции пользователя.

Для того чтобы определить функцию пользователя, например f(x,y)=x2-cos(x+y), необходимо:

Ввести в желаемом месте документа имя функции (f).

Ввести левую скобку "(", имена переменных через запятую х, у и правую скобку ")". При вводе левой скобки и запятой автоматически будут появляться соответствующие местозаполнители.

Ввести оператор присваивания с панели инструментов или нажатием клавиши : .

Ввести в появившийся местозаполнитель выражение, определяющее функцию x2-cos(x+y), пользуясь клавиатурой или панелями инструментов.

Результат ввода иллюстрируется рис. 11.

Рис. 11. Определение функции пользователя.

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

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

Введите это выражение, например ху. Нажмите клавишу =.

В результате справа от введенного знака равенства появится вычисленное значение выражения (листинг 12, предпоследняя строка).

Рис. 12. Вычисление выражения.

Заметьте, что, перед тем как вычислить значение математического выражения, Вы обязаны определить значение каждой входящей в него переменной.

Рис. 13. Вывод значения функции.

Допустимые имена переменных и функций.

Допустимые символы: большие и маленькие буквы – Mathcad различает регистр: так, имена х и Х определяют разные переменные. Кроме того, Mathcad различает и шрифт; числа от 0 до 9; символ бесконечности (клавиши <Ctrl>+<Shift>+<Z>); штрих (клавиши <Ctrl>+<F7>); греческие буквы – они вставляются с помощью панели Greek (Греческие символы); символ подчеркивания; символ процента.

Теперь рассмотрим ограничения на имена переменных и функций:

имя не может начинаться с цифры, символа подчеркивания, штриха или процента;

символ бесконечности должен быть только первым в имени;

все буквы в имени должны иметь один стиль и шрифт;

имена не могут совпадать с именами встроенных функций, констант и размерностей, например sin или TOL. Тем не менее, допускается их переопределение, но тогда одноименная встроенная функция больше не будет использоваться по первоначальному назначению;

Mathcad не различает имен переменных и функций: если сначала определить функцию f (х), а потом переменную f, то в оставшейся части документа будет утерян доступ к функции f (x).

Типы данных.

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

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

строки – любой текст, заключенный в кавычки;

массивы (в том числе ранжированные переменные, векторы и матрицы) – упорядоченные последовательности чисел или строк.

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

Массивами (arrays) называют упорядоченные последовательности чисел или элементов массива. Доступ к любому элементу массива возможен по его индексу, т. е. номеру в последовательности чисел (на рис. 14 а – это массив, аi – его элемент). Применение массивов чрезвычайно эффективно в математических расчетах.

Рис. 14. Одномерный массив (вектор).

В Mathcad условно выделяются два типа массивов:

векторы (одноиндексные массивы, рис. 14), матрицы (двухиндексные, рис. 15) и тензоры (многоиндексные);

ранжированные переменные (range variables) – векторы, элементы которых определенным образом зависят от их индекса.

Рис. 15. Двумерный массив (матрица).

Доступ ко всему массиву осуществляется по имени векторной переменной. Например, последовательность символов "а", "=" на рис. 14 и 15 приведет к выводу соответствующего вектора или матрицы. В Mathcad имеются и операторы, и встроенные функции, которые действуют на векторы и матрицы целиком, например, транспонирование, матричное умножение и т. д.

Над элементами массива можно совершать действия как над обычными числами. Нужно только правильно задать соответствующий индекс или сочетание индексов массива. Например, чтобы получить доступ к нулевому элементу вектора а из рис. 14:

Введите имя переменной массива (а).

Нажмите кнопку Subscript (Нижний индекс) со значком хn на панели Matrix (Матрица) либо введите [.

В появившийся справа снизу от имени массива местозаполнитель введите желаемый индекс (0).

Если после этого ввести знак численного вывода, то справа от него появится значение нулевого элемента вектора, как показано во второй строке рис. 14.

Чтобы получить доступ к элементу многоиндексного массива (например элементу а1,0 матрицы а из рис. 15):

Введите имя переменной массива (а).

Перейдите к вводу нижнего индекса, введя [.

Введите в местозаполнитель индекса первый индекс (1), запятую "," и в появившийся после запятой местозаполнитель введите второй индекс (0).

В результате будет получен доступ к элементу, как показано в предпоследней строке рис. 15.

Помимо доступа к отдельным элементам массива, имеется возможность совершать действия над его подмассивами (например векторами-столбцами, образующими матрицу). Делается это с помощью оператора со значком х<> на панели Matrix (Матрица).

Ранжированные переменные.

Ранжированные переменные в Mathcad являются разновидностью векторов и предназначены, главным образом, для создания циклов или итерационных вычислений. Простейший пример ранжированной переменной – это массив с числами, лежащими в некотором диапазоне с некоторым шагом.

Например, для создания ранжированной переменной s с элементами 0,1,2,3,4,5:

Поместите курсор ввода в нужное место документа.

Введите имя переменной (s) и оператор присваивания ":".

Нажмите кнопку Range Variable (Ранжированная переменная) на панели Matrix (Матрица), показанную на рис. 16, либо введите символ точки с запятой с клавиатуры.

В появившиеся местозаполнители (рис. 16) введите левую и правую границы диапазона изменения ранжированной переменной 0 и 5.

Рис. 16. Создание ранжированной переменной.

Результат создания ранжированной переменной показан на рис. 17.

Рис. 17. Вывод ранжированной переменной.

Чтобы создать ранжированную переменную с шагом, не равным 1, например, 0,2,4,6,8:

Создайте ранжированную переменную в диапазоне от 0 до 8 (см. рис. 16).

Поместите линии ввода на значение начала диапазона (0).

Введите запятую.

В появившийся местозаполнитель (рис. 18) введите значение шага изменения ранжированной переменной (2).

Созданная ранжированная переменная будет иметь значения от 0 до 8 включительно, с шагом, равным 2.

Рис. 18. Создание ранжированной переменной с шагом, не равным 1.

Чаще всего ранжированные переменные используются:

при параллельных вычислениях (рис. 19);

для присвоения значений элементам других массивов (рис. 20).

Обратите внимание на типичный пример использования ранжированной переменной из листингов 4.13 и 4.14. Большинство математических действий, реализованных в Mathcad, совершаются над ранжированными переменными точно так же, как над обычными числами. В этом случае одно и то же действие осуществляется параллельно над всеми элементами ранжированной переменной.

Рис. 19. Ранжированная переменная при параллельных вычислениях

Рис. 20. Использование ранжированной переменной для определения матрицы

Создание массивов.

Существует несколько способов создания массива:

– ввод всех элементов вручную с помощью команды Insert Matrix;

– определение отдельных элементов массива;

– создание таблицы данных и ввод в нее чисел;

– применение встроенных функций создания массива;

– создание связи с другим приложением, например Excel или MATLAB;

– чтение из внешнего файла данных;

– импорт из внешнего файла данных.

Создание матрицы командой Insert Matrix.

Самый простой и наглядный способ создания вектора или матрицы заключается в следующем:

Нажмите кнопку Matrix or Vector (Матрица или вектор) на панели Matrix (Матрица) либо клавиши <Ctrl>+<M>, либо выберите пункт меню Insert / Matrix (Вставка / Матрица).

В диалоговом окне Insert Matrix (Вставка матрицы) задайте целое число столбцов и строк матрицы, которую хотите создать. Нажмите кнопку ОК или Insert (Вставить) – в результате в документ будет вставлена заготовка матрицы с определенным числом строк и столбцов.

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

Добавление в уже созданную матрицу строк или столбцов производится точно так же:

Выделите линиями ввода элемент матрицы, правее и ниже которого будет осуществлена вставка столбцов и (или) строк.

Вставьте в него матрицу, как было описано выше. При этом допускается задание числа столбцов или строк равным нулю.

Заполните местозаполнители недостающих элементов матрицы.

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

Создание массива определением его отдельных элементов.

Массив можно определить следующим образом:

присваивая значения непосредственно отдельным элементам массива;

применяя ранжированные переменные.

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

Формат результата.

Управление представлением числа в десятичном представлении или представлении с порядком осуществляется при помощи следующих параметров:

– количество отображаемых десятичных знаков (decimal places) после точки. Например, число 122,5587 с четырьмя десятичными знаками при отображении с двумя знаками будет выглядеть как 122,56;

– отображение или скрытие незначащих нулей (trailing zeros) – опция, позволяющая показывать или скрывать незначащие нули в десятичном представлении числа, т. е. выводить, к примеру, "1,5" вместо "1,500" (даже если установлено количество десятичных знаков, равное 3);

– порядковый порог (exponential threshold), при превышении степени 10 которого число будет показываться с порядком. Например, при пороге 3 число 122,56 будет отображаться как десятичное, а при пороге 2 – уже как"1,23х102"; Количество десятичных знаков левого сомножителя числа с порядком контролируется в некоторых форматах первым из трех перечисленных параметров.

– кроме того, число с порядком может представляться в эквивалентных видах: "1,23х102" или с порядком в инженерном формате (engineering format): "1.23E+002".

В Mathcad имеется несколько типов форматов, в каждом из которых разрешается изменение различных параметров представления числа. Формат выбирается на вкладке Number Format (Формат числа) диалогового окна Result Format (Формат результата).

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

Простейшие операции матричной алгебры реализованы в Mathcad в виде операторов. Написание операторов по смыслу максимально приближено к их математическому действию. Каждый оператор выражается соответствующим символом.

Транспортирование.

Транспортированием называют операцию, переводящую матрицу размерности MxN в матрицу размерности NхM, делая столбцы исходной матрицы строками, а строки – столбцами. Пример приведен на рис. 23. Ввод символа транспонирования (transpose) осуществляется с помощью панели инструментов Matrix (Матрица) или нажатием клавиш <Ctrl>+<1>. He забывайте, что для вставки символа транспонирования матрица должна находиться между линиями ввода.

Рис. 23. Транспонирование векторов и матриц.

Сложение.

В Mathcad можно как складывать матрицы, так и вычитать их друг из друга. Для этих операторов применяются символы + или -, соответственно. Матрицы должны иметь одинаковую размерность, иначе будет выдано сообщение об ошибке. Каждый элемент суммы двух матриц равен сумме соответствующих элементов матриц-слагаемых.

Кроме сложения матриц, Mathcad поддерживает операцию сложения матрицы со скаляром. Каждый элемент результирующей матрицы равен сумме соответствующего элемента исходной матрицы и скалярной величины.

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

Умножение.

При умножении следует помнить, что матрицу размерности MхN допустимо умножать только на матрицу размерности NхP (Р может быть любым). В результате получается матрица размерности МхР.

Чтобы ввести символ умножения, нужно нажать клавишу со звездочкой * или воспользоваться панелью инструментов Matrix (Матрица), нажав на ней кнопку Dot Product (Умножение). Умножение матриц обозначается по умолчанию точкой. Символ умножения матриц можно выбирать точно так же, как и в скалярных выражениях.

Аналогично сложению матриц со скаляром определяется умножение и деление матрицы на скалярную величину. Символ умножение вводится так же, как и в случае умножения двух матриц. На скаляр можно умножать любую матрицу MхN.

Определитель квадратной матрицы.

Определитель (Determinant) матрицы обозначается стандартным математическим символом. Чтобы ввести оператор нахождения определителя матрицы можно нажать кнопку Determinant (Определитель) на панели инструментов Matrix (Матрица) или набрать на клавиатуре | (нажав клавиши <Shift>+<>). В результате любого из этих действий появляется местозаполнитель, в который следует поместить матрицу. Чтобы вычислить определитель уже введенной матрицы, нужно:

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

Ввести оператор нахождения определителя матрицы.

Ввести знак равенства, чтобы вычислить определитель.

Обратная матрица.

Поиск обратной матрицы возможен, если матрица квадратная и ее определитель не равен нулю. Произведение исходной матрицы на обратную по определению является единичной матрицей. Для ввода оператора поиска обратной матрицы нажмите кнопку Inverse (Обратная матрица) на панели инструментов Matrix (Матрица).

Рис. 24. Поиск обратной матрицы.

Матричные функции.

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

Функции создания матриц.

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

Определение элементов матрицы через функцию

matrix(M,N,f) – создание матрицы размера MхN, каждый i,j элемент которой есть f (i, j); м – количество строк; N – количество столбцов; f(i,j) – функция.

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

Создание матриц специального вида.

В Mathcad легко создать матрицы определенного вида с помощью одной из встроенных функций. Примеры использования этих функций приведены на рис. 25. identity (N) – единичная матрица размера NхN; diag(v) – диагональная матрица, на диагонали которой находятся элементы вектора v; geninv(A) – создание матрицы, обратной (слева) матрице А; rref (A) – преобразование матрицы или вектора А в ступенчатый вид; N – целое число; v – вектор; А – матрица из действительных чисел. Размер NхM матрицы А для функции geninv должен быть таким, чтобы N>M.

Рис. 25. Создание матриц специального вида.

Решение системы линейных алгебраических уравнений в матричной форме.

Центральным вопросом вычислительной линейной алгебры является решение систем линейных алгебраических уравнений (СЛАУ), т. е. систем уравнений вида

аi1х1i2х2+. . .+ainхn=bi, (1)

В матричной форме СЛАУ записывается в эквивалентном виде:

Ах = b, (2)

где А – матрица коэффициентов СЛАУ размерности NхN, х – вектор неизвестных, b– вектор правых частей уравнений.

СЛАУ имеет единственное решение, если матрица А является невырожденной, т. е. ее определитель не равен нулю. С вычислительной точки зрения, решение СЛАУ не представляет трудностей, если матрица А не очень велика. В Mathcad СЛАУ можно решить как в более наглядной форме (1), так и в более удобной для записи форме (2). Для первого способа следует использовать вычислительный блок Given/Find, а для второго – встроенную функцию lsolve.

lsolve ( А, b) – решение системы линейных уравнений;

А – матрица коэффициентов системы;

b – вектор правых частей.

Применение функции lsolve показано на рис. 26. При этом матрица А может быть определена любым из способов, необязательно явно, как во всех примерах этого раздела. Встроенную функцию lsolve допускается применять и при символьном решении СЛАУ.

Рис. 26. Решение СЛАУ

В некоторых случаях, для большей наглядности представления СЛАУ, его можно решить точно так же, как систему нелинейных уравнений. Пример численного решения СЛАУ показан на рис. 27. Не забывайте, что при численном решении всем неизвестным требуется присвоить начальные значения (это сделано в первой строке). Они могут быть произвольными, т. к. решение СЛАУ с невырожденной матрицей единственно.

При решении СЛАУ с помощью функции Find Mathcad автоматически выбирает линейный численный алгоритм, в чем можно убедиться, вызывая на имени Find контекстное меню.

Рис. 27. Решение СЛАУ с помощью вычислительного блока.

Задачи математического анализа в Mathcad.

Интегрирование.

Интегрирование в Mathcad реализовано в виде вычислительного оператора. Допускается вычислять интегралы от скалярных функций в пределах интегрирования, которые также должны быть скалярами. Несмотря на то что пределы интегрирования обязаны быть действительными, подынтегральная функция может иметь и комплексные значения, поэтому и значение интеграла может быть комплексным. Если пределы интегрирования имеют размерность, то она должна быть одной и той же для обоих пределов.

Операторы интегрирования.

Интегрирование, дифференцирование, как и множество других математических действий, устроено в Mathcad по принципу "как пишется, так и вводится". Чтобы вычислить определенный интеграл, следует напечатать его обычную математическую форму в документе. Делается это с помощью панели Calculus (Вычисления) нажатием кнопки со значком интеграла или вводом с клавиатуры сочетания клавиш <Shift>+<7> (или символа "&"). Появится символ интеграла с несколькими местозаполнителями (рис. 28), в которые нужно ввести нижний и верхний интервалы интегрирования, подынтегральную функцию и переменную интегрирования.

Можно вычислять интегралы с одним или обоими бесконечными пределами. Для этого на месте соответствующего предела введите символ бесконечности.

Рис. 28. Оператор интегрирования.

Чтобы получить результат интегрирования, следует ввести знак равенства или символьного равенства. В первом случае интегрирование будет проведено численным методом, во втором – в случае успеха, будет найдено точное значение интеграла с помощью символьного процессора Mathcad. Эти два способа иллюстрирует рис. 29. Конечно, символьное интегрирование возможно только для небольшого круга несложных подынтегральных функций.

Рис. 29. Численное и символьное вычисление определенного интеграла.

Оператор интегрирования может использоваться точно так же, как и другие операторы: для определения функций, в циклах и при вычислении ранжированных переменных. Пример присваивания пользовательской функции g(х) значения определенного интеграла и вычисления нескольких ее значений приведен на рис. 31.

Рис. 31. Использование оператора интегрирования в функции пользователя.

Дифференцирование.

С помощью Mathcad можно вычислять производные скалярных функций любого количества аргументов, от 0-го до 5-го порядка включительно. И функции, и аргументы могут быть как действительными, так и комплексными.

Первая производная.

Для того чтобы продифференцировать функцию f(х) в некоторой точке:

Определите точку х, в которой будет вычислена производная, например х:=1.

Введите оператор дифференцирования нажатием кнопки Derivative (Производная) на панели Calculus (Вычисления) или введите с клавиатуры вопросительный знак <?>.

В появившихся местозаполнителях (рис. 32) введите функцию, зависящую от аргумента х, т. е. f(х), и имя самого аргумента х.

Введите оператор = численного или ® символьного вывода для получения ответа.

Рис. 32. Оператор дифференцирования.

Пример дифференцирования функции f(x)=cos(x)ln(x) приведен на рис. 33.

Рис. 33. Численное и символьное дифференцирование.

 

Программирование в Mathcad.

Язык программирования Mathcad.

Для вставки программного кода в документы в Mathcad имеется специальная панель инструментов Programming (Программирование), которую можно вызвать на экран нажатием кнопки Programming Toolbar на панели Math (Математика), как показано на рис. 37. Большинство кнопок этой панели выполнено в виде текстового представления операторов программирования, поэтому их смысл легко понятен.

Рис. 37. Панель инструментов Programming.

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

Рис. 38. Функция условия.

Сравните определение функции f(х) из рис. 38 с определением f(х) с помощью программного модуля (рис. 39).

Рис. 39. Функция условия, определенная с помощью программы.

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

возможность применения циклов и условных операторов;

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

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

Как видно из рис. 39, программный модуль обозначается в Mathcad вертикальной чертой, справа от которой последовательно записываются операторы языка программирования.

Создание программы (Add Line).

Чтобы создать программный модуль:

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

При необходимости вызовите на экран панель инструментов Programming (Программирование).

Нажмите на этой панели кнопку Add Line (Добавить линию).

Если приблизительно известно, сколько строк кода будет содержать программа, можно создать нужное количество линий повторным нажатием кнопки Add Line (Добавить линию) соответствующее число раз.

В появившиеся местозаполнители введите желаемый программный код, используя программные операторы. В рассматриваемом примере в каждый местозаполнитель вводится строка, например, "positive" (рис. 41), затем нажимается кнопка If (Если) на панели Programming (Программирование) и в возникший местозаполнитель вводится выражение х>0 (рис. 42).

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

Не вводите с клавиатуры имена программных операторов. Для их вставки можно применять лишь сочетания клавиш, которые приведены в тексте всплывающей подсказки (рис. 40 и 41).

Рис. 40. Начало создания программного модуля.

Рис. 41. Вставка программного оператора.

Рис. 42. Вставка условия в программу.

 

Разработка программы.

Вставить строку программного кода в уже созданную программу можно в любой момент с помощью той же самой кнопки Add Line (Добавить линию). Для этого следует предварительно поместить на нужное место внутри программного модуля линии ввода. Например, расположение линии ввода на строке, показанной на рис. 43, приведет к появлению новой линии с местозаполнителем перед этой строкой. Если передвинуть вертикальную линию ввода из начала строки (как на рис. 43) в ее конец, то новая линия появится после строки. Если выделить строку не целиком, а лишь некоторую ее часть (рис. 44), то это повлияет на положение в программе новой строки кода (результат нажатия кнопки Add Line показан на рис. 45).

Рис. 43. Вставка новой строки в существующую программу.

Рис. 44. Положение линий ввода влияет на положение новой линии.

Рис. 45. Результат вставки новой линии в программу (из положения рис. 44).

Не забывайте, что для желаемого размещения линий ввода внутри формулы можно использовать не только мышь и клавиши со стрелками, но и пробел. С помощью последовательных нажатий пробела линии ввода "захватывают" разные части формулы.

В режиме выполнения программы, а это происходит при любой попытке вычислить f(х), выполняется последовательно каждая строка кода.

Локальное присваивание (¬).

Язык программирования Mathcad не был бы эффективным, если бы не позволял создавать внутри программных модулей локальные переменные, которые "не видны" извне, из других частей документа. Присваивание в пределах программ, в отличие от документов Mathcad, производится с помощью оператора Local Definition (Локальное присваивание), который вставляется нажатием кнопки с изображением стрелки ¬ на панели Programming (Программирование).

Ни оператор присваивания :=, ни оператор вывода = в пределах программ не применяются.

Локальное присваивание иллюстрируется рис. 46. Переменная z существует только внутри программы, выделенной вертикальной чертой. Из других мест документа получить ее значение невозможно.

Рис. 46. Локальное присваивание в программе.

Условные операторы (if, otherwise).

Действие условного оператора if состоит из двух частей. Сначала проверяется логическое выражение (условие) справа от него. Если оно истинно, выполняется выражение слева от оператора if. Если ложно – ничего не происходит, а выполнение программы продолжается переходом к ее следующей строке. Вставить условный оператор в программу можно следующим образом (см. рис. 47):

Если необходимо, введите левую часть выражения и оператор присваивания.

Создайте новую строку программного кода, нажав на панели Programming (Программирование) кнопку Add Line (Добавить строку).

Нажмите кнопку условного оператора if.

Справа от оператора if введите условие. Пользуйтесь логическими операторами, вводя их с панели Boolean (Булевы операторы).

Выражение, которое должно выполняться, если условие истинно, введите слева от оператора if.

Если в программе предусматриваются дополнительные условия, добавьте в программу еще одну строку нажатием кнопки Add Line и введите их таким же образом, используя оператор if или otherwise.

Оператор otherwise используется совместно с одним или несколькими условными операторами if и указывает на выражение, которое будет выполняться, если ни одно из условий не оказалось истинным.

Рис. 47. Вставка условного оператора.

Операторы цикла (for, while, break).

В языке программирования Mathcad имеются два оператора цикла: for и while. Первый из них дает возможность организовать цикл по некоторой переменной, заставляя ее пробегать некоторый диапазон значений. Второй создает цикл с выходом из него по некоторому логическому условию. Чтобы вставить в программный модуль оператор цикла:

Создайте в программном модуле новую линию.

Вставьте один из операторов цикла for или while нажатием одноименной кнопки на панели Programming (Программирование).

Если выбран оператор for, то вставьте в соответствующие местозаполнители имя переменной и диапазон ее значений (рис. 48 и 49), а если while – то логическое выражение, при нарушении которого должен осуществляться выход из цикла (рис. 50).

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

Диапазон значений переменной в условии цикла for можно задать как с помощью диапазона ранжированной переменной (рис. 48), так и с помощью вектора (рис. 49).

Рис. 48. Оператор цикла for с ранжированной переменной.

Рис. 49. Оператор цикла for с вектором.

Рис. 50. Оператор цикла while.

Иногда необходимо досрочно завершить цикл, т. е. не по условию в его заголовке, а в некоторой строке в теле цикла. Для этого предназначен оператор break. Модификации программ на рис. 48 и 50 с прерыванием цикла оператором break приведены на рис. 51 и 52, соответственно. Например на рис. 51, как только значение переменной цикла i достигает 2, цикл, благодаря оператору break в последней строке программного модуля, прерывается. Соответственно, значение переменной х остается равным 0+1+2=3.

Рис. 51. Оператор break внутри цикла for.

Рис. 52. Оператор break внутри цикла while.

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

Любое уравнение Р(х) = 0, где Р(х) - многочлен, отличный от нулевого, называется алгебраическим уравнением (полиномом) относительно переменной х. Всякое алгебраическое уравнение относительно х можно записать в виде:

а0хn + а1хn-1 + ... + аn-1х+ аn=0,

где а0¹0, n³1 и ai - коэффициенты алгебраического уравнения n-й степени. Например, линейное уравнение - это алгебраическое уравнение первой степени; квадратное - второй, кубическое - третьей и т.д.

Алгебраическое уравнение решается в Mathcad при помощи двух встроенных функций:

root (F (х), х) - возвращает с заданной точностью значение переменной х, при котором выражение F(x) равно нулю. Функция реализует вычисление итерационным методом, и перед ее применением необходимо задать начальное значение переменной х, принадлежащее интервалу изоляции корня;

polyroots (v) - возвращает вектор всех корней (как вещественных, так и комплексных) полинома n-й степени, коэффициенты которого хранятся в массиве v длиной n + 1.

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

Найти корни полинома 2х4-8х3+8х2-1=0.

Для решения этого уравнения обратимся к функции роlyroots (v). Массив коэффициентов, используемый в этой функции, определим как вектор-столбец из пяти элементов. Обратите внимание, что в уравнении отсутствует переменная х в первой степени. Это означает, что соответствующий коэффициент равен нулю.

Полностью решение задачи приведено на рис. 53.

Рис. 53. Вычисление корней полинома.

Найти решение уравнения у(х)=0, если у(х)=х53+1. Решим задачу при помощи функции root(F(x), x). Для этого необходимо выполнить следующие действия:

1. Ввести функцию у(х) в рабочий лист.

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

3. Присвоить переменной х значение одного из пределов интервала изоляции, задав тем самым начальное значение.

4. Записать функцию root(у(x), x) и вычислить корень уравнения.

Ход решения задачи представлен на рис. 54.

Рис. 54. Вычисление действительного корня полинома.

 

Построение графиков.

Для наглядного отображения информации часто приходится строить графики различных типов. В Mathcad можно создавать двумерные и трехмерные графики, а также гистограммы. Чтобы выполнить построение графика, необходимо указать его тип. Перечень основных типов графиков Mathcad можно увидеть, если обратиться к меню Insert / Graph (Вставить / График). Создать график можно и при помощи панели инструментов Graph.

Типы графиков: X-Y Plot – двумерный график в декартовой системе координат; Polar Plot – график в полярных координатах; Surface Plot – трехмерный график; Contour Plot – контурный график трехмерной поверхности; 3D Scatter Plot – график в виде точек в трехмерном пространстве; 3d Bar Plot – график в виде совокупности столбцов в трехмерном пространстве; Vector Field Plot – график векторного поля на плоскости; Plot Wizard – трехмерный график с заданными свойствами, созданный при помощи мастера.

Если задана табличная зависимость

х
у 66,7 71,0 76,3 80,6 85,7 92,9 99,4 113,6 125,1

то для построения графика достаточно задать векторы данных х и у, затем щелкнуть по кнопке X-Y Plot на панели инструментов Graph. В маленькие прямоугольники на осях шаблона ввести х и у и щелкнуть мышью вне графика. На рис. 55 изображен результат решения задачи.

Рис. 55. Построение графика функции, заданной в виде таблицы.

Для быстрого построения графиков можно использовать способ, когда в прямоугольных на оси ординат вводится не имя функции, а сама функция (рис. 56).

Рис. 56. Быстрое построения графика функции.

Если функция задана аналитически, например y=cos(x/2) + cos(5x)/5, то можно построить график с ранжированным аргументом. При этом аргумент х определяется как ранжированная переменная, задается функция у(х), вставляется шаблон для построения графика, вводится х по оси абсцисс и у(х) по оси ординат (рис. 57).

Рис. 57. Построение графика с ранжированным аргументом.

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

В Mathcad возможно форматирование графиков (подробнее об этом см. в рекомендуемой литературе).

 

– Конец работы –

Эта тема принадлежит разделу:

Гартман Т. Н., Клушин Д. В. Основы компьютерного моделирования химико-технологических процессов

На сайте allrefs.net читайте: 1. Гартман Т. Н., Клушин Д. В. Основы компьютерного моделирования химико-технологических процессов. – М.: ИКЦ «Академкнига», 2006. – 416 с....

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Основы алгоритмизации при построении и реализации моделей

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Мaтериaльные модели - уменьшенное (увеличенное) отрaжение оригинaлa с сохрaнением физической сущности (реaктор - пробиркa).
Мысленнaя модель - отобрaжение оригинaлa, отрaжaющее существенные черты и возникaющее в сознaнии человекa в процессе познaния. Обрaзные модели носят описaтельный хaрaктер. Знaковы

Решение линейных уравнений в MathCad
Решение уравнений с одним неизвестным Рассмотрим одно алгебраическое уравнение с одним неизвестным х. f(x)=0, (1) например, sin(x)=0. Для решения таких ур

Поиск экстремума функции средствами MathCad
Задачи поиска экстремума функции означают нахождение ее максимума (наибольшего значения) или минимума (наименьшего значения) в некоторой области определения ее аргументов. Ограничения значений аргу

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги