Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Решение систем линейных уравненийСодержание книги
Поиск на нашем сайте
MATLAB позволяет работать с объектами линейной алгебры, т. е. векторами и матрицами, настолько просто, насколько это вообще возможно. Яркий пример этому – решение систем линейных уравнений. Пример: Пусть дана система линейных уравнений
Решить систему с применением оператора обратного деления матриц < \ >. Решение: В матричной записи система имеет вид Ах = b, где
A =, b =, х =
– соответственно матрица из коэффициентов при незвестных, вектор-столбец из свободных членов и вектор-столбец из неизвестных. Введем матрицу А и вектор-столбец свободных членов b: >> А=[1 3 0;-2 -2 5;1 0 -5] А = 1 3 0 -2 -2 5 1 0 -5 >> b=[-2;10;-9] b = -2 -9 Известно, что система имеет единственное решение, если определитель матрицы А не равен нулю (│ A │ = det(A) ≠ 0). Вычислим определитель матрицы А: >> disp(det(A)) -5 Определитель не равен нулю. Находим решение системы с помощью оператора обратного деления матриц < \ >: >> x=А\b x = -1 Проверим полученное решение x1 = 1, x2 = -1, x3 = 2 подстановкой в систему уравнений: >> disp(A*x) -2.0000 10.0000 -9.0000 В результате проверки получен вектор-столбец свободных членов. Значит, система решена верно. Найдем теперь решение системы х = A-1b с помощью обратной матрицы. Вначале вычислим обратную матрицу A-1: >> A1=inv(A) A1 = -2.0000 -3.0000 -3.0000 1.0000 1.0000 1.0000 -0.4000 -0.6000 -0.8000 Находим решение системы: >> A1*b ans = 1.0000 -1.0000 2.0000 Отметим, что решение системы с помощью обратной матрицы требует больше времени и памяти, к тому же этот способ может дать большую погрешность решения. Поэтому для решения линейных систем рекомендуется применять оператор обратного деления < \ >. Пример: Решить систему линейных уравнений
Решение: >> A=[1 3 0;-2 -2 5;1 0 5] A = 1 3 0 -2 -2 5 1 0 5 >> b=[-2 10 -9] b = -2 10 -9 >> disp(det(A)) Находим решение системы: >> x=A\b' x = -7.5714 1.8571 -0.2857 Заметим, что обратное деление произведено на вектор-столбец b', поскольку вектор b введен как вектор-строка. Получили приближенное решение системы. Вычислим обратную матрицу A-1: >> disp(inv(A)) -0.2857 -0.4286 0.4286 0.4286 0.1429 -0.1429 0.0571 0.0857 0.1143 Точное решение системы и точная обратная матрица выражаются через рациональные дроби: >> format rat >> x=A\b' x = -53/7 13/7 -2/7 >> disp(inv(A)) -2/7 -3/7 3/7 3/7 1/7 -1/7 2/35 3/35 4/35
Вопросы для самопроверки 1. Какие окна имеет интерфейс MATLAB и каково их назначение? 2. Какова структура командного окна Command Window? 3. Как называется отображение в командном окне сеанса работы с системой? На какие зоны подразделяется текстовое поле окна Command Window? 4. Для чего служат в MATLAB клавиши <↑> и <↓>? 5. Для чего применяется команда disp? 6. Как можно ввести слишком длинную команду в окне Command Window? 7. Какая информация сохраняется в окнах Command History и Workspase после применения команды очистки экрана clc? 8. Как получить справку по выбранной команде MATLAB? 9. В каких форматах представляются в MATLAB вещественные числа? 10. Какие форматы отображения вещественных чисел используются в MATLAB? 11. Как в в MATLAB осуществляются операции с комплексными числами? 12. В чем измеряются аргументы встроенных тригонометрических функций? 13. Какая команда осуществляет векторизацию символьного выражения? 14. Как MATLAB реагирует на ошибки ввода? 15. Как обнаружить и устранить семантическую ошибку ввода? 16. Как в MATLAB создаются векторы и матрицы? 17. Как осуществляется просмотр и редактирование переменных в окне Workspase? 18. Как в MATLAB осуществляются матричные и поэлементные операции над векторами и матрицами? 19. Что вычисляют команды dot и cross? 20. Как решается система линейных уравнений с помощью оператора обратного деления < \ >?
ГЛАВА 2 РАБОТА С МАССИВАМИ Эта глава знакомит с другими способами создания векторов и матриц. В ней рассмотрены способы формирования массивов специального вида, создания новых массивов на основе существующих. Мы также ознакомимся с возможностями MATLAB для решения типовых задач линейной алгебры. Создание векторов и матриц
Возможен ввод векторов в виде арифметических выражений, содержащих любые встроенные функции. Например: >> V=[2+2/(3+4),exp(5),sqrt(10)] V = 2.2857 148.4132 3.1623 Матрицы небольших размеров удобно вводить с командной строки следующим образом.. Вначале ставится открывающая квадратная скобка. Затем элементы каждой строки матрицы набираются через пробел или запятую, а ввод строки завершается нажатием на клавишу <Enter>. При вводе последней строки в конце ставится закрывающая квадратная скобка. Если после закрывающей квадратной скобки не ставить точку с запятой для подавления вывода в командное окно, то матрица выведется в виде таблицы. Пример: >> B=[1 3 0 -2 -2 5] B = 1 3 0 -2 -2 5 Еще один способ формирования векторных и матричных массивов в окне рабочего пространства Workspace рассмотрен в разделе 1.9. Если в матрице >> M=[1 2 3 4;5 6 7 8]; надо заменить элемент >> disp(M(2,3)) некоторым числом, например π, то это можно сделать так: >> M(2,3)=pi M = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 3.1416 8.0000 Обратите внимание на то, что если операция присваивания нового значения хотя бы одному элементу матрицы не завершена точкой с запятой, матрица М целиком выводится в командное окно. Присвоить можно и значение элементу матрицы, индексы которого превышают текущие ее размеры. В этом случае эти размеры будут соответственно увеличены, а остальные элементы такой расширенной матрицы будут заполнены нулями: >> A=[1 2] A = 1 2 >> A(2,3)=5 A = 1 2 0 0 0 5 Длинный вектор можно вводить частями, которые затем объединяются с помощью операции сцепления строк: >> V1=[1 2 3];V2=[4 5 6]; >> V=[V1 V2] V = 1 2 3 4 5 6 Для создания нового вектора из определенных в заданном порядке элементов другого вектора применяется индексация при помощи вектора. Запись в вектор W пятого, второго, первого и третьего элементов вектора V производится следующим образом: >> ind=[5 2 1 3]; >> W=V(ind) W = 5 2 1 3 Пусть в векторе из девяти элементов требуется заменить нулями элементы с третьго по седьмой. Эту задачу легко решить индексацией с помощью двоеточия. Например: >> P=[-1 0.1 2.2 3.4 5.6 3.1 6.8 9.7 5.5]; >> P(3:7)=0 P = -1.0000 0.1000 0 0 0 0 0 9.7000 5.5000 Указание номеров элементов вектора можно использовать и при вводе векторов, последовательно добавляя новые элементы (необязательно в порядке возрастания их номеров). Команды: >> h=10; >> h(2)=20; >> h(4)=40; приводят к образованию вектора: >> h h = 10 20 0 40 Заметим, что для ввода первого элемента h необязательно указывать его индекс, т. к. при выполнении оператора h=10 создается вектор (массив размера один на один). Следующие операторы присваивания приводят к автоматическому увеличению длины вектора h, а пропущенные элементы (в нашем случае h(3)) получают значение ноль. Массивы различаются по числу размерностей или измерений: одномерные, двумерные, многомерные. Размером массива называют число элементов вдоль каждого из измерений. Размер квадратной матрицы называется ее порядком. Введем следующие массивы A, B, V, U, a: >> A=[1,2;3,4],B=[1 2 3;4 5 6],V=[1 2 3],U=[1;2;3],a=5 A = 1 2 3 4 B = 1 2 3 4 5 6 V = 1 2 3 U = a = Команда size(A) выдает число строк и столбцов матрицы A: >> disp(size(A)) 2 2 >> disp(size(B)) 2 3 >> disp(size(V)) 1 3 >> disp(size(U)) 3 1 >> disp(size(a)) 1 1 Итак, A, B, V, U, a – массивы размеров 2×2, 2×3, 1×3, 3×1, 1×1 соответственно, причем A – квадратная матрица порядка 2. Команда ndims(A) выдает размерность массива A: >> disp(ndims(A)) >> disp(ndims(B)) >> disp(ndims(a)) >> disp(ndims(V)) Итак, A, B, a, V – массивы размерности 2 установленных ранее размеров. Команда length(V) выдает число элементов вектора V, т. е. его длину: >> disp(length(V)) В MATLAB можно создавать массивы размерности и выше 2. Пример: >> p(1,1,2)=1 p(:,:,1) = p(:,:,2) = >> disp(size(p)) 1 1 2 >> disp(ndims(p)) Таким образом введен массив p размерности 3 размера 1×1×2 с двумя элементами p(1,1,1) = 0 и p(1,1,2) = 1.
|
||||
Последнее изменение этой страницы: 2016-04-07; просмотров: 333; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.91.152 (0.008 с.) |