Система уравнений в маткаде матрицы

Система уравнений в маткаде матрицы

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

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:

Система уравнений в маткаде матрицы

Mathcad для студентов

Mathcad для начинающих

Скачать программы бесплатно

Решение системы линейных алгебраических уравнений матричным способом в Mathcad

Рассмотрим системы линейных алгебраических уравнений в Mathcad в векторно-матричной форме A*x =b, где А – квадратная матрица коэффициентов при неизвестных, причем определитель матрицы должен быть отличным от нуля; х- вектор неизвестных; b — вектор свободных членов. Решение данной сводится к следующему. Если определитель матрицы А отличен от нуля, то матрица А обратима. Тогда, умножив левую и правую часть и сходного уравнения на обратную матрицу (А-1), получаем решение в виде x=A-1*b. Реализовать полученное решение средствами Mathcad не представляет сложностей. Для случая бесконечного множества решений получаем сингулярную матрицу, Mathcad выдает сообщение “Matrix is singular. Cannot compute its inversу – Матрица сингулярная. Нельзя вычислить эту инверсию” и прерывает вычисления. На листинге представлен пример решения систем линейных алгебраических уравнений.

Решение системы линейных алгебраических уравнений методом Крамера в Mathcad

В Mathcad метод Крамера также предназначен для решения системы n линейных уравнений с n неизвестными вида A*x =b на основе предварительного вычисления определителей системы, при условии, что определитель матрицы А отличен от нуля. Метод основан на формулах Крамера, вида , где – определитель матрицы, полученной из матрицы А системы заменой i –го столбца, т.е. столбца коэффициентов при неизвестном Xi вектором свободных членов, т.е. b. На листинге в Mathcad приведен пример решения системы линейных алгебраических уравнений методом Крамера.

Матрицы и векторы в Mathcad

Операции, выполняемые над векторами и матрицами в Mathcad, можно разбить на две большие группы. К первой группе относятся операции, которые применяются к отдельным векторам и матрицами. Например, транспонирование матрицы или вычисление обратной матрицы в Mathcad. Ко второй группе относятся операции, которые выполняются над группой векторов и матриц. Как правило, они выполняются над двумя матрицами или матрицей и вектором. Например, сложение, вычитание матриц, перемножение матриц или умножение матрицы и вектора. К векторам и матрицам в Mathcad, при выполнении операций над ними, могут предъявляться определенные требования в соответствии с требованиями классической математики. Например, при перемножении матрицы и вектора, количество столбцов матрицы должно быть равно количеству срок вектора. Поэтому при работе с векторами и матрицами пользователь должен иметь необходимую математическую подготовку. В таблице приведены основные операции, выполняемые над векторами и матрицами, используемые в Mathcad. В таблице приняты следующие обозначение: А – массив, под которым понимается вектор или матрица, М – матрица, z — скаляр, v – вектор.

Наиболее удобно выполнять матричные вычисления с использованием кнопок панели инструментов “Матрица”. По умолчанию индексация строк и столбцов элементов матрицы начинается с 0. Для того чтобы индексация начиналась с 1, необходимо системной переменной ORIGIN присвоить значение 1. На листинге приведен пример матричных вычислений в Mathсad.

Матричные функции в Mathcad

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

Среди функций, предназначенных для создания матриц, следует выделить функцию matrix(L,N,f), где L – число строк матрицы, N – число столбцов матрицы, f – функция f(l,n) при . Другая функция из этой группы identity(n). Функция предназначена для создания единичной матрицы размерности n. Следующая функция geninv(M) позволяет осуществить обращение матрицы M, аналогично операции M -1 .

Для определения размерности матрицы в Mathcad предназначены функция rows(M), определяющая число строк матрицы M, и функция cols(M), определяющая число колонок матрицы M.

Сортировку элементов матрицы осуществляют две функции csort(M,i), rsort(M,j). Функция csort(M,i) обеспечивает сортировку по возрастанию элементов i – го столбца путем перестановки строк, а функция rsort(M,j) – сортировку по возрастанию элементов j –ой строки путем перестановки столбцов.

Для определения минимального и максимального элемента матрицы используются функции min(M) и max(M).

