Компьютерное моделирование. Работа с пакетом matlab

Основные этапы компьютерного моделирования. Введение в программу matlab, основы работы с ней. Вещественные числа и тип данных double, Комплексные числа и функции, числовые массивы и вычисления с ними. Построение графиков функции и решение задач.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 23.12.2014
Размер файла 527,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Министерство образования Республики Беларусь

УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Факультет телекоммуникаций

РЕФЕРАТ

на тему: «КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ. РАБОТА С ПАКЕТОМ MATLAB»

Минск 2014

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

1. ЭТАПЫ КОМПЬЮТЕРНОГО МОДЕЛИРОВАНИЯ

2. ВВЕДЕНИЕ В ПРОГРАММУ МATLAB

3. ОСНОВЫ РАБОТЫ С MATLAB

3.1 ВЕЩЕСТВЕННЫЕ ЧИСЛА И ТИП ДАННЫХ DOUBLE

3.2 КОМПЛЕКСНЫЕ ЧИСЛА И КОМПЛЕКСНЫЕ ФУНКЦИИ

3.3 ЧИСЛОВЫЕ МАССИВЫ

3.4 ВЫЧИСЛЕНИЯ С МАССИВАМИ

3.5 ПОСТРОЕНИЕ ГРАФИКОВ ФУНКЦИИ

3.6 СЦЕНАРИИ И M-ФАЙЛЫ

4. РЕШЕНИЕ ЗАДАЧИ В СИСТЕМЕ MATLAB

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Введение

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

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

Данный реферат посвящен одной из программ компьютерного моделирования системе MATLAB.

MATLAB - система многоцелевого назначения, которая вышла на рынок программных продуктов почти двадцать лет назад и с тех пор непрерывно совершенствовалась. Но первоначально ее основу составляли алгоритмы решения систем линейных уравнений и задач на собственные значения, откуда и произошло ее название «матричная лаборатория». Теперь она представляется наиболее эффективной при проведении прикидочных расчетов и при разработке новых алгоритмов. Сейчас уже существует несколько десятков специальных приложений к MATLAB'у, посвященных более узким проблемам. Это обработка сигналов и изображений, инженерное программирование в виде блок-схем, решение экономических задач и многое другое. Но любое из этих приложений можно изучать только после первоначального освоения MATLAB'а.

1. Этапы компьютерного моделирования

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

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

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

1. Принцип информационной достаточности. При полном отсутствии информации об объекте построить модель невозможно. При наличии полной информации моделирование лишено смысла. Существует уровень информационной достаточности, при достижении которого может быть построена модель системы.

2. Принцип осуществимости. Создаваемая модель должна обеспечивать достижение поставленной цели исследования за конечное время.

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

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

5. Принцип параметризации. Некоторые подсистемы моделируемой системы могут быть охарактеризованы единственным параметром: вектором, матрицей, графиком, формулой.

2. Введение в программу МATLAB

В настоящее время широкое распространение получили интегрированные среды математических вычислений, позволяющие решать сложные математические задачи. Одной из наиболее распространенных систем этого типа является MATLAB. Разработка пакета была начата в 1972 году по инициативе известных американских специалистов в области вычислительной математики Дж. Форсайта и Дж. Уилкинсона. Первоначально MATLAB создавался как пакет программ, реализующих наиболее эффективные численные алгоритмы линейной алгебры. Наполнение пакета проходило также и в направлении расширения возможностей графического представления результатов вычислений, облегчения вывода результатов на печать и т.д. С появлением ПЭВМ и ОС типа Windows, разработчики MATLAB'а (фирма Mathworks) создала достаточно удобную среду.

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

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

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

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

Выше упоминалось о том, что в MATLAB имеется язык программирования. С его помощью можно создавать и реализовывать собственные алгоритмы, используя все доступные функции системы и все основные приёмы программирования, имеющиеся в других языках, такие как подпрограммы, циклы, ветвления, рекурсии и другие. Запись алгоритма на языке программирования МАТЛАБ сохраняется в файле в текстовом формате, либо в специальном внутреннем представлении.

MATLAB обладает развитой графикой. Графическая подсистема MATLAB является объектно-ориентированной. Графики выводятся на экран в отдельных окнах, причём как сами окна, так и составные части графиков (оси, разметка, надписи, линии) являются элементами иерархического дерева объектов.

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

