Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методички / TROPA V MATLAB_21.doc
Скачиваний:
154
Добавлен:
17.09.2018
Размер:
2.47 Mб
Скачать

Глава 6 прикладная численная математика

Эта глава посвящена численному решению задач из различных разделов

математики. В разделе 6.1 рассматриваются основные команды для работы с полиномами. При этом полиномы обычно задаются векторами их коэффициентов. В разделе 6.2 на многочисленных примерах продемонстрированы возможности MATLAB для решения нелинейных уравнений и их систем. В разделах 6.3, 6.4 рассматриваются средства минимизации функций одной и нескольких переменных. В разделе 6.5 подробно исследуются возможности MATLAB при численном интегрировании. В разделе 6.6 рассматриваются основные команды (солверы) для решения задачи Коши для обыкновенных дифференциальных уравнений и их систем. В разделах 6.7, 6.8 рассматриваются средства аппроксимации и интерполяции данных.

6.1 Операции с полиномами

Полином (многочлен) как функция определяется выражением

P(x) = anxn+…+a2x2+a1x+a0.

В MATLAB полином задается и хранится в виде вектора, элементами которого являются коэффициенты полинома от an до a0:

P = [ana2 a0].

Ввод полиномов в MATLAB осуществляется таким же образом, как и ввод вектора длиной n+1, где n – порядок полинома.

Умножение полиномов. Произведением двух полиномов P1 и P2 степеней n и m соответственно называют полином степени n+m, коэффициенты которого определяют простым перемножением этих двух полиномов. В MATLAB ее осуществляет команда conv(P1,P2).

Деление полинома P1 на полином P2 осуществляет команда deconv(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.

Вектор, элементы которого являются корнями заданного полинома P, возвращает команда roots(P).

Пусть требуется найти корни полинома

P(x)=x5+8x4+31x3+80x2+94x+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

Построение вектора P коэффициентов полинома по заданному вектору r его корней осуществляет команда poly:

>> P=poly(r)

P =

1.0000 8.0000 31.0000 80.0000 94.0000 20.0000

Эта же команда в случае, когда аргументом ее является некоторая квадратная матрица, строит вектор коэффициентов характеристического полинома этой матрицы (см. разд. 2.5).

Значение полинома при заданном значении его аргумента выдает команда polyval.

Обращение происходит по схеме y = polyval(p,x), где p – заданный вектор коэффициентов полинома, а х – заданное значение аргумента.

Вычисление производной от полинома производится командой polyder.

Существуют и другие команды:

polyint – аналитическое интегрирование полинома;

residue – разложение рациональной дроби на сумму простейших дробей.

Информация о командах, используемых при работе с полиномами, находится в разделе polyfun справочной системы MATLAB.

Соседние файлы в папке Методички