Решение систем полиномиальных уравнений в scilab

Для того, чтобы оценить ресурс, необходимо авторизоваться.

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

матрица или вещественное число

Строка, имя символьной переменной. Если строка больше 4 символов, то из них учитываются только 4 первых.

символьная строка ( "roots" , "coeff" ), значение по умолчанию "roots" .

Также могут быть использованы сокращения: "r" для "roots" и "c" для "coeff" .

Описание

p является характеристическим полиномом, то есть determinant ( x * eye ( ) — a ) , где x является символьной переменной.

Если v — вектор, то

poly ( v , " x " , [ " roots " ] ) является полиномом с корнями, хранящимися в элементах v и "x" в качестве формальной переменной. (В этом случае roots и poly являются обратными функциями).

poly ( v , " x " , " coeff " ) создаёт полином с символом "x" и с коэффициентами, хранящимися в элементах v ( v ( 1 ) — постоянный член полинома). Здесь poly и coeff являются обратными функциями.

s = poly ( 0 , " s " ) является семенем для определения полиномов с символом "s" .


Решение задач линейной алгебры

Функции для нахождения числовых характеристик матриц

Для определения количества строк и столбцов матрицы М используют функцию size, аргументом которой является имя массива:

Если нужно определить количество только строк или только столбцов, то синтаксис функции модифицируется: добавляется второй аргумент, который имеет значение "1" или "r", если следует определить количество строк, "2" или "с" — если столбцов. Например:

Читайте также  Сколько знаков в предложении

Общее количество элементов матрицы или длину вектора вычисляет функция length, аргументом которой является имя матрицы или вектора:

Для определения максимального значения элемента матрицы или вектора используется функция max, аргументом которой является имя матрицы или вектора. Если нужно определить максимальное значение для каждого из строк или столбцов матрицы, то синтаксис функции модифицируется: добавляется второй аргумент, который имеет значение "r", если следует определить максимальное значение для каждой строки, или "c" — если для каждого столбца:

Аналогично используется функция min, предназначенная для определения минимального значения элемента матрицы или вектора.

Для вычисления определителя (детерминанта) квадратной матрицы используется функция det, аргументом которой является имя матрицы:

Для вычисления ранга матрицы используется функция rank, аргументом которой является имя матрицы:


Функции, реализующие численные алгоритмы решения задач линейной алгебры

Вычисление матрицы, обратной М

Напомним, что обратной по отношению к матрице М называется такая матрица, которая при ее умножении на матрицу М дает единичную матрицу.

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

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

После этого для решения системы используется функция linsolve, имеющая такой синтаксис:

где A — это матрица коэффициентов при неизвестных, b — вектор-столбец свободных коэффициентов.

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

Таким образом, решение системы линейных уравнений имеет вид:

Искомые значения: х1=5, х2=1.

Если система не имеет решения, то об этом выдается сообщение "WARNING: Conflicting linear constraints!" (Конфликтующие условия для линейных уравнений). Например, такая ситуация возникнет при попытке решения системы линейных уравнений :

Читайте также  Сканер штрих кодов для виндовс 10

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


Работа с полиномами

Напомним, что полиномом или алгебраическим уравнением называется уравнение вида ax n + a1x n-1 + . + an-1x + an.

Для создания полинома используется функция poly.

где р — это имя полинома (его можно и не задавать).

Аргументы функции: a — матрица или вещественное число, x — символьная переменная, "flag" — символьная переменная, которая определяет способ задания полинома и имеет значение "roots" (допускается сокращение "r") или "coeff" ("c"). По умолчанию — "roots". Если "roots" имеет значение "r", то полином создается с параметрами ai для соответствующих символьных переменных xi. Если "flag" имеет значение "c", то значения параметров ai воспринимаются как корни, для которых нужно рассчитать коэффициенты полинома.

Следующий пример демонстрирует использование функции poly для создания полиномов р1, который имеет корень "2" и р2 с коэффициентом "2":

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

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


Решение уравнения с одним неизвестным

Scilab может решать алгебраическое уравнение с одним неизвестным. Например, нужно найти корни уравнения x 2 = 1. Если — как в данном примере — уравнение не имеет вида полинома, то его следует предварительно преобразовать в полином: x 2 — 1 = 0. После этого используется функция roots, единственным аргументом которой является имя полинома. Функция возвращает найденные корни полинома.

Если уравнение не имеет решения на множестве вещественных чисел (x 2 + 1 = 0), то Scilab ищет решение среди комплексных чисел:

Вычисление сумм элементов матрицы

Для вычисления суммы значений элементов матрицы используется функция sum.

Читайте также  Программа для распечатывания конвертов

Если следует вычислить отдельно сумму значений для каждого столбца, то вторым аргументом функции является число "1" или буква "с", а если для строки, то — "2" или буква "r".


Вычисление произведения элементов матрицы

Для вычисления произведения используется функция prod.

Если следует вычислить отдельно произведение значений каждого столбца, то вторым аргументом функции является число "1" или буква "с", а если для строки, то — "2" или буква "r".


Дифференциалы

Для нахождения дифференциалов в определенной точке используется функция numdiff, первый аргумент которой является именем функции, которую нужно продифференцировать, а второй — координата точки, в которой нужно вычислить производную.

Ссылка на основную публикацию
Adblock
detector