Как графические объекты рассматриваются также такие элементы, как кнопки, текстовые надписи, поля ввода, полосы прокрутки и т. п. Свойства и методы этих объектов доступны пользователю, что даёт возможность создавать в MATLAB Windows-приложения. Для проектирования форм имеется редактор, вызываемый по команде GUIDE.

Вдобавок к развитым графическим средствам MATLAB в качестве одного из своих расширений предоставляет пользователю Virtual Reality Toolbox - пакет для разработки и отображения сцен виртуальной реальности, для которых доступны средства анимации. Это позволяет не только моделировать динамические процессы в Simulink (Simulink - расширение MATLAB, предназначенное для моделирования динамических процессов), но и, подключив потоки выходных данных к входам спроектированной пользователем виртуальной сцены, наблюдать на мониторе анимированную динамику процесса.

Современные версии MATLAB имеют развитые средства интеграции с другими языками программирования. Непосредственно из MATLAB -программы можно создавать и использовать объекты Java; для написания S-функций (системных функций MATLAB -Simulink) можно использовать языки высокого уровня C, C++, Ada, Fortran; кроме того функции системы MATLAB можно экспортировать в dll и вызывать из других программ. Также можно использовать вычислительные возможности системы, передавая запросы удалённому компьютеру по сети.

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

В MATLAB реализованы численные методы решения ряда вычислительных задач, таких как нахождение корней полиномов, решение задачи Коши для систем ОДУ, вычисление определённого интеграла, решение нелинейных уравнений.

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

3. ОСНОВЫ РАБОТЫ С MATLAB

Среда MATLAB включает интерпретатор команд на языке высокого уровня, графическую систему, пакеты расширений и реализована на языке C. Вся работа организуется через командное окно (Command Window), которое появляется при запуске программы matlab.exe. В процессе работы данные располагаются в памяти (Workspace), для изображения кривых, поверхностей и других графиков создаются графические окна.

В командном окне в режиме диалога проводятся вычисления. Пользователь вводит команды или запускает на выполнение файлы с текстами на языке MATLAB. Интерпретатор обрабатывает введенное и выдает результаты: числовые и строковые данные, предупреждения и сообщения об ошибках. Строка ввода помечена знаком >>. В командном окне показываются вводимые с клавиатуры числа, переменные, а также результаты вычислений. Имена переменных должны начинаться с буквы. Знак = соответствует операции присваивания. Нажатие клавиши Enter заставляет систему вычислить выражение и показать результат. Наберите с клавиатуры в строке ввода:

» a=2+51-37

Нажмите клавишу Enter, на экране в зоне просмотра появится результат вычисления:

a = 16

Все значения переменных, вычисленные в течение текущего сеанса работы, сохраняются в специально зарезервированной области памяти компьютера, называемой рабочим пространством системы MATLAB (Workspace). Командой clc можно стереть содержимое командного окна, однако это не затронет содержимого рабочего пространства. Когда исчезает необходимость в хранении ряда переменных в текущем сеансе работы, их можно стереть из памяти компьютера командой clear или clear(имя1, имя2, ). Первая команда удаляет из памяти все переменные, а вторая - переменные с именами имя1 и имя2. Командой who можно вывести список всех переменных, входящих в данный момент в рабочее пространство системы. Для просмотра значения любой переменной из текущего рабочего пространства системы достаточно набрать ее имя и нажать клавишу Enter.

После окончания сеанса работы с системой MATLAB все ранее вычисленные переменные теряются. Чтобы сохранить в файле на диске компьютера содержимое рабочего пространства системы MATLAB, нужно выполнить команду меню File / Save Workspace As По умолчанию расширение имени файла mat, поэтому такие файлы принято называть МАТ-файлами. Для загрузки в память компьютера ранее сохраненного на диске рабочего пространства нужно выполнить команду меню:

File / Load Workspace .

3.1 ВЕЩЕСТВЕННЫЕ ЧИСЛА И ТИП ДАННЫХ DOUBLE

Система MATLAB представляет на машинном уровне все действительные числа заданные мантиссой и показателем степени, например, 2.85093Е+11, где буквой Е обозначается основание степени равное 10. Этот основной тип данных носит название double. MATLAB по умолчанию использует формат short для вывода вещественных чисел, при котором показываются только четыре десятичных цифры после запятой.

