Добавил:
kostikboritski@gmail.com Выполнение курсовых, РГР технических предметов Механического факультета. Так же чертежи по инженерной графике для МФ, УПП. Писать на почту. Дипломы по кафедре Вагоны Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
72
Добавлен:
12.08.2017
Размер:
8.79 Mб
Скачать
      1. Решение полиномиальных уравнений. Функцияpolyroots

Для решения полиномиальных уравнений вида

или нахождения всех корней полинома степени n, используют функцию

polyroots(v),

возвращающую вектор-столбец длины n, состоящий из корней полинома, как действительных, так и комплексных. Аргументом функцииpolyrootsявляется векторvдлиныn + 1< 100, содержащий коэффициенты полинома.

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

  1. задать полином;

  2. выделить переменную синим управляющим курсором;

  3. создать вектор коэффициентов полинома, выполнив последовательность команд главного меню Symbolics / Polynomial Coefficients(Символика/Коэффициенты полинома);

  4. вырезать вектор коэффициентов полинома в буфер обмена;

  5. задать переменную vи присвоить ей значение вектора коэффициентов полинома, вставив его непосредственно из буфера обмена;

  6. применить функцию polyroots(v)в каком-нибудь выражении, например,;

  7. получить вектор корней полинома: =.

Доступ к каждому отдельному корню − элементу вектора X− осуществляется с помощью индекса, например,Xi =.

Пример 4.7.Решить уравнение.

Решение.

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

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

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

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

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

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

В матричном виде ее можно записать Ax = b, где

– матрица коэффициентов при неизвестных системы (матрица левой части системы);

− столбец свободных членов.

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

Умножим обе части матричного уравнения Ax = bна обратную матрицу коэффициентов при неизвестных системыA-1слева:. Учитывая, что, вектор-столбец решений системы можно искать в виде

.

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

  1. задается матрица коэффициентов при неизвестных системы A;

  2. задается столбец свободных членов b;

  3. вводится формула для нахождения решения системы ;

  4. выводится вектор решений системы .

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

lsolve(A, b),

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

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

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

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

Решение.

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

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

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

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

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

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

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

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

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

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

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

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

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

Решение системы с помощью функции rrefможно представить так:

В последнем случае матрица AR, полученная путем объединения матрицы при неизвестных системы и столбца свободных членов, является расширенной матрицей системы.

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

Соседние файлы в папке экзамен информатика