2. Программирование в среде MatLab
В системе MatLAB предусмотрены некоторые дополнительные возможности математического оперирования с полиномами. Полином (многочлен) как функция определяется выражением:
P(x)= a n · x n +... +a2 ·x2+ a1 ·x+ a0
В системе MatLAB полином задается и сохраняется в виде вектора, элементами которого являются коэффициенты полинома от an до a0 в указанном порядке:
P = [an ... a2 a1 a0 ] .
Введение полинома в MatLAB осуществляется так же, как и ввод вектора длиной n+1, где n - порядок полинома.
Умножение полиномов. Произведением двух полиномов степеней n и m соответственно, как известно, называют полином степени n+m, коэффициенты которого определяют простым перемножением этих двух полиномов. Фактически операция умножения двух полиномов сводится к построению расширенного вектора коэффициентов по заданным векторам коэффициентов полиномов-сомножителей. Эту операцию в математике называют сверткой векторов (а сам вектор, получаемый в результате такой процедуры - вектором-сверткой двух векторов). В MatLAB ее осуществляет функция conv(P1, P2).
Аналогично, функция deconv(P1, P2) осуществляет деление полинома P1 на полином P2, т. е. обратную свертку векторов P1 и P2. Она определяет коэффициенты полинома, который является частным от деления P1 на P2.
Пример:
» p1 = [1,2,3]; p2 = [1,2,3,4,5,6];
» p = conv(p1,p2)
p = 1 4 10 16 22 28 27 18
» deconv(p,p1)
ans = 1 2 3 4 5 6
В общем случае деление двух полиномов приводит к получению двух полиномов - полинома-результата (частного) и полинома-остатка. Чтобы получить оба этого полинома, следует оформить обращение к функции таким образом:
[Q,R] = deconv(B,A) .
Тогда результат будет выдан в виде вектора Q с остатком в виде вектора R таким образом, что будет выполненное соотношение
B = conv(A,Q) + R.
Система MatLAB имеет функцию roots(P), которая вычисляет вектор,элементы которого являются корнями заданного полинома Р.
Пусть нужно найти корни полинома:
P(x) = x5 + 8x4 + 31x3 + 80x2 + 94x + 20.
Ниже показано, как просто это сделать:
» p = [1,8,31,80,94,20]; » disp(roots(p))
-1.0000 + 3.0000i
-1.0000 - 3.0000i
-3.7321
-2. 0000
-0. 2679
Обратная операция - построение вектора р коэффициентов полинома по заданному вектору его корней - осуществляется функцией poly: p = poly(r).
Здесь r - заданный вектор значений корней, p - вычисленный вектор коэффициентов полинома. Приведем пример:
» p = [1,8,31,80,94,20]
p = 1 8 31 80 94 20
» r = roots(p)
r =
-1.0000 + 3.0000i
-1.0000 - 3.0000i
-3.7321
-2. 0000
-0. 2679
» p1 = poly(r)
p1 =8. 0000 31. 0000 80. 0000 94. 0000 20. 0000
Заметим, что получаемый вектор не показывает старшего коэффициента, который по умолчанию полагается равным единице.
Yandex.RTB R-A-252273-3
- Лабораторная работа № 1 основы программирования в пакете прикладных программ matlab
- 1. Использование matlab в качестве научного калькулятора
- 1.1. Операции с числами
- 1.1.1. Ввод действительных чисел
- 1.1.2. Простейшие арифметические действия
- 1.1.3. Ввод комплексных чисел
- 1.1.4. Элементарные математические функции
- 1.1.5. Специальные математические функции
- 1.1.6. Элементарные действия с комплексными числами
- 1.1.7. Функции комплексного аргумента
- 1.2 Простейшие операции с векторами и матрицами
- 1.2.1. Ввод векторов и матриц
- 1.2.2. Формирование векторов и матриц
- 1.2.3 Действия над векторами
- 1.2.4 Поэлементное преобразование матриц
- 1.2.5 Матричные действия над матрицами
- 1.3 Функции прикладной численной математики
- 1.3.1. Операции с полиномами
- 2. Программирование в среде MatLab
- 2.1 Операторы цикла и условные операторы
- If условие
- If условие
- 2.2 Ввод исходных данных и вывод результатов
- 3. Графика
- 4. Создание м-файлов
- 4.1. Особенности создания м-файлов
- 4.2. Основные особенности оформления м-файлов
- 4.3 Создание функциональных файлов
- 4.3.1 Общие требования к построению