Введите с клавиатуры пример:

» res=5.345*2.868/3.14-99.455+1.274

Получите результат вычисления:

res = -93.2990

Если требуется полное представление вещественного числа res, введите с клавиатуры команду:

» format long

и далее наберите имя переменной

» res

нажмите клавишу Enter и получите более подробную информацию:

res = -93.29900636942675

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

» format short

Целые числа показываются системой в командном окне в виде целых чисел Над вещественными числами и переменными типа double производятся арифметические операции: сложения +, вычитания -, умножения *, деления / и возведения в степень ^ . Приоритет в выполнении арифметических операций обычный. Операции одинакового приоритета выполняются в порядке слева направо, но круглые скобки могут изменить этот порядок.

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

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

» 2*asin(1)

Убедитесь, что получился следующий результат:

ans = 3.1416,

соответствующее числу «пи». В системе MATLAB для вычисления числа «пи» есть специальное обозначение: pi. (Список системных переменных MATLAB находится в Приложении 2).

MATLAB имеет также логические функции, функции, связанные с целочисленной арифметикой (округления до ближайшего целого: round, усечение дробной части числа: fix). Есть еще функция mod - остаток от деления с учетом знака, sign - знак числа, lcm - наименьшее общее кратное, perms - вычисление числа перестановок и nchoosek - числа сочетаний и много других. Многие из функций имеют область определения, отличную от множества всех действительных чисел.

Помимо арифметических операций над операндами типа double выполняются еще операции отношения и логические операции. Операции отношения сравнивают между собой два операнда по величине. Эти операции записываются следующими знаками или комбинациями знаков (Таблица 1):

Таблица 3.1.1 - Символьные обозначения операций отношения

<

<=

>

>=

~=

==

Меньше

Меньше или равно

Больше

Больше или равно

Не равно

Равно

В случае истинности операции отношения ее величина равна 1, а в случае ложности - 0. Операции отношения имеют более низкий приоритет, чем арифметические операции.

Наберите с клавиатуры выражение с операциями отношения и вычислите его:

» a=1; b=2; c=3;

» res=(a<b)+(c~=b)+(b==a)

компьютерный моделирование числовой matlab

Вы получите следующий результат:

res = 2

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

Таблица 3.1.2 - Символьные обозначения логических операций

&

|

~

И

ИЛИ

НЕ

Первые две из этих операций являются бинарными (двухоперандными), а последняя - унарной (однооперандной). Логические операции трактуют свои операнды как «истинные» (не равные нулю) или «ложные» (равные нулю). Если оба операнда операции «И» истинны (не равны нулю), то результат этой операции равен 1 («истина»); во всех остальных случаях операция «И» вырабатывает значение 0 («ложь»). Операция «ИЛИ» вырабатывает 0 («ложь») тольков случае, когда являются ложными (равными нулю) оба операнда. Операция «НЕ» инвертирует «ложь» на «истину». Логические операции имеют самый низкий приоритет.

3.2 КОМПЛЕКСНЫЕ ЧИСЛА И КОМПЛЕКСНЫЕ ФУНКЦИИ

Комплексные переменные, как и вещественные автоматически имеют тип double и не требуют никакого предварительного описания. Для записи мнимой единицы зарезервированы буквы i или j. В случае, когда коэффициентом перед мнимой единицей является не число, а переменная, между ними следует обязательно использовать знак умножения. Итак, комплексные числа можно записывать следующим образом:

» 2+3i; -6.789+0.834e-2*i; 4-2j; x+y*i;

Почти все элементарные функции допускают вычисления с комплексными аргументами. Вычислите выражение:

» res=sin(2+3i)*atan(4i)/(1-6i)

Получится результат:

-1.8009 - 1.9190i

Специально для работы с комплексными числами предназначены следующие функции: abs (абсолютное значение комплексного числа), conj (комплексно сопряженное число), imag (мнимая часть комплексного числа), real (действительная часть комплексного числа), angle (аргумент комплексного числа), isreal («истина», если число действительное).

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

Введите выражение, получите результат:

» c=2+3i; d=2i;

» c>d

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

3.3 ЧИСЛОВЫЕ МАССИВЫ

