Моделирование в системе MATLAB. Часть 1. Основы работы в MATLAB. Терёхин В.В. - 226 стр.

UptoLike

Составители: 

224
В состав ядра системы MATLAB включены функции для ра-
боты с полиномами, описываемыми векторами их коэффициентов.
При создании новых полиномиальных объектов эти функции должны
быть переопределены. Во многих случаях переопределяемая функция
может просто применять исходную функцию к полю соответствую-
щей структуры. Например, имеется метод @polynom/roots.m:
function r = roots(p)
% POLYNOM/ROOTS. ROOTS(p) - это вектор, содер-
жащий корни
полинома p.
r = roots(p.c);
Оператор roots(p) дает следующий результат
roots(p)
ans =
2.0946
-1.0473+ 1.1359i
-1.0473- 1.1359i
Функция polyval вычисляет полином для заданного множест-
ва точек. В данном случае это метод @polynom/polyval.m. Он осно-
ван на методе Горнера.
function y = polyval(p,x)
% POLYNOM/POLYVAL POLYVAL(p,x) вычисляет значе-
ние полинома p в точке x
y = 0;
for a = p.c
y = y.*x + a;
end
Обе эти функции используются при переопределении функ-
ции plot. Область изменения
независимой переменной выбирается,
чтобы быть немного большей, чем интервал, содержащий все дейст-
вительные корни. Затем используется функция polyval, чтобы вычис-
лить значения полинома в нескольких сотнях точек области.
Результирующий метод @polynom/plot.m имеет вид:
function plot(p)
% POLYNOM/PLOT
% Функция PLOT(p) строит график полиномиального
% объекта p.
r = max(abs(roots(p)));
x = (-1.1:.01:1.1)*r;
y = polyval(p,x);
plot(x,y);
        В состав ядра системы MATLAB включены функции для ра-
боты с полиномами, описываемыми векторами их коэффициентов.
При создании новых полиномиальных объектов эти функции должны
быть переопределены. Во многих случаях переопределяемая функция
может просто применять исходную функцию к полю соответствую-
щей структуры. Например, имеется метод @polynom/roots.m:
         function r = roots(p)
         % POLYNOM/ROOTS. ROOTS(p) - это вектор, содер-
жащий корни полинома p.
         r = roots(p.c);

Оператор roots(p) дает следующий результат
      roots(p)
      ans =
             2.0946
            -1.0473+ 1.1359i
            -1.0473- 1.1359i

        Функция polyval вычисляет полином для заданного множест-
ва точек. В данном случае это метод @polynom/polyval.m. Он осно-
ван на методе Горнера.
        function y = polyval(p,x)
      % POLYNOM/POLYVAL POLYVAL(p,x) вычисляет значе-
ние полинома p в точке x
         y = 0;
         for a = p.c
           y = y.*x + a;
         end

        Обе эти функции используются при переопределении функ-
ции plot. Область изменения независимой переменной выбирается,
чтобы быть немного большей, чем интервал, содержащий все дейст-
вительные корни. Затем используется функция polyval, чтобы вычис-
лить значения полинома в нескольких сотнях точек области.
        Результирующий метод @polynom/plot.m имеет вид:
        function plot(p)
        % POLYNOM/PLOT
        % Функция PLOT(p) строит график полиномиального
        % объекта p.
               r = max(abs(roots(p)));
               x = (-1.1:.01:1.1)*r;
               y = polyval(p,x);
               plot(x,y);
224