Как решить систему линейных уравнений в маткаде

Как решить систему линейных уравнений в маткаде

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

где A – неособая квадратная матрица,b – заданный числовой вектор,X – искомый вектор.

Вектор решения Xможно получить следующими способами: 1) с помощью обратной матрицы:X=A -1 *B; 2) применением встроенной функцииMathСadlsolve,, а также Find иMinner; 3) по формулам Крамера; 4) сведением к задаче линейного программирования, когда минимизируется невязка левой и правой части водном из уравнений, а остальные уравнения являются ограничениями. При этом используется функцияMathсadFind Minimized, либо программа «Поиск решения» вExcel.

Решение систем уравнений в Mathсad:

1) Решение систем линейных уравнений матричным методом

Рассмотрим систему 4 линейных алгебраических уравнения относительно 4 неизвестных х1, х2, …, х4:

или матричном виде:

Ах=b, гдеA:=;b:=.

Если det A 0, то система и эквивалентное ей матричное уравнение имеет единственное решениех:=А -1 b.

2) Решение систем уравнений с помощью функции lsolve

Системы линейных уравнений удобно решать с помощью функции lsolve. Функцияlsolve(А,b) — возвращает вектор решенияxтакой, чтоАх = b.

x= .

3) Решение систем уравнений с помощью функций Find и Minner

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

1. Задать начальное приближение для всех неизвестных, входящих в систему уравнений, т.к. Mathсadрешает эту систему с помощью итерационных методов;

2. Напечатать ключевое слово Given. Оно указываетMathсad, что далее следует система уравнений;

3. Введите уравнения и неравенства в любом порядке. Используйте[Ctrl]+=(т.е. одновременное нажатие двух клавишCtrl и =)для печати символа =. Между левыми и правыми частями неравенств может стоять любой из символов , и панелилогика;

4. Введите любое выражение, которое включает функцию Find, например:х:= Find(х,у).

Ключевое слово Given, уравнения и неравенства, которые следуют за ним, и какое — либо выражение, содержащее функциюFind,называютблоком решения уравнений.

Пример.Решение системы уравнений с помощью функцииFind

Find(x1, x2, x3,x4) =

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

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

РЕШЕНИЕ УРАВНЕНИЙ И СИСТЕМ УРАВНЕНИЙ

4 Решение уравнений и систем средствами Mathcad

Система Mathcad обладает широкими возможностями численного решения уравнений и систем уравнений.

Функция root, блоки Given…Find, Given…Minerr

В ходе численного решения обычно выделяют два этапа:

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

Точность нахождения корня устанавливается с помощью системной переменной TOL (Convergence Tolerance – Допуск сходимости), которая по умолчанию равна 10 -3 . Чем меньше значение TOL, тем точнее, вообще говоря, находится корень уравнения. Однако оптимальным является TOL = 10 -5 . Переопределить значение TOL можно в окне математических свойств документа Math Options на вкладке Build-In Variables (Встроенные переменные) или присваиванием, например, TOL:=0.0001.

Читайте также:  Научные роты в армии

Для решения одного уравнения с одной неизвестной предназначена встроенная функция root, которая в общем виде задается

root(f(x), x, [a, b])

и возвращает значение переменной x, при котором функция f(x) обращается в ноль. Аргументы функции root:

  • f(x) – функция левой части уравнения f(x) = 0;
  • x – переменная, относительно которой требуется решить уравнение;
  • a, b (необязательные) – действительные числа, такие что a -1 слева: A -1 Ax=A -1 b. Учитывая, что A -1 A, вектор-столбец решений системы можно искать в виде

Этот прием используется в Mathcad так:

  1. задается матрица коэффициентов при неизвестных системы A;
  2. задается столбец свободных членов b;
  3. вводится формула для нахождения решения системы X:=A -1 b;
  4. выводится вектор решений системы X=.

Кроме того, пакет Mathcad имеет встроенную функцию

lsolve(A, b),

возвращающую вектор-столбец решений системы линейных алгебраических уравнений. Аргументами функции lsolve являются матрица коэффициентов при неизвестных системы и столбец свободных членов. Порядок решения аналогичен рассмотренному, но вместо формулы X:=A -1 b используется X:=lsolve(A, b).

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

Решение системы линейных уравнений можно осуществить с помощью блоков Given…Find, Given…Minerr. При этом неизвестным системы задается произвольное начальное приближение, а проверка необязательна.

Порядок выполнения лабораторной работы

  1. Загрузить Mathcad Start / All Programs / Mathsoft Apps / Mathcad (Пуск / Все программы / Mathsoft Apps / Mathcad).
  2. Сохранить в личной папке на диске z: новый документ с именем ФИО1, лучше использовать латинские буквы. Производить сохранение регулярно в процессе работы (Ctrl + S).
  3. Вставить текстовую область Insert / Text Region (Вставка / Область текста) и ввести в поле документа текст:

Лабораторная работа № 4
Решение уравнений и систем в Mathcad.

  1. В новой текстовой области ввести фамилию, имя, отчество, учебный шифр и номер варианта.
  2. Выполнить задание 1.

Задание 1. Решить уравнение .

Решение.

Решение данного уравнения будем проводить в два этапа: отделение корней уравнения графически, уточнение корней уравнения.

Определим функцию f(x), равную левой части данного уравнения, когда правая равна нулю:

Зададим ранжированную переменную x на некотором диапазоне с мелким шагом, например:

Вставим в документ графическую область. Для этого выберем дважды пиктограмму с изображением графика сначала на панели Math (Математика), затем на палитре графиков Graph или выполним из главного меню последовательность команд Insert / Graph / X-Y Plot (Вставка / График / X-Y Зависимость).

Снизу по оси абсцисс наберем x, а сбоку по оси ординат введем f(x).

Для появления графика щелкнем левой клавишей мыши вне графической области.

Отформатируем график функции f(x). Для этого щелкнем правой клавишей мыши в области графика и выберем в контекстном меню команду Format (Формат). Установим пересечение осей графика (CrossedТолько оси), добавим вспомогательные линии по координатным осям (Grid LinesВспомогательные линии). Отменим при этом автосетку (AutogridАвтосетка) и установим количество линий сетки, равное 10.

Читайте также:  Самокат электрический взрослый мощный

Для подтверждения внесенных изменений нажмем последовательно кнопки Apply (Применить) и ОК.

После указанных преобразований график функции f(x) будет выглядеть следующим образом:

Из графика функции f(x) видно, что уравнение имеет три корня, которые приблизительно равны: x1 ≈ -1; x2 ≈ 1; x3 ≈ 2,5.

Этап отделения корней завершен.

Уточним теперь корни уравнения с помощью функции root.

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

Уточним заданное приближение к значению корня с помощью функции root:

Выполним проверку, подтверждающую, что первый корень найден с заявленной точностью:

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

Задание 2. Решить уравнение .

Решение.

Напечатаем левую часть уравнения, не приравнивая выражение к 0, и выделим синим курсором переменную x:

Выберем из главного меню Symbolics / Polynomial Coefficients (Символика / Коэффициенты полинома). Появившийся вектор коэффициентов полинома выделим целиком синим курсором и вырежем в буфер обмена, используя кнопку Вырезать на панели инструментов Formatting (Форматирование) или комбинацию клавиш Ctrl + X.

Напечатаем v := и вставим вектор из буфера обмена, используя кнопку Вставить на панели инструментов или комбинацию клавиш Ctrl + V.

Для получения результата напечатаем polyroots(v) =:

Задание 3. Решить систему линейных уравнений Сделать проверку.

Решение.

1-й способ. Использование блока Given … Find.

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

Напечатаем слово Given. Установим визир ниже и наберем уравнения системы, каждое в своем блоке. Используем при этом логический знак равенства (Ctrl + =).

После ввода уравнений системы напечатаем X := Find(x, y, z) и получим решение системы в виде вектора, состоящего из трех элементов:

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

После набора знака «=» в каждой строке должен быть получен результат, равный или приблизительно равный правой части системы. В данном примере системная переменная ORIGIN = 1.

2-й способ. Использование блока Given…Minerr.

Порядок решения системы этим способом аналогичен порядку использования блока Given … Find и представлен ниже вместе с проверкой:

3-й способ. Решение системы линейных уравнений матричным способом.

Создадим матрицу А, состоящую из коэффициентов при неизвестных системы. Для этого напечатаем A := , вызовем окно создания массивов (Ctrl + M). Число строк (Rows) и столбцов (Columns) матрицы данной системы равно 3. Заполним пустые места шаблона матрицы коэффициентами при неизвестных системы, как показано ниже:

Зададим вектор b свободных членов системы. Сначала напечатаем b :=, затем вставим шаблон матрицы(Ctrl + M), где количество строк (Rows) равно 3, а количество столбцов (Columns) равно 1. Заполним его:

Решим систему матричным способом по формуле

Решим систему с помощью функции lsolve:

Для проверки правильности решения системы, полученного матричным способом, достаточно вычислить произведение A·X, которое должно совпасть с вектором-столбцом свободных членов b:

В этом уроке мы рассмотрим применение векторов и матриц, а именно решение систем линейных уравнений.

Читайте также:  Клип лысая девушка ковбой

Пример

Есть система трех линейных уравнений с тремя неизвестными:

Традиционный метод решения таких систем – последовательное исключение переменных. Например, мы можем сложить (1) и (3), затем (2) и (3):

Затем, используя (4):

Линейные уравнения можно решить с помощью векторов и матриц. Запишем левую часть уравнений (1), (2) и (3) как произведение матрицы коэффициентов A на вектор решений X:

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

Краткая запись системы уравнений:

Тогда решение можно найти:

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

Расчет цепи постоянного тока

Цепь состоит из резисторов и источников ЭДС. Необходимо определить токи во всех ветвях цепи:

Примем значения сопротивлений и ЭДС:

Запишем уравнения для контуров I, II и III, исходя из второго правила Кирхгофа:

Для узлов a, b и c запишем уравнения по первому правилу Кирхгофа:

Запишем матрицу A, содержащую коэффициенты при токах, а в вектор b – правые части уравнений:

Решение системы уравнений:

Решение X можно найти по-другому – с помощью функции lsolve(A,B):

Линейные уравнения

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

Можно записать как:

Решение – точка (0,1), и здесь проблем не возникло:

Это обычный случай. Интересно вычислить определитель матрицы коэффициентов:

Он не равен нулю. Теперь поменяем второе уравнение системы и попробуем найти решение:

Система имеет бесконечное множество решений:

Определитель матрицы коэффициентов:

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

В третьем варианте изменим константу во втором уравнении:

Здесь нет решений: две прямые параллельны:

Как Вы догадывались, определитель снова равен нулю:

Поведение большего числа уравнений аналогично.

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

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

Резюме

  1. Система линейных уравнений обычно имеет своим решением столько переменных, сколько самих уравнений.
  2. Небольшие системы линейных уравнений могут быть решены последовательным исключением переменных.
  3. Для больших систем уравнений нужна краткая запись. Мы использовали векторы и матрицы. Левая часть уравнений является произведением матрицы коэффициентов A на вектор решений x, правая часть – это вектор решений b. Решение: .
  4. С помощью матриц и векторов мы решили задачу цепи постоянного тока.
  5. Решение не будет найдено, если матрица коэффициентов сингулярна.
Ссылка на основную публикацию
Как разделить компьютер на 2 монитора
В создании этой статьи участвовала наша опытная команда редакторов и исследователей, которые проверили ее на точность и полноту. Количество источников,...
Как посчитать процент скидки в excel
Почти в каждой сфере деятельности мы сталкиваемся с необходимостью уметь считать проценты. Чаще всего навыки вычисления процентов нам нужны при...
Как починить дорожку на плате
Макс Любин Давайте разбираться, что это за ноги, что за пятаки и что с ними делать. Пятаками часто называют контактные...
Как разложить вектор по базису других векторов
Вектор является элементом векторного пространства. Коллинеарные векторы принадлежат одной или двум параллельным прямым. Могут быть противо- и сонаправленными. Из произвольно...
Adblock detector