Для создания одномерного массива можно использовать операцию конкатенации, которая обозначается с помощью квадратных скобок [ ]. Элементы массива помещаются между скобками и отделяются друг от друга пробелом или запятой:

» al=[1 2 3]; d=[1+2i,2+3i,3-7i];

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

Можно изменять элементы уже сформированного массива путем применения операций индексации и присваивания. Например, введя:

» al(3)=789;

мы изменим третий элемент массива. Или, после введения:

» al(2)=(al(1)+al(3))/2;

второй элемент массива станет равным среднему арифметическому первого и третьего элементов. Запись несуществующего элемента вполне допустима - она означает добавление нового элемента к уже существующему массиву:

» al(4)=7;

Применяя после выполнения этой операции к массиву а1 функцию length, находим, что количество элементов в массиве возросло до четырех:

» length(al)

ans = 4

Тоже самое действие - «удлинение массива а1» - можно выполнить и с помощью операции конкатенации:

» al=[al 7];

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

» diap=3.7:0.3:8.974;

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

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

Введите с клавиатуры:

» a=[1 2; 3 4; 5 6]

Нажмите ENTER, получим:

a =

1 2

3 4

5 6

Полученную матрицу а размером 3x2 (первым указывается число строк, вторым - число столбцов) можно сформировать также вертикальной конкатенацией вектор-строк:

» a=[[1 2];[3 4];[5 6]];

или горизонтальной конкатенацией вектор-столбцов:

» a=[[1;3;5],[2;4;6]];

Структуру созданных массивов можно узнать с помощью команды whos(имя массива), размерность массива - функцией ndims, а размер массива - size.

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

» a(1,1)=1; a(1,2)=2; a(2,1)=3;

» a(2,2)=4; a(3,1)=5; a(3,2)=6;

Однако будет намного эффективнее, если до начала прописывания элементов массива, создать массив нужного размера функциями ones (m,n) или zeros(m,n), заполненный единицами или нулями (m - число строк, n - число столбцов).

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

Использование этих функций возможно и при задании массивов других размерностей.

Если после формирования массива Х потребуется, не изменяя элементов массива, изменить его размеры, можно воспользоваться функцией reshape (Х, М, N), где M и N - новые размеры массива Х.

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

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

Поменять местами строки матрицы с ее столбцам можно операцией транспортирования, которая обозначается знаком .' (точка и апостроф). Например:

» A=[1 1 1; 2 2 2; 3 3 3];

» B=A.'

B =

1 2 3

1 2 3

1 2 3

Операция ' (апостроф) выполняет транспонирование для вещественных матриц и транспонирование с одновременным комплексным сопряжением для комплексных матриц.

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

3.4 ВЫЧИСЛЕНИЯ С МАССИВАМИ

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

Операции сложения и вычитания матриц (знакомые вам из линейной алгебры) обозначаются стандартными знаками + и -.

Задайте матрицы А и В и выполните операцию сложения матриц:

» A=[1 1 1; 2 2 2; 3 3 3]; B=[0 0 0; 7 7 7; 1 2 3];

» A+B

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

При выполнении операции А + скаляр (А - матрица) система расширит скаляр до массива размера А, который и складывается далее поэлементно с А.

» A+5

ans = 6 6 6

7 7 7

8 8 8

Для поэлементного перемножения и поэлементного деления массивов одинаковых размеров, а также поэлементного возведения в степень массивов, применяются операции, обозначаемые комбинациями двух символов: .* , ./, и .^. Использование комбинаций символов объясняется тем, что символами * и / обозначены специальные операции линейной алгебры над векторами и матрицами.

Кроме операции ./, называемой операцией правого поэлементного деления, есть еще операция левого поэлементного деления .\. Объясним разницу между этими операциями. Выражение А ./ В приводит к матрице с элементами А (k, m) /В (k, m), а выражение А .\ В приводит к матрице с элементами В (k, m) /А (k, m).

Знак * закреплен за перемножением матриц и векторов в смысле линейной алгебры.

Знак \ закреплен в системе MATLAB за решением довольно сложной задачи линейной алгебры - нахождением корней системы линейных уравнений.

Например, если требуется решить систему линейных уравнений

Ay = b,

где А - заданная квадратная матрица размера N x N, b - заданный вектор столбец длины N, то для нахождения неизвестного вектор-столбца у достаточно вычислить выражение А \ b (это равносильно операции: 1 A B ?? ).

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

» u=[1 2 3]; v=[3 2 1];

» cross(u,v)

ans =

-4 8 -4

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

» sum(u.*v)

вычисляет скалярное произведение двух векторов u и v. Скалярное произведение можно также вычислить как: u*v?. Длина вектора вычисляется с помощью скалярного произведения и функции извлечения квадратного корня, например:

» sqrt(sum(u.*u))

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

» x=0:0.01:pi/2; y=sin(x);

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

3.5 ПОСТРОЕНИЕ ГРАФИКОВ ФУНКЦИИ

Графические возможности системы MATLAB являются мощными и разнообразными. Изучим наиболее простые в использовании возможности (высокоуровневую графику).

Сформируйте два вектора х и y:

» x=0:0.01:2; y=sin(x);

Вызовите функцию:

» plot(x,y)

и вы получите на экране график функции рисунок 3.1.

Рисунок 3.4.1 - График функции y=sin(x)

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

» z=cos(x);

» plot(x,z)

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

Если нужно второй график провести «поверх первого графика», то перед вторичным вызовом графической функции plot нужно выполнить команду hold on, которая предназначена для удержания текущего графического окна:

» x=0:0.01:2; y=sin(x);

» plot(x,y)

» z=cos(x);

» hold on

» plot(x,z)

Практически тоже самое получится рисунок 3.2, если набрать:

» x=0:0.01:2; y=sin(x); z=cos(x);

» plot(x,y,x,z)

Рисунок 3.4.2 - Графики функций y=sin(x), z=cos(x), построенные в одном графическом окне

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

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

Например, для ранее выполненных вычислений с функциями sin и cos постройте графики этих двух функций в первой подобласти, а график функции exp(х) - во второй подобласти одного и того же графического окна. Рисунок 3.2:

» w=exp(x);

» subplot(1,2,1); plot(x,y,x,z)

» subplot(1,2,2); plot(x,w)

Рисунок 3.4.3 - Графики функций y=sin(x), z=cos(x) и w=exp(x), построенные в двух подобластях одного графического окна

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

» subplot(1,1,1)

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

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

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

Введите с клавиатуры:

» t=0:pi/50:10*pi;

» x=sin(t);

» y=cos(t); plot3(x,y,t); grid on

Убедитесь, что получилась винтовая линия.

Рисунок 3.4.4 - График винтовой линии, построенный с помощью функции plot3

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

» u=-2:0.1:2; v=-1:0.1:1;

» [X,Y]=meshgrid(u,v);

» z=exp(-X.^2-Y.^2);

» plot3(X,Y,z)

Получите трехмерное изображение графика функции рисунок 3.4.5.

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

Рисунок 3.4.5 - График поверхности в пространстве, построенный с помощью функции plot3

3.6 СЦЕНАРИИ И M-ФАЙЛЫ

Для простых операций удобен интерактивный режим, но если вычисления нужно многократно выполнять или необходимо реализовывать сложные алгоритмы, то следует использовать m-файлы MATLAB (расширение файла состоит из одной буквы m). Познакомимся со script-m-файлами (или сценариями) - текстовыми файлами, содержащими инструкции на языке MATLAB, подлежащими исполнению в автоматическом пакетном режиме. Создать такой файл удобнее с помощью редактора системы MATLAB. Он вызывается из командного окна системы MATLAB командой меню File/New/M-file (или самой левой кнопкой на полосе инструментов, на которой изображен чистый белый лист бумаги). Записанные в script-файлы команды будут выполнены, если в командной строке ввести имя script-файла (без расширения). Переменные, определяемые в командном окне и переменные, определяемые в сценариях, составляют единое рабочее пространство системы MATLAB, причем переменные, определяемые в сценариях, являются глобальными, их значения заместят значения таких же переменных, которые были использованы до вызова данного script-файла.

После создания текста сценария его надо сохранить на диске в удобном для вас каталоге. Путь к этому каталогу обязательно должен быть известен системе MATLAB. Командой File/Set Path вызывается диалоговое окно просмотрщика путей доступа к каталогам. Для добавления нового каталога в список путей доступа необходимо выполнить далее команду меню Path/Add to path.

4. Решение задачи в системе MATLAB

Пример для диодной структуры

Рассмотрим кратко основные этапы решения задачи в PDE Toolbox на примере расчета распределения электрического потенциала в автоэмиссионной диодной ячейке см. рисунок 4.1.

Рисунок 4.1 - Диодная структура

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

?І ц(x,y) / ?xІ + ?І ц(x,y) / ?yІ = 0

На первом этапе необходимо сформировать исходную геометрию задачи в графическом окне интерфейса PDETool см. рисунок 4.2.

Рисунок 4.2 - Подготовка изображения двухэлектродной структуры в окне PDETool

Показанная на рисунке 4.2 геометрия структуры составлена из набора геометрических фигур - прямоугольника R1, окружности E1 и многоугольника P1.

Изображения электродов формируются с помощью команд пункта Draw (Рисовать) главного меню: Draw Mode - переключение в режим ввода (прорисовки) геометрии; Rectangle/square - ввод прямоугольника или квадрата с помощью мыши начиная от его верхней левой вершины; Rectangle/square (centered) - ввод прямоугольника или квадрата с помощью мыши начиная от его центра; Ellipse/circle - ввод эллипса или круга с помощью мыши начиная от верхней левой точки; Ellipse/circle (centered) - ввод эллипса или круга с помощью мыши начиная от центра; Polygon - прорисовка многоугольника отрезками ломаной линии, пока она не станет замкнутой; Rotate - поворот выделенных объектов вокруг некоторой точки; Export Geometry Description, Set Formula, Labels - экспорт в базовую рабочую область MATLAB переменных описания геометрии. Быстрый вызов некоторых из этих команд обеспечивают элементы инструментальной панели и - прямоугольник (квадрат), и - эллипс (круг), - многоугольник.

Для получения изображений произвольной формы служит строка "Set formula", располагающаяся под инструментальной панелью. В ней можно задать слияние нескольких фигур или "вычесть" их друг из друга используя. В данном случае используется формула R1-P1-E1, где R1 - прямоугольник (квадрат), P1 - многоугольник, E1 - эллипс (круг).

Команды для редактирования изображения и настройки графического окна содержатся в следующих пунктах главного меню. Edit (Правка) содержит команды: Undo - отмена последнего действия; Cut - вырезать выделенный геометрический объект и поместить его в буфер; Copy - копировать выделенный объект в буфер; Paste - вставить геометрический объект из буфера; Clear - удалить выделенный объект; Select All - выделить все геометрические объекты.

Options (Опции) содержит команды: Grid - показать / скрыть координатную сетку; Grid Spacing - установить пределы и шаг сетки; Snap - округлять координаты указателя мыши; Axes Limits - установить пределы координатных осей; Axes Equal - установить одинаковый масштаб по осям x и y; Turn Off Toolbar Help - выключить подсказки по инструментальной панели; Zoom - показать с увеличением выделенную часть модели; Application - переключение вида задачи; Refresh - обновить изображение модели.

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

Рисунок 4.3 - Границы расчетной области

Boundary (Границы) содержит команды: Boundary Mode - ввод граничных условий; Specify Boundary Conditions - ввод параметров граничных условий; Show Edge Labels - показать номера граничных сегментов; Show Subdomain Labels - показать номера зон; Remove Subdomain Border - удалить границу зон; Remove All Subdomain Borders - удаление всех границ зон; Export Decomposed Geometry, Boundary Cond's - экспорт в рабочую область MATLAB переменных описания граничных условий.

PDE (Уравнение) содержит команды: PDE Mode - переключение в режим ввода параметров уравнения; Show Subdomain Labels - показать номера зон; PDE Specification - ввод параметров (коэффициентов) уравнения; Export PDE Coefficients - экспорт в базовую рабочую область переменных, описывающих PDE коэффициенты в расчётной области. Переход к выполнению этих команд также обеспечивается элементами инструментальной панели - граничные условия и - параметры уравнения.

В качестве граничных условий на нижней и верхней границах зададим электрические потенциалы электродов, то есть условие Дирихле: вверху (на аноде) ц = 1000 В и внизу (на катоде) ц = 0 В. На левой и правой границах зададим условие Неймана ?ц/?n = 0 (где n - нормаль к границе), учитывая определенную симметрию задачи. Для ввода условия на каком-либо сегменте границы необходимо его выделить и открыть диалоговое окно "Boundary Condition". В окне следует установить переключатель в режим Dirichlet или Neuman и задать числовые параметры.

Зададим параметры уравнения эллиптического типа, вызвав через меню или панель инструментов диалоговое окно "PDE Specification". Выберем тип уравнения - "Elliptic" Если в списке "Application" установлен режим "Electrostatics" (задача электростатическая), то в окне MATLAB уравнение имеет вид "-div(exgrad(ц))=с", где e диэлектрическая проницаемость, электрический потенциал, объемный заряд. В том случае, когда установлен режим "Generic Scalar" в списке "Application" (задача в обобщенной скалярной форме), запись уравнения в MATLAB имеет вид "-div(c grad(u))+a u=f". Зададим = 1, = 0 (или c = 1, a = 0, и f = 0).

На следующем этапе формируется сетка конечных элементов см. рисунок 4.4. PDE Toolbox поддерживает только симплекс-элементы, для которых характерны линейные функции формы.

Пункт Mesh (Сетка) главного меню включает следующие команды для работы с сеткой: Mesh Mode - переключение в режим построения сетки; Initialize Mesh - генерация сетки; Refine Mesh - сгущение сетки; Jiggle Mesh - регуляризация сетки в пределах установленной величины; Undo Mesh Change - отменить последнее изменение сетки; Display Triangle Quality - отобразить в цвете показатель регулярности конечных элементов; Show Node Labels - показать номера узлов; Show Triangle Labels - показать номера конечных элементов; Parameters - установить параметры генератора сетки; Export Mesh - экспорт сетки в базовую рабочую область.

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

Рисунок 4.4 - Формирование сетки

Следующий этап включает собственно решение задачи и его вывод в графическом виде см. рисунок 4.5. Соответствующие команды располагаются в пунктах Solve и Plot главного меню.

Solve (Решение) содержит команды: Solve PDE - решить краевую задачу; Parameters - установить параметры решателя; Export Solution - экспорт решения в базовую рабочую область. На инструментальной панели разделу Solve соответствует элемент .

Plot (График) содержит команды: Plot Solution - отобразить решение; Parameters - установить параметры отображения решения; Export Movie - экспорт в базовую рабочую область информации, необходимой для анимации решения нестационарной задачи. На панели PDETool имеются элементы - настройка графики и - увеличить фрагмент.

Рисунок 4.5 - Результат решения для двухэлектродной структуры: распределение эквипотенциальных линий ц = const

Результаты расчета можно сохранить, обратившись к пункту File (Файл) меню, включающему команды: New - создать новую модель; Open - открыть ранее сохранённую в m-файле модель; Save - сохранение модели в m-файле с текущим именем; Save As - сохранение модели в m-файле; Print - печать рисунка; Exit - закрытие приложения PDETool.

ЗАКЛЮЧЕНИЕ

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

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. Глушаков С.В., Жакин И.А., Хачиров Т.С. Математическое моделирование: Mathcad 2000, MATLAB 5. Учебный курс. - Харьков.: Фолио, 2001. -524 с.

2. Мартынов Н. Введение в MatLab 6. - М.: Кудиц-образ, 2002.

3. Бахвалов, Н. С. Численные методы в задачах и упражнениях / Н. С. Бахвалов, А. В. Лапин, Е. В. Чижонков. М.: Высш. шк., 2000. 192 с.

4. Дьяконов В. Matlab6. Учебный курс. - СПб.: Питер, 2001.

5. Потемкин В. Введение в MATLAB. - М.: Диалог-МИФИ, 2000

6. Чекмарев. А.В. Средства визуального проектирования. BHV-СПб, 1998.

Размещено на Allbest.ru

...

Подобные документы

  • Особенности работы в режиме командной строки в системе Matlab. Переменные и присваивание им значений. Комплексные числа и вычисления в системе Matlab. Вычисления с использованием функции sqrt. Неправильное использование функций с комплексными аргументами.

    дипломная работа [1,9 M], добавлен 30.07.2015

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

    лабораторная работа [853,5 K], добавлен 25.10.2015

  • Графики вещественнозначных функций вещественного переменного. Построение двумерных графиков. Пример построения графика синусоиды. Пример использования функции subplot. Оформление двумерных графиков в системе MatLab. Основные функции оформления графиков.

    курсовая работа [826,3 K], добавлен 30.04.2019

  • Компьютерное моделирование - вид технологии. Анализ электрических процессов в цепях второго порядка с внешним воздействием с применением системы компьютерного моделирования. Численные методы аппроксимации и интерполяции и их реализация в Mathcad и Matlab.

    курсовая работа [1,1 M], добавлен 21.12.2013

  • Практические навыки моделирования структурных схем в среде SIMULINK пакета MATLAB. Построение графиков функций в декартовой системе координат. Решение систем линейных и нелинейных уравнений. Работа с блоками Sum, Algebraic Constraint, Gain, Product.

    лабораторная работа [159,2 K], добавлен 19.04.2009

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

    отчет по практике [761,4 K], добавлен 21.10.2015

  • Использование расширения MATLAB - Simulink как системы математического моделирования. Электроэнергетическое направление системы - пакет Sim Power Systems, методом моделирования решающий задачи электроэнергетики. Структура и функциональные компоненты.

    курсовая работа [1,5 M], добавлен 09.10.2014

  • Назначение и возможности пакета MATLAB. Цель интерполирования. Компьютерная реализация решения инженерной задачи по интерполяции табличной функции различными методами: кусочно-линейной интерполяцией и кубическим сплайном, а также построение их графиков.

    контрольная работа [388,3 K], добавлен 25.10.2012

  • Введение в интернет-технологии и компьютерное моделирование. Создание WEB страниц с использованием HTML. Создание динамических WEB страниц с использованием JavaScript. Работа с графикой в Adobe Photoshop и Flash CS. Основы компьютерного моделирования.

    презентация [223,4 K], добавлен 25.09.2013

  • Программный комплекс MATLAB как мощное средство для высокоточного цифрового моделирования системы автоматического управления. Основные особенности построения временных характеристик с помощью пакета Control System и моделирования в системе Simulink.

    контрольная работа [2,3 M], добавлен 14.11.2012

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

    дипломная работа [3,3 M], добавлен 10.07.2017

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

    статья [170,5 K], добавлен 01.05.2010

  • Исследование и оценка возможностей работы со следующими разделами библиотеки приложения Simulink пакета программ Matlab: Source, Sinks, Continuous, Math Operation. Функции по представлению полученных в результате моделирования данных в графическом виде.

    лабораторная работа [438,9 K], добавлен 23.09.2022

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

    презентация [359,2 K], добавлен 24.01.2014

  • Математическая основа параллельных вычислений. Свойства Parallel Computing Toolbox. Разработка параллельных приложений в Matlab. Примеры программирования параллельных задач. Вычисление определенного интеграла. Последовательное и параллельное перемножение.

    курсовая работа [1,1 M], добавлен 15.12.2010

  • Создание Web-страниц с использованием HTML, с использованием JavaScript и PHP. Работа с графикой в Adobe Photoshop и Flash CS. Базы данных и PHP. Пример реализации "Эконометрической модели экономики России" под web. Основы компьютерного моделирования.

    презентация [4,4 M], добавлен 25.09.2013

  • Язык и среда Matlab. Управляемая графика. Библиотека математических функций. Программный интерфейс. Использование операторов при составлении выражений. Работа в командной строке. Команды save, load и clear. Рабочий каталог. Сохранение рабочей сессии.

    презентация [413,6 K], добавлен 14.11.2013

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

    курсовая работа [594,5 K], добавлен 28.12.2012

  • Исследование типовых примеров задач оптимизации. Реализация программы в среде MatLab для их решения. Изучение функций нелинейной оптимизации. Определение оптимума целевой функции одной или нескольких переменных. Поиск оптимальных настроек регулятора.

    лабораторная работа [188,8 K], добавлен 07.12.2016

  • Схема речеобразования у человека. Запись и считывание данных из речевого сигнала в MATLAB. Синтаксис вызова функции. Операции над звуковыми файлами. Исследование мужского и женского голосов. Спектрограммы голосов. Обработка речи в Simulink, Wavelet.

    контрольная работа [2,2 M], добавлен 18.04.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.