8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 92 93 94 95 96 97 98 ... 365

Интегралы с переменным верхним пределом

Интеграл с переменным верхним пределом представляет собой некоторую функцию, например

Для вычисления такого интеграла придется написать две функции: fint — для подынтегральной функции, и Fy — которая находит значения интеграла для каждого значения у. Тексты требуемых функций приведены в листинге 6.8, причем Fy является основной функцией, a fint — подфункцией.

function f = Fy(y)

f = quadl{@fint, 0, у, 1.0e-09);

function f = fint(x)

f = exp(x) .*{sin(x) - cos{x)),-

Теперь можно вычислить интеграл при любом значении верхнего предела, задав его в качестве аргумента Fy. Построение графика зависимости интеграла от верхнего предела осуществляется при помощи fplot

» fplot(@Fy, to, pi])

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

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

Умножение, деление, сложение и вычитание

Напомним, что полиномы в MATLAB представляются в виде вектора коэффициентов (задание полинома, нахождение всех его корней и вычисление значений описано в разд. "Вычисление всех корней полинома" данной главы).

у

о

Листинг 6.8. Файл-функция, вычисляющая значение интеграл

Полиномы и интерполяция


Умножение двух полиномов осуществляется при помощи conv. Например, для вычисления произведения л(л) полиномов

р(х) = х5 + а3 + L и q(x) = x2 + 2x + 3

следует создать два вектора их коэффициентов и использовать их в качестве аргументов conv:

»р = [10100 1]; » q = [12 3]; » S = conv{p, q) S -

12423123

В результате получается полином седьмой степени, соответствующий вектору S

s(х) = х7 + 2л-6 + 4л5 + 2х4 + За3 + л2 + 2а+3 .

Функция deconv осуществляет деление полиномов с остатком. Она вызывается с двумя выходными аргументами — частным и остатком от деления:

» [d, г] = deconv(p, q) d =

1-222

г =

0000 -10 -5

Размер вектора, содержащего коэффициенты остатка, равен максимальному из размеров векторов, соответствующих делимому полиному и его делителю.

Для сложения и вычитания полиномов в MATLAB нет специальной функции. В то же время использование знака "+" для нахождения суммы полиномов разной степени приведет к ошибке, т. к. нельзя складывать векторы разных размеров. Если вы изучили работу с массивами и создание файл-функций, то написание собственной функции для нахождения суммы полиномов не представляет большого труда. Алгоритм сложения полиномов, которым соответствуют векторы р и q, достаточно прост, требуется:

1.Выбрать максимальный размер из двух векторов.

2.Соответствующим образом преобразовать каждый из двух векторов к максимальному размеру.

3.Сложить новые векторы.

В листинге 6.9 приведен текст файл-функции poiysum, находящей значение суммы полиномов.


Листинг 6.9. Файл-функция polysum, вычисляющая сумму полиномов

function s = polysum(p, q)

% вычисление суммы полиномов, заданных векторами коэффициентов

% нахождение наибольшей из длин входных векторов maxlen = max(length(р), length(q)) ;

% создание вспомогательных векторов pi и ql длины maxlen, % имеющих нулевые элементы pi = zeros(1, maxlen); ql = zeros(1, maxlen);

% преобразование исходных векторов к векторам одинакового % размера maxlen

pi (maxlen - length(р) + l:maxlen) = р; ql (maxlen - length(q) + l:maxlen) = q;

% вычисление коэффициентов полинома, являющегося суммой исходных % полиномов s = pi + ql;

Теперь для нахождения суммы и разности полиномов следует использовать polysum.

» s = polysum(р, q) s =

101124

» d = polysum(p, -q) d =

101-1-2-2

Вычисление производных

Функция pioiyder предназначена для вычисления производной не только от полинома, но и от произведения и частного двух полиномов. Вызов poiyder с одним аргументом — вектором, соответствующим полиному, приводит к вычислению вектора коэффициентов производной полинома:

» р = [10 10 0 1]; » pi = poiyder(р) Р1 =

5 0 3 0 0



0 ... 92 93 94 95 96 97 98 ... 365