Операции с матрицами в MATLAB: теория и практика


Тип работы:  Курсовая работа
Бесплатно:  Антиплагиат
Объем: 29 страниц
В избранное:   

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ КАЗАХСТАН

КАЗАХСКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ имени К. И. САТПАЕВА

КАФЕДРА ТЕХНИЧЕСКОЙ КИБЕРНЕТИКИ

КУРСОВАЯ РАБОТА

Тема: Операции с матрицами

РУКОВОДИТЕЛЬ

Доцент Муртазина А. У.

Студент Омарбекова А.

СПЕЦИАЛЬНОСТЬ 3704-ВМ

Алматы 2005 г.

Введение
3
Введение: 1
3: Постановка задачи
4
Введение: 2
3: Теоретические сведения
5
Введение: 2. 1
3: Системы линейных уравнений
5
Введение: 2. 2
3: Методы решения линейных уравнений
6
Введение: 2. 3
3: Прямые методы
7
Введение: 2. 4
3: Итерационные методы
10
Введение: 3
3: Использование пакета MatLab
10
Введение: 3. 1
3: Создание матриц с заданными свойствами
10
Введение: 3. 2
3: Матричные операции линейной алгебры
19
Введение: 4
3: Примеры решения задач в «MatLab»
29
Введение: 5
3: Заключение
32
Введение: 6
3: Список использованной литературы
34
Введение:
3:
Введение:
3:
Введение:
3:
Введение:
3:
Введение:
3:
Введение:
3:
Введение:
3:
Введение:
3:
Введение:
3:
Введение:
3:
Введение:
3:
Введение:
3:
Введение:
3:
Введение:
3:

Содержание

Введение

В данной работе рассматривается обработка матриц в системе MATLAB. Эта система прошла многолетний путь развития от узко специализированного матричного программного модуля, используемого только на больших ЭВМ, до универсальной интегрированной СКМ, ориентированной на массовые персональные компьютеры класса IBM PC и Macintosh и рабочие станции UNIX и имеющей мощные средства диалога, графики и комплексной визуализации. В наши дни компьютерная математика получила должную известность и интенсивно развивается как передовое научное направление на стыке математики и информатики. Программируемые микрокалькуляторы и персональные компьютеры уже давно применяются для математических расчетов. Для подготовки программ использовались различные универсальные языки программирования. В начале 90-х гг. на смену им пришли специализированные системы компьютерной математики (СКМ) . Среди них наибольшую известность получили системы Eureka, Mercury, Mathcad, Derive, Mathematica 2/3/4, Maple V R3/R4/R5 и Maple 6 и др.

Система MATLAB предлагается разработчиками (фирма Math Works, Inc. ) как лидирующий на рынке, в первую очередь в системе военно-промышленного комплекса, в аэрокосмической отрасли и автомобилестроении, язык программирования высокого уровня для технических вычислений с большим числом стандартных пакетов. прикладных программ.

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

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

  1. Постановка задачи

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

2. Теоретические сведения

2. 1. Системы линейных уравнений

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

Запишем систему n линейных алгебраических уравнений с n неизвестными:

a 11 x 1 +a 12 x 2 + . . . +a 1n x n = b 1,

a 21 x 1 +a 22 x 2 +…+a 2n x n = b 2, (1. 1)

a n1 x 1 +a n2 x 2 +…+a nn x n = b n .

Совокупность коэффициентов этой системы запишем в виде таблицы:

Equation. 3 (1. 2)

Данная таблица n 2 элементов, состоящая из n строк и n столбцов,

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

Используя понятие матрицы А, систему уравнений (1. 1) можно записать в матричном виде:

AX=B, (1. 3)

где Х и В - вектор - столбец неизвестных и вектор - столбец правых частей соответственно:

, .

2. 2. Методы решения линейных уравнений

Методы решения систем линейных уравнений делятся на две группы - прямые и итерационные.

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

Вместе с тем прямые методы имеют и ряд недостатков. Как правило, они требуют хранения в оперативной памяти сразу всей матрицы, и при больших значениях n расходуется много места и памяти. Далее, прямые методы обычно не учитывают структуру матрицы - при большом числе нулевых элементов в разреженных матрицах (например, клеточных или ленточных) эти элементы занимают место в памяти машины, и над ними проводятся арифметические действия. Существенным недостатком прямых методов является также накапливание погрешностей в процессе решения, поскольку вычисления на любом этапе используют результаты предыдущих операций. Это особенно опасно для больших систем, когда резко возрастает общее число операций, а также для плохо обусловленных систем, весьма чувствительных к погрешностям. В связи с этим прямые методы используются обычно для сравнительно небольших (n<200) систем с плотно заполненной матрицей и не близким к 0 определителем.

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

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

2. 3. Прямые методы