Выделить произвольную подматрицу из матрицы М в Mathcad можно посредством функции submatrix (M, r1, r2, c1, c2), где М – исходная матрица, r1 и r2 –нижний и верхний номер строки матрицы М, включаемых в результирующую подматрицу, а с1 и с2 – нижней и верхний номер столбца матрицы М, включаемых в результирующую подматрицу. Слияние матриц можно осуществить, используя функции augment(A,B,…) и stack(A,B,…). Функция augment(A,B,…) предназначена для слияния матриц А, В и т.д. слева направо. Причем количество строк в матрицах должно быть одинаково. Вторая функция stack(A,B,…) выполняет слияние матриц сверху вниз. Количество столбцов в матрицах должно быть также одинаково. Данные функции могут быть применены и к векторам. На листинге приведен пример использования рассмотренных матричных функций.

Матричные вычисления в Mathcad

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

Матричные функции

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

Основные операции с матрицами и векторами

Операции, выполняемые над векторами и матрицами, можно разбить на разные большие группы.

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

В Mathcad можно решать системы линейных алгебраических уравнений матричным способом.

Решение системы линейных алгебраических уравнений методом Крамера

Также предназначен метод Крамера для решения системы n линейных уравнений с n неизвестными.

23. Тема 6. Решение уравнений и систем. Краткие теоретические сведения

Для алгебраических уравнений вида F(x)=0 решение в MathCad находится с помощью функции Root.

Общий вид функции следующий:

F(х) – функция, описывающая левую часть выражения вида F(x)=0,

Х – имя переменной, относительно которой решается уравнение.

Функция позволяет найти как вещественные корни, так и комплексные. В случае комплексного корня начальное приближение нужно задать в виде комплексного числа.

Если после многих итераций Mathcad не находит подходящего приближения, то появится сообщение «отсутствует сходимость».

Эта ошибка может быть вызвана следующими причинами:

· уравнение не имеет корней;

· корни уравнения расположены далеко от начального приближения;

· выражение F(x) имеет разрывы между начальным приближением и корнем;

· выражение имеет комплексный корень, но начальное приближение было вещественным и наоборот.

Для изменения точности, с которой функция Root ищет корень, нужно изменить значение системной переменной TOL. Например, просле задания в документе оператора TOL:=0.00001 точность вычисления корня станет равной 0.00001.

Для нахождения корней полиномиального уравнения вида

В отличие от функции Root, Polyroots не требует начального приближения и вычисляет сразу все корни, как вещественные, так и комплексные.

Где V – вектор коэффициентов полинома длины N+1, n – степень полинома. Вектор V формируется следующим образом: в первый его элемент заносится значение коэффициента полинома при х0, т. е. V0, во второй элемент — значение коэффициента полинома при х1, т. е. V1 и т. д. Таким образом, вектор заполняется коэффициентами перед степенями полинома справа налево.

Функция вычисляет вектор длины N, состоящий из корней полинома.

На рисунке 2.6.1 приведены примеры вычисления корней уравнений с помощью функций Root и Polyroots.

Рисунок 2.6.1 – Примеры решения уравнений

MathCAD дает возможность решать системы уравнений и неравенств.

Наиболее распространенным методом решения уравнений в Mathcad является блочный метод. Для решения системы этим методом необходимо выполнить следующее:

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

Б) задать ключевое слово Given, которое указывает, что далее следует система уравнений;

В) ввести уравнения и неравенства в любом порядке (использовать кнопку логического равенства на панели знаков логических операций Для набора знака «=» в уравнении);

Г) ввести любое выражение, которое включает функцию Find.

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

После набора решающего блока Mathcad возвращает точное решение уравнения или системы уравнений.

Обратиться к функции Find можно несколькими способами:

X := Find(x1, x2,…) – формируется переменная или вектор, содержащий вычисленные значения корней.

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

Приближенное решение уравнения или системы можно получить с помощью функции Minerr.

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

Примеры решения систем уравнений с помощью решающего блока приведены на рисунке 2.6.2.

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

Матричный метод решения системы линейных уравнений реализован в функции Lsolve. Общий вид функции:

Где А – матрица коэффициентов перед неизвестными, B – вектор свободных членов.

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

Рисунок 2.6.2 – Примеры решения систем уравнений

Из рисунка 6.2 видно, что при решении системы уравнений блочным методом можно получить численные значения корней системы уравнений, без присваивания и с присваиванием их в переменные x1 и x2. При решении системы уравнений матричным методом продемонстрированы два варианта: с использованием стандартной функции Lsolve и обратной матрицы.


источники:

http://allmathcad.com/ru/vsjo-o-mathcad/24-vsjo-o-mathcad/matrichnye-vychisleniya.html

http://matica.org.ua/metodichki-i-knigi-po-matematike/reshenie-zadach-v-srede-mathcad/23-tema-6-reshenie-uravnenii-i-sistem-kratkie-teoreticheskie-svedeniia