Общая характеристика и возможности системы MatLab
ФЕДЕРАЛЬНОЕ Государственное БЮДЖЕТНОЕ образовательное учреждение высшего профессионального образования
«Мордовский государственный педагогический институт им.М.Е.Евсевьева»
Физико-математический факультет
КАФЕДРА ИНФОРМАТИКИ И ВТ
КУРСОВАЯ РАБОТА
по информатике
Общая характеристика и возможности системы MATLAB
Автор курсовой работы: студентка 3 курса группы МДМ 109 очной формы обучения_____________________
Специальность: «032100.00 – Математика» с дополнительной специальностью «030100 – Информатика»
Руководитель:, к.п.н., доцент _____________________
Саранск 2012
Содержание
Введение…………………………………………………………
1 Характеристика и возможности системы Matlab…………………….........5
1.1 История создания системы Matlab……………………………………......5
1.2 Характеристика системы MatLab………………………………………...5
1.3 Возможности систем MatLab……………………………………………..11
2 Системы линейных алгебраических уравнений в системе MatLab…….16
2.1 Алгоритм решения систем
линейных уравнений……………………....
2.2 Функции и операции систем MatLab для реализации задач
линейной алгебры……………………………………
2.3 Решение систем линейных алгебраических уравнений………………..20
Заключение……………………………………………………
Список использованных источников……………………………………......
Введение
MATLAB - матричная лаборатория - наиболее развитая система программирования для научно-технических расчетов, дополненная к настоящему времени несколькими десятками более частных приложений, относящихся к вычислительной математике, обработке информации, конструированию электронных приборов, экономике и ряду других разделов прикладной науки. MATLAB предназначен, прежде всего, для программирования численных алгоритмов. Он разрабатывается уже более 15 лет и возник на основе более ранних прикладных пакетов LINPACK и EIGPACK, созданных в 1970-е гг. в США, и в свою очередь повлиял на появление таких систем, как MathCad, MAPLE и Mathematica.
Совершенствование системы MATLAB происходило как в связи с достижениями в вычислительной математике, так и в связи с изменениями в архитектуре персональных компьютеров и развитием общесистемных средств. Со временем MATLAB был дополнен целым рядом приложений (toolboxes), далеко раздвинувших границы его применимости.
Среда MATLAB изначально разрабатывалась для работы с матрицами (MATLAB является сокращением от Matrix Laboratory), поэтому арсенал средств MATLAB для решения систем линейных алгебраических уравнений достаточно богат и включает в себя:
- решение систем с квадратными и прямоугольными матрицами;
- решение систем прямыми и итерационными (в том числе с возможностью предобусловливания) методами;
- матричные разложения;
- хранение больших разреженных матриц в компактной форме и специальные алгоритмы для решения систем с такими матрицами.
Выше изложенное подтверждает актуальность тематики данного исследования.
Объектом исследования данной работы является система MATLAB.
Предметом исследования данной работы является изучение возможностей системы MATLAB.
Целью курсовой работы является анализ решения систем линейных алгебраических уравнений с помощью системы MATLAB.
Задачами данной работы являются: рассмотрение истории создания системы Matlab, анализ решения систем линейных алгебраических уравнений.
В качестве методов исследования выступает анализ научной и специальной литературы.
В данной курсовой работе дана подробная характеристика системы MATLAB, ее возможности, а так же приведены примеры решения систем линейных алгебраических уравнений.
1 Характеристика и возможности системы MATLAB
1.1 История создания системы MATLAB
MATLAB как язык программирования был разработан Кливом Моулером в конце 1970-х годов, когда он был деканом факультета компьютерных наук в Университете Нью-Мексико.
Целью разработки служила
задача дать студентам факультета возможность
использования программных
До сих пор в Интернете можно найти версию 1982 года, написанную на Фортране, распространяемую с открытым исходным кодом. Инженер Джон Литтл познакомился с этим языком во время визита Клива Моулера в Стэнфордский университет в 1983 году. Поняв, что новый язык обладает большим коммерческим потенциалом, он объединился с Кливом Моулером и Стивом Бангертом. Совместными усилиями они переписали MatLab на C и основали в 1984 компанию The MathWorks для дальнейшего развития. Эти переписанные на С библиотеки долгое время были известны под именем JACKPAC.
Первоначально MATLAB предназначался для проектирования систем управления (основная специальность Джона Литтла), но быстро завоевал популярность во многих других научных и инженерных областях. Он также широко используется и в образовании, в частности, для преподавания линейной алгебры и численных методов [5].
1.2 Xарактеристика системы MATLAB
MATLAB - это высокопроизводительный язык для технических расчетов. Он включает в себя вычисления, визуализацию и программирование в удобной среде, где задачи и решения выражаются в форме, близкой математической.
Типичное использование MATLAB - это: математические вычисления, создание алгоритмов, моделирование, анализ данных, исследования и визуализация, научная и инженерная графика, разработка приложений, включая создание графического интерфейса.
Язык MATLAB - это язык матриц и массивов высокого уровня с управлением потоками, функциями, структурами данных, вводом-выводом и особенностями объектно-ориентированного программирования.
Среда MATLAB - это набор инструментов и приспособлений, с которыми работает пользователь или программист MATLAB. Она включает в себя средства для управления переменными в рабочем пространстве MATLAB, вводом и выводом данных, а также создания, контроля и отладки М-файлов и приложений MATLAB.
Управляемая графика - это графическая система MATLAB, которая включает в себя команды высокого уровня для визуализации двух- и трехмерных данных, обработки изображений, анимации и иллюстрированной графики. Она также включает в себя команды низкого уровня, позволяющие полностью редактировать внешний вид графики, также как при создании Графического Пользовательского Интерфейса (GUI) для MATLAB приложений.
Библиотека математических функций - это обширная коллекция вычислительных алгоритмов от элементарных функций, таких как сумма, синус, косинус, комплексная арифметика, до более сложных, таких как обращение матриц, нахождение собственных значений, функции Бесселя, быстрое преобразование Фурье.
Программный интерфейс - это библиотека, которая позволяет писать программы на Си и Фортране, которые взаимодействуют с MATLAB. Она включает средства для вызова программ из MATLAB (динамическая связь), вызывая MATLAB как вычислительный инструмент и для чтения-записи МАТ. файлов [6].
Матрицы
Лучший способ начать работу с MATLAB — это научиться обращаться с матрицами. В MATLAB матрица - это прямоугольный массив чисел. Особое значение придается матрицам 1x1, которые являются скалярами, и матрицам, имеющим один столбец или одну строку, — векторам. MATLAB использует различные способы для хранения численных и не численных данных, однако вначале лучше всего рассматривать все данные как матрицы. MATLAB организован так, чтобы все операции в нем были как можно более естественными. В то время как другие программные языки работают с числами как элементами языка, MATLAB позволяет быстро и легко оперировать с целыми матрицами.
Выражения
Как и большинство
других языков программирования, MATLAB предоставляет
возможность использования
переменные, числа, операторы, функции.
Числа
MATLAB использует
принятую десятичную систему
счисления, с необязательной
Операторы
Выражения используют обычные арифметические операции и правила старшинства.
+ сложение,
– вычитание,
* умножение,
/ деление,
Λ степень,
' комплексно сопряженное транспонирование,
() определение порядка вычисления.
Специальные символы
[ ] – квадратные
скобки используют для
– пробел служит для разделения элементов матриц;
, – запятая
применяется для разделения
; – точка с запятой отделяет строки матриц, а точка с запятой в конце оператора (команды) отменяет вывод результата на экран;
: – двоеточие
используется для указания
% – знак процента обозначает начало комментария;
! – отмечает начало команды DOS;
’ – апостроф указывает на символьные строки.
Функции
MATLAB предоставляет
большое количество
help elfun.
Для вывода более сложных математических и матричных функций, нужно набрать
help specfun,
help elmat соответственно.
Графика
MATLAB имеет широкие возможности для графического изображения векторов и матриц, а также для создания комментариев и печати графики.
Создание графика
Функция plot имеет различные формы, связанные с входными параметрами, например plot(y) создает кусочно-линейный график зависимости элементов от их индексов. Если задать два вектора в качестве аргументов, plot(x,y) создаст график зависимости у от х.
Подграфики
Функция subplot позволяет выводить множество графиков в одном окне или распечатывать их на одном листе бумаги.
Управление осями
Функция axis имеет
несколько возможностей для настройки
масштаба, ориентации и коэффициента
сжатия. Обычно MATLAB находит максимальное
и минимальное значение и выбирает
соответствующий масштаб и
Axis ( [xmin xmax ymin ymax] )
Подписи к осям и заголовки
Функции xlabel, ylabel,
zlabel добавляют подписи к
Функции mesh и surface
MATLAB определяет поверхность как ζ координаты точек над координатной сеткой плоскости х-у, используя прямые линии для соединения соседних точек. Функции mesh и surface отображают поверхность в трех измерениях. При этом mesh создает каркасную поверхность, где цветные линии соединяют только заданные точки, а функция surface вместе с линиями отображает в цвете и саму поверхность.
Визуализация функций двух переменных
Для отображения функции двух переменных, z = f (x,y), создаются матрицы X и Y, состоящие из повторяющихся строк и столбцов соответственно, перед использованием функции. Затем используют эти матрицы для вычисления и отображения функции. Функция meshgrid преобразует область определения, заданную через один вектор или два вектора x и у, в матрицы X и Υ для использования при вычислении функции двух переменных. Строки матрицы X дублируют вектор х, а столбцы Υ - вектор у.
Среда MATLAB
Среда MATLAB включает в себя как совокупность переменных, созданных за время сеанса работы MATLAB, так и набор файлов, содержащих программы и данные, которые продолжают существовать между сеансами работы.
Рабочее пространство
Рабочее пространство - это область памяти, доступная из командной строки MATLAB. Две команды, who и whos, показывают текущее содержание рабочего пространства. Команда who выдает краткий список, а команда whos размер и используемую память.
Команда save
Команда save сохраняет содержание рабочего пространства в МАТ. файле, который может быть прочитан командой load в последующих сеансах работы MATLAB.
Справка и текущая документация
Есть несколько способов получить текущую документацию по функциям MATLAB.
- Команда help;
- Окно справки;
- MATLAB Help Desk;
- Текущие справочные страницы;
- Связь с The MathWorks, Inc;
- Команда help [1].
Таким образом, система MATLAB позволяет: выполнять математические вычисления, создавать алгоритмы, моделировать, осуществлять анализ данных, проводить исследования и визуализацию процессов, использовать возможности научной и инженерной графики, разрабатывать приложения, включая создание графического интерфейса
1.3 Возможности систем MatLab
Уже первые ориентированные на Microsoft Windows версии системы (MATLAB 4.x) обладали мощными средствами [2].
В области математических вычислений:
- матричные, векторные, логические операторы;
- элементарные и специальные функции;
- полиномиальная арифметика;
- многомерные массивы;
- массивы записей;
- массивы ячеек.
В области реализации численных методов:
- дифференциальные уравнения;
- вычисление одномерных и двумерных квадратур;
- поиск корней нелинейных алгебраических уравнений;
- оптимизация функций нескольких переменных;
- одномерная и многомерная интерполяция.
В области программирования:
- свыше 500 встроенных математических функций;
- ввод/вывод двоичных и текстовых файлов;
- применение программ, написанных на Си и ФОРТРАН;
- автоматическая перекодировка процедур MATLAB в тексты программ на языках Си и C++;
- типовые управляющие структуры.
В области визуализации и графики:
- возможность создания двумерных и трехмерных графиков;
- осуществление визуального анализа данных.
Эти средства сочетались с открытой архитектурой систем, позволяющей изменять уже существующие функции и добавлять свои собственные. Входящая в состав MATLAB программа Simulink дает возможность имитировать реальные системы и устройства, задавая их моделями, составленными из функциональных блоков. Simulink имеет обширную и расширяемую пользователями библиотеку блоков и простые средства задания и изменения их параметров.
В версиях системы MATLAB 5.x введены новые мощные средства.
Улучшенная среда программирования:
- профилировщик m-файлов для оценки времени исполнения фрагментов программ;
- редактор/отладчик m-файлов с удобным графическим интерфейсом;
- объектно-ориентированное программирование, включая переназначение функций и операторов;
- средства просмотра содержимого рабочей области и путей доступа;
- конвертирование m-файлов функций в промежуточный р-код.
Новые типы данных:
- многомерные массивы;
- массивы структур (записей);
- массивы ячеек данных разного типа;
- массивы символов с 16-разрядной кодировкой;
- массивы с 8-разрядной кодировкой элементов.
Средства программирования:
- списки аргументов переменной длины;
- переназначение функций и операторов;
- применение локальных функций в m-файлах;
- оператор-переключатель switch...case...end;
- оператор wait for;
- функции обработки битов.
Математические вычисления и анализ данных:
- пять новых численных методов решения (solver) обыкновенных дифференциальных уравнений (ОДУ); ускоренное вычисление функций Бесселя;
- вычисление собственных значений и сингулярных чисел для матриц разреженной структуры;
- двумерные квадратурные формулы;
- многомерная интерполяция;
- триангуляция и вывод на терминал данных, определенных на неравномерной сетке;
- анализ и обработка многомерных массивов;
- функции обработки времени и даты.
Новые возможности обычной графики:
- Z-буферизация для быстрой и точной трехмерной визуализации;
- 24-битовая поддержка RGB;
- множественная подсветка поверхностей и полигонов;
- перспективные изображения из произвольной точки;
- новые модели подсветки;
- векторизованные полигоны для больших трехмерных моделей;
- поддержка данных, определенных на неравномерной сетке, включая триангуляционные и сеточные двух- и трехмерные поверхности;
- дескрипторная графика для множественных объектов;
- вывод на терминал, хранение и импорт 8-разрядных изображений;
- дополнительные форматы графических объектов.
Презентационная графика и звук:
- двойные х - и y-оси;
- легенда - пояснение в виде отрезков линий со справочными надписями, размещаемое внутри графика или около него;
- управление шрифтом текстовых объектов;
- надстрочные, подстрочные и греческие символы;
- трехмерные диаграммы, поля направлений, ленточные и стержневые графики;
- увеличенное количество стилей для маркировки линий;
- 16-битный стереозвук.
Новейшая версия системы MATLAB 6 не только имеет перечисленные выше возможности предшествующих версий, но и характеризуется целым рядом новых и важных возможностей:
- доведенное до более чем 600 число встроенных функций и команд;
- новый интерфейс с набором инструментов для управления средой, включающий в себя окно команд (Command Window), окно истории команд (Command History), браузер рабочей области (Workspace Browser) и редактор массивов (Array Editor);
- новые инструменты, позволяющие при помощи мыши интерактивно редактировать и форматировать графики, оптимизировать их коды и затраты памяти на графические команды и атрибуты;
- улучшенные алгоритмы на основе оптимизированной библиотеки LAPACK;
- новая библиотека FFTW (быстрых преобразований Фурье) Массачусетского технологического института Кембриджского университета (США);
- ускоренные методы интегральных преобразований;
- новые, более мощные и точные, алгоритмы интегрирования дифференциальных уравнений и квадратур;
- новые современные функции визуализации: вывод на экран двумерных изображений, поверхностей и объемных фигур в виде прозрачных объектов;
- новая инструментальная панель Camera для управления перспективой и ускорение вывода графики с помощью OpenGL;
- новый интерфейс для вызова Java-процедур и использования Java-объектов непосредственно из MATLAB;
- новые, современные инструменты проектирования графического пользовательского интерфейса;
- обработка (регрессия, интерполяция, аппроксимация и вычисление основных статистических параметров) графических данных прямо из окна графики;
- новое приложение MATLAB для системы разработки Visual Studio, позволяющее автоматически, непосредственно из Microsoft Visual Studio, преобразовывать Си и Си++ коды в выполняемые MATLAB файлы (МЕХ - файлы);
- интеграция с системами контроля версий кода, такими как Visual Source Safe;
- новый интерфейс (последовательный порт) для обмена данными с внешним оборудованием из MATLAB;
- существенно обновленные пакеты расширения, в частности новые версии пакета моделирования динамических систем Simulink 4 и Real Time Workshop 4;
- интеграция с системами управления потребностями, например DOORS.
Сравнив первоначальную версию системы MATLAB 4.x и MATLAB 6, мы видим насколько последняя усовершенствовалась.
2. Системы линейных алгебраических уравнений в системе MatLab
Системой m линейных уравнений с n неизвестными называется система вида
где aij и bi (i=1,…,m; b=1,…,n) – некоторые известные числа, а x1,…,xn – неизвестные.
Способы решения систем линейных уравнений делятся на две группы:
- точные методы, представляющие собой конечные алгоритмы для вычисления корней системы (решение систем с помощью обратной матрицы, правило Крамера, метод Гаусса и др.).
- итерационные методы, позволяющие получить решение системы с заданной точностью путем сходящихся итерационных процессов (метод итерации, метод Зейделя и др.) [7].
2.1 Алгоритм решения систем линейных уравнений
Синтаксис:
X = B \ A
X = B / A
Описание:
Функция X = B \ A находит решение системы уравнений вида AX = B, где A - прямоугольная матрица размера m х n и B - матрица размера n х k.
Функция X = B / A находит решение системы уравнений вида XA = B, где A - прямоугольная матрица размера n х m и B - матрица размера m х k.
Алгоритм:
Решение систем
линейных уравнений вида X = A \ B и X = B
/ A реализовано в MATLAB с помощью
специального монитора, который использует
разные алгоритмы решения в
- Если A - треугольная матрица с точностью до перестановки ее строк или столбцов, то решение таких систем уравнений может быть эффективно вычислено методом обратной подстановки. Проверка матрицы, является ли она верхней треугольной, осуществляется для полных матриц проверкой на нуль всех элементов, лежащих ниже диагонали; для разреженных матриц - определением структуры ее элементов. Большинство матриц нетреугольной структуры выявляются почти мгновенно, так что такая проверка требует очень малого времени.
- Если матрица A - симметрическая или эрмитова с положительными диагональными элементами, то применяется разложение Холецкого (функция chol). Если A - разреженная матрица, применяется алгоритм упорядочения по разреженности (функции symmmd и spparms). Если при этом матрица A положительно определенна, то алгоритм Холецкого позволяет эффективно найти решение. Матрицы, не являющиеся положительно определенными, выявляются почти мгновенно. Разложение Холецкого имеет вид: A = L * LT, где LT - верхняя треугольная матрица. После этого решение Х можно получить решая последовательно две треугольные системы X = LT \ (L \ B).
- Если A - произвольная квадратная матрица, то треугольное разложение вычисляется методом исключения Гаусса с частичным выбором главного элемента (функция lu). Если A - разреженная матрица, применяется алгоритм упорядочения по разреженности столбцов (функции colmmd и spparms). В результате имеем следующее разложение: A = L * U, где L - нижняя, а U - верхняя треугольные матрицы. После этого решение Х можно получить решая последовательно две треугольные системы X = U \ (L \ B).
- Если A - прямоугольная полная матрица, то применяется QR-разложение на основе преобразований Хаусхолдера следующего вида A * P = Q * R, где P - матрица преобразований, Q - ортогональная и R - верхняя треугольная (функция qr) матрицы. Решение, соответствующее минимуму квадрата ошибки, находится согласно следующему соотношению X = P * (R \ (QT * B)).
- Если A - прямоугольная разреженная матрица, то формируется вспомогательная расширенная матрица следующего вида: S = [c*I A; AT 0]. Это реализуется с помощью функции spaugment. По умолчанию значение коэффициента масштабирования невязки c равно max(max(abs(A)))/1000 (функция spparms). Решение X в соответствии с методом наименьших квадратов и матрица невязок R = B - A * X вычисляются путем решения следующей системы: S * [R / c; X] = [B; 0] с использованием алгоритмов упорядочения по разреженности и исключения Гаусса с выбором главного элемента. Различные алгоритмы разложения матриц реализованы в системе MATLAB на основе ZGECO, ZGEFA и ZGESL для квадратных и процедур ZQRDC и ZQRSL для прямоугольных матриц из пакета LINPACK [1] [3].
2.2 Функции и операции системы MatLab для реализации
задач линейной алгебры
Система MatLab имеет библиотеку для реализации задач линейной алгебры. В ее составе можно выделить, в частности, следующие функции и операции [8].
D=det(A) - определитель (для квадратной матрицы);
R=rank(A) - ранг матрицы(число линейно независимых строк / cтолбцов);
T=norm(A) - норма матрицы ||A||2;
О=inv(A) - обращение матрицы (при близости матрицы к вырожденной выдаются предупреждения о ненадежности результатов); часто используется для решения системы АХ=В в форме:
Х= inv(A) *В;
X=B/A , X=A\B - решение системы АХ=В (B –матрица правой части):
» A=[1 2; 3 1] |
|
| ||||||||||
» X=A\B |
|
|||||||||||
» X=B'/A' |
X = 1 2 |
|||||||||||
» B=[5 13;5 17] |
| |||||||||||
» X=A\B |
|
R=chol(A) – разложение RTR положительно определенной симметрической действительной или комплексной эрмитовой (если Aij=a+bi, то Aji=a-bi) матрицы; R – верхняя треугольная матрица:
|
|
|

- Общая характеристика и задачи учёта расчётов по оплате труда
- Общая характеристика избирательной системы Российской Федерации.
- Общая характеристика и значение выручки от реализации продукции
- Общая характеристика и значение толкования права
- Общая характеристика и история развития банковской системы России
- Общая характеристика и классификация облигаций
- Общая характеристика и классификация преступлений в сфере экономической деятельности
- Общая характеристика зарубежной Европы
- Общая характеристика звеньев финансовой системы
- Общая характеристика зимних праздников и их художественных элементов
- Общая характеристика и анализ инвестиционной деятельности ООО СК «Согласие»
- Общая характеристика и биологическая роль пробиотиков
- Общая характеристика и виды преступлений в сфере компьютерной информации
- Общая характеристика и виды преступлений против собственности