Правило Крамера является одним из способов решения линейных уравнений, согласно которому каждое неизвестное представляется в виде отношения определителей. Запишем его для системы

a 1 x+b 1 y=c 1,

a 2 x+b 2 y=c 2

Тогда

x = D 1 /D, y = D 2 /D, (1. 4)

Equation. 3, Equation. 3, Equation. 3 .

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

Метод Гаусса. Он основан на приведении матрицы системы к треугольному виду. Это достигается последовательным исключением неизвестных из уравнений системы. Сначала с помощью первого уравнения исключается х 1 из всех последующих уравнений системы. Затем с помощью второго уравнения исключается х 2 из третьего и всех последующих уравнений. Этот процесс, называемый прямым ходом метода Гаусса, продолжается до тех пор, пока в левой части последнего (n-го) уравнения не останется лишь один член с неизвестным x n , т. е. матрица системы будет приведена к треугольному виду.

Обратный ход метода Гаусса состоит в последовательном вычислении искомых неизвестных: решая последнее уравнение, находим единственное неизвестное x n . Далее, используя это значение, из предыдущего уравнения x n -1 и т. д. Последним найдем х 1 из первого уравнения.

, (1. 5)

Матрица системы (1. 5) имеет треугольный вид. На этом заканчивается прямой ход метода Гаусса.

Обратный ход начинается с решения третьего уравнения системы (1. 6) :

(1. 6)

Используя это значение, можно х 1 из второго уравнения, а затем х 1 из первого:

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

Метод Гаусса целесообразно использовать для решения систем с плотно заполненной матрицей. Все элементы матрицы и правые части системы уравнений находятся в оперативной памяти машины. Объем вычислений определяется порядком системы n: число арифметический операций примерно равно(2/3) n 2 .

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

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

Здесь диагональные элементы a kk берутся из преобразованной( а не исходной) матрицы. Знак зависит от того, четной или нечетной была суммарная перестановка строк (или столбцов) матрицы при ее привидении к треугольному виду (для получения ненулевого или максимального по модулю ведущего элемента на каждом этапе исключения) . Благодаря методу исключения можно вычислить определители 100-го и большего порядков, и объем вычислений значительно меньший, чем в проведенных ранее оценках.

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

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

Среди прямых методов наиболее распространен метод Гаусса; он удобен для вычислений на компьютере. Перечислим некоторые другие методы.

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

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

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

2. 4. Итарационные методы

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

(1. 7)

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

3. Использование пакета MatLab

3. 1Создание матриц с заданными свойствами

Создание единичной матрицы

Для создания единичной матрицы (она обычно обозначается как Е) служит функция eye:

  • еуе(n) - возвращает единичную матрицу размера nrn;
  • eye(m. n) или еуе([m n] ) - возвращают матрицу размера mm с единицами по диагонали и нулями в остальных ячейках;
  • eye(size(A) ) - возвращает единичную матрицу того же размера, что и А.
  • Единичная матрица не определена для многомерных массивов. Так, функция у = eye([2, 3, 4] ) при попытке ее вычисления приведет к ошибке.

Создание матрицы с единичными элементами

Для создания матриц, все элементы которых - единицы, используется функция ones:

  • ones(n) - возвращает матрицу размера nхn, все элементы которой - единицы. Если п - не скаляр, то появится сообщение об ошибке;
  • ones(m. n) или ones([m п] ) - возвращают матрицу размера mxn, состоящую из единиц;
  • ones(dl. d2, d3 . . . ) или ones([dl1 d2 d3 . . . ] ) - возвращает массив из единиц с размером d1xd2xd3x . . . ;

ones(size(A) ) - возвращает массив единиц той же размерности и размера, что и А. Матрица с единичными элементами в отличие от единичной матрицы в MATLAB определена и для многомерных массивов

Создание матрицы с нулевыми элементами

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

  • zeros(п) - возвращает матрицу размера nхn, содержащую нули. Если n - не скаляр, то появится сообщение об ошибке;
  • zeros(m. n) или zeros([m n] ) - возвращают матрицу размера mxn, состоящую из нулей;
  • zeros(d1. d2, d3, . . . ) или zeros([d1. d2. d3 . . . ] ) - возвращают массив из нулей размера d1xd2xd3x . . . ;
  • zeros(size(A) ) - возвращает массив нулей того же размера и размерности, что и А.

Создание линейного массива равноотстоящих точек

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

  • llnspace(a. b) - возвращает линейный массив из 100 точек, равномерно распределенных между а и b;
  • linspace(a, b, n) - генерирует п точек, равномерно распределенных в интервале от а до b.

Создание массивов со случайными элементами

  • р = randperm(n) - возвращает случайные перестановки целых чисел 1:n в векторе-строке. Пример:

» randperm(6)

ans =

243651

Функция rand генерирует массивы случайных чисел, значения элементов которых равномерно распределены в промежутке (0, 1) :

  • rand(n) - возвращает матрицу размера nхn. Если n - не скаляр, то появится сообщение об ошибке;
  • rand(m. n) или rand([m п] ) - возвращают матрицу размера mxn;
  • rand(m. n, p . . . ) или rand([m n р . . . ] ) - возвращает многомерный массив;
  • rand(size(A) ) - возвращает массив того же размера и размерности, что и А, с элементами, распределенными по равномерному закону;
  • rand (без аргументов) - возвращает одно случайное число, которое изменяется при каждом последующем вызове и имеет равномерный закон распределения;
  • rand(' state') - возвращает вектор с 35 элементами, содержащий текущее состояние генератора случайных чисел с равномерным распределением. Для изменения состояния генератора можно применять следующие формы этой функции:rand('state' . s) - устанавливает состояние в s; rand( 'state', 0) - сбрасывает генератор в начальное состояние; rand( 'state'. j) - для целых j, устанавливает генератор в j-е состояние; rand( 'state', sum(100*clock) ) - каждый раз сбрасывает генератор в состояние, зависящее от времени.

Конкатенация матриц

Конкатенацией называют объединение массивов, которое реализует следующая функция.

  • С = cat (dim, А, В) - объединяет массивы А и В в соответствии со спецификацией размерности dim и возвращает объединенный массив; dim = 1 - горизонтальная конкатенация, dim = 2 - вертикальная, dim = 3 - многомерный массив размерности 3 и т. д. ;
  • С = cat(dim, Al, A2, A3, A4, . . . ) объединяет все входные массивы (А1, А2, A3, А4 и т. д. ) в соответствии со спецификацией размерности dim и возвращает объединенный массив;
  • cat(2. A, B) - это то же самое, что и [А, В], асаt(, А, В) -то же самое, что и [А; В] . При записи cat (dim, С (:) ) или cat (dim, С. field) эта функция применима к массивам ячеек или структур, содержащим численные матрицы.

Создание матриц с заданной диагональю

Свойства матриц сильно зависят от их диагональных элементов. Следующая функция MATLAB позволяет создавать специальные типы матриц с заданными диагональными элементами:

X = diag(v. k) - для вектора v, состоящего из п компонентов, возвращает квадратную матрицу X порядка n+abs(k) с элементами v на k-й диагонали, при k=0 -это главная диагональ (из левого верхнего угла матрицы в правый нижний угол), при k>0 - одна из диагоналей (диагональ в терминологии MATLAB - это линия, параллельная главной диагонали) выше главной диагонали, при k<0 - одна из нижних диагоналей. Остальные элементы матрицы - нули;

  • X = diag(v) - помещает вектор v на главную диагональ (то же. что и в предыдущем случае при k=0) ;
  • v = diag(X. k) - для матрицы X возвращает вектор-столбец, состоящий из элементов n-й диагонали матрицы X;
  • v = diag(X) - возвращает главную диагональ матрицы X (то же, что и в предыдущем случае при k=0) .

Перестановки элементов матриц

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

  • В = fiiplr(A) - зеркально переставляет столбцы матрицы А относительно вертикальной оси.
  • В = flipud(A) - зеркально переставляет строки матрицы А относительно горизонтальной оси.
  • perms(v) - возвращает матрицу Р, которая содержит все возможные перестановки элементов вектора v. каждая перестановка в отдельной строке. Матрица Р содержит n! строк и n столбцов.

Вычисление произведений

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

... продолжение

Вы можете абсолютно на бесплатной основе полностью просмотреть эту работу через наше приложение.
Похожие работы
Операции над матрицами и их реализация на языке Java
Курсовая работа по теме Работа с векторами в MATLAB
Алгоритмы решения задач вариационного исчисления в системе MATLAB
Обработка векторов в MATLAB и основы векторной алгебры
Управление рисками операций с золотовалютными резервами центральных банков: теория, международный опыт и практика России и Казахстана
Депозитные (вкладочные) операции банка: теория, виды и практика в Республике Казахстан
Анализ хаотических режимов и компенсаторного управления в моделях взаимодействия популяций с реализацией в MATLAB/Simulink
Электропривод бурового станка с частотным регулированием: расчет, моделирование в MATLAB и обеспечение промышленной безопасности
Депозитная политика коммерческих банков Казахстана: теория, практика и учет вкладных операций
Функции и операции коммерческих банков в кредитной системе: теория и практика в России
Дисциплины



Реферат Курсовая работа Дипломная работа Материал Диссертация Практика - - - 1‑10 стр. 11‑20 стр. 21‑30 стр. 31‑60 стр. 61+ стр. Основное Кол‑во стр. Доп. Поиск Ничего не найдено :( Недавно просмотренные работы Просмотренные работы не найдены Заказ Антиплагиат Просмотренные работы ru ru/