Главная страница
Навигация по странице:

  • 1.1.3. Работа с полиномами

  • Э. А. Романовский теория автоматического


    Скачать 0.67 Mb.
    НазваниеЭ. А. Романовский теория автоматического
    Дата16.05.2022
    Размер0.67 Mb.
    Формат файлаpdf
    Имя файла1-6.pdf
    ТипПрактикум
    #532783
    страница2 из 7
    1   2   3   4   5   6   7
    1.1.2.
    Работа с векторами и матрицами
    В среде MATLAB производить вычисления с наборами вещест- венных и комплексных чисел (векторами, матрицами и прочими мас- сивами) также легко, как и с одиночными числами. Эта особенность является одним из самых заметных и важных преимуществ среды
    MATLAB по сравнению с другими средами, ориентированными на компьютерное моделирование.
    Простейшими наборами вещественных и комплексных чисел в среде являются векторы-строки и векторы-столбцы. Оба набора пред-

    - 11 - ставляют собой одномерные числовые массивы.
    При создании вектора-строки используется конструкция, демон- стрируемая следующим примером:
    » a1 = [1.1, 2.2, 3.3] a1 =
    1.1000 2.2000 3.3000
    В подобных конструкциях вместо запятых разрешается использо- вать пробелы. Однако рекомендуется всё же здесь применять именно запятые по причине большей наглядности. Так, например, в случае создания вектора-строки, в котором среди чисел встречаются ком- плексные числа, более читабельной будет конструкция, в которой в ка- честве разделителей между числами используются запятые. Пример:
    » a2 = [1.1 + 2.2i, 22.2, 3.3 – 7i];
    Кроме того, далеко не везде в командах и текстах программ, где требуется применение запятых, разрешается вместо них использовать пробелы.
    При создании вектора-столбца используется конструкция, демон- стрируемая следующим примером:
    » a3 = [3.3; 2.2; 1.1] a3 =
    3.3000 2.2000 1.1000
    Для доступа к отдельному элементу одномерного массива приме- няют операцию индексации, для чего после имени массива в круглых скобках указывается индекс (номер) элемента. Нумерация элементов массива начинается с единицы, а не с нуля. Пример:
    » a2(3) ans =
    3.3000 - 7.0000i
    » a3(1)

    - 12 - ans =
    3.3000
    В примере ans
    – это специальная переменная среды MATLAB.
    Она всегда хранит результат выполнения последней введённой поль- зователем команды. Её содержимое часто выводится на экран в каче- стве результата выполнения какой-либо команды.
    Количество элементов одномерного массива всегда можно узнать при помощи функции length()
    При создании матрицы можно использовать конструкцию, демон- стрируемую следующим примером (однако это не единственный спо- соб создания полноценной матрицы):
    » A1 = [1, 2, 3; 9, 8, 7; 6, 5, 4]
    A1 =
    1 2 3 9 8 7 6 5 4
    Матрицы представляют собой двухмерные числовые массивы.
    Как видно из примера, при формировании матриц запятая означа- ет переход к следующему элементу строки создаваемой матрицы, а точка с запятой означает переход на следующую строку этой матрицы.
    Для доступа к отдельному элементу матрицы также применяют операцию индексации. Одним из вариантов доступа является указание после имени матрицы в круглых скобках через запятую двух индексов, первый из которых является номером строки, а второй – номером столбца. Здесь нумерация также начинается с единицы. Пример:
    » A1(2, 3) ans =
    7
    Для определения размеров матрицы по каждой размерности можно использовать функцию size()
    . Она возвращает вектор-строку из двух чисел, содержащих количество строк (первое число) и количест- во столбцов (второе число) интересующей матрицы.
    Над числами, числовыми векторам и матрицами можно выпол- нять разнообразные операции. Ниже приведены некоторые из этих

    - 13 - операций:
    1.
    «
    +
    » - сложение чисел, векторов и матриц.
    2.
    «
    -
    » - вычитание чисел, векторов и матриц.
    3.
    «
    *
    » - перемножение чисел, векторов и матриц.
    4.
    «
    /
    » - деление чисел, векторов и матриц (матрицу на матрицу, разумеется, делить нельзя, однако можно разделить матрицу на число).
    5.
    «
    '
    » - транспонирование векторов и матриц.
    6.
    «
    \
    » - решение систем линейных алгебраических уравнений.
    7.
    «
    ^
    » - возведение чисел и матриц в степень.
    Ниже приводятся примеры выполнения некоторых из этих опера- ций над векторами и матрицами (с подавлением вывода результатов выполнения команд).
    » A1 = [1, 2, 3; 9, 8, 7];
    » A2 = [9, 8, 7; 1, 2, 3];
    » A3 = A1 + A2;
    » A4 = [1, 2; 9, 8; 3, 5];
    » A5 = A4 * A1;
    » A6 = A2';
    Ниже приведён пример решения системы линейных алгебраиче- ских уравнений
    0
    =
    +
    B
    Ax
    (также с
    подавлением вывода результатов
    ).
    » A = [1, -2, -3; 9, 8, 2; -4, 5, 6];
    » B = [2; 3; 1];
    » x = A\B;
    %
    Решение
    » C = A*x;
    %
    Проверка решения
    : C должно
    % равняться
    B.
    Разумеется
    , для обработки матриц существует большое количест
    - во самых разных функций
    Ниже приводятся примеры вызова только некоторых из этих функций с
    поясняющими комментариями
    » A = zeros(2, 3);
    %
    Создание матрицы нулей
    % размерами
    2 x 3.
    » B = ones(3, 2);
    %
    Создание матрицы единиц
    % размерами
    3 x 2.
    » I = eye(3);
    %
    Создание единичной матрицы
    3 x 3.
    » C = rand(3, 3);
    %
    Создание матрицы из
    % случайных чисел со значениями
    % в
    диапазоне от
    0 до
    1.
    » d = det(C);
    %
    Вычисление определителя
    % матрицы
    C.
    » r = rank(C);
    %
    Вычисление ранга матрицы
    C.

    - 14 -
    » D = inv(C);
    %
    Вычисление матрицы
    , обратной
    % к
    матрице
    C.
    » p = eig(C);
    %
    Вычисление собственных чисел
    % матрицы
    C.
    1.1.3.
    Работа с полиномами
    Среда MATLAB имеет встроенные средства для работы с поли- номами. Полином представляет собой степенную функцию вида
    0 1
    1 1
    )
    (
    a
    p
    a
    p
    a
    p
    a
    p
    F
    n
    n
    n
    n
    +
    +
    +
    +
    =


    K
    Здесь
    p - это некоторая независимая переменная
    ;
    i
    a
    - числовые коэффициенты
    , где
    n
    i
    ,
    1
    =
    Если степенную функцию
    )
    ( p
    F
    приравнять нулю
    , то получится степенное уравнение
    0 0
    1 1
    1
    =
    +
    +
    +
    +


    a
    p
    a
    p
    a
    p
    a
    n
    n
    n
    n
    K
    Это уравнение можно решить
    Количество его решений всегда равно
    n , а
    сами эти решения
    i
    p
    (
    n
    i
    ,
    1
    =
    ) называются корнями поли
    - нома
    )
    ( p
    F
    В
    среде
    MATLAB полиномы хранятся в
    виде векторов
    - строк
    , в
    которых содержатся коэффициенты полином в
    порядке убывания их индексов
    Например
    , для полинома
    4 5
    3 2
    )
    (
    2 4
    1
    +
    +
    +
    =
    p
    p
    p
    p
    P
    соответствующая вектор
    - строка будет выглядеть так
    :
    » P1 = [2, 0, 3, 5, 4];
    Для работы с
    полиномами в
    среде
    MATLAB также существует ряд функций
    Ниже приводятся примеры вызова некоторых из этих функций с
    поясняющими комментариями
    :
    » Y = polyval(P1, X);
    %
    Вычисление полинома при
    % заданном значении
    % независимой переменной
    » P3 = conv(P1, P2);
    %
    Вычисление произведения
    % двух полиномов
    » [Y1, Y2] = deconv(P1, P2);
    %
    Деление двух полиномов
    » DP = polyder(P1);
    %
    Вычисление производной
    % полинома
    » R1 = roots(P1);
    %
    Вычисление корней
    % полинома

    - 15 -
    » P1 = poly(R1);
    %
    Вычисление коэффициентов
    % полинома по его
    % заданным корням
    » F1 = poly(A1);
    %
    Вычисление коэффициентов
    % характеристического
    % полинома матрицы
    В примерах функция деления полиномов возвращает два вектора- строки. Первый вектор-строка
    Y1
    содержит частное от деления, а вто- рой вектор-строка
    Y2
    содержит остаток от деления.
    Функция poly()
    может вызываться двумя способами. Если её аргументом является вектор-строка, то она рассматривает её элементы, как корни полинома, коэффициенты которого следует определить. Ес- ли же её аргументом является квадратная матрица, то она определяет коэффициенты характеристического полинома этой матрицы. Харак- теристическим полиномом некоторой квадратной матрицы является полином, для которого справедливо равенство:
    )
    det(
    )
    (
    A
    pI
    p
    F

    =
    , где
    I – единичная матрица с
    размерами матрицы
    A .
    1.2.
    З
    АДАНИЯ
    1.
    В
    таблице
    Табл. 1.1
    по вариантам приведены две квадратные матрицы
    1
    A
    и
    2
    A
    Следует создать их в
    командном окне среды
    MATLAB и
    выполнить над ними операции сложения
    , вычитания
    , пе
    - ремножения
    , транспонирования
    , деления на число
    , возведения в
    сте
    - пень числа
    2.
    В
    таблице
    Табл
    . 1.1
    также приведена матрица
    B .
    Средствами среды решить линейные матричные уравнения
    0 1
    =
    +
    B
    A x
    и
    0 2
    =
    +
    B
    A x
    3.
    Для заданных матриц
    1
    A и
    2
    A средствами среды
    MATLAB найти их определители
    , ранги
    , обратные матрицы
    , а
    также их собст
    - венные числа
    4.
    В
    таблице
    Табл
    . 1.1 также приведены два полинома
    1
    P и
    2
    P .
    Средствами среды
    MATLAB вычислить значения полиномов
    , подста
    - вив значение
    x , равное
    1; вычислить произведение полиномов
    1
    P и
    2
    P ; разделить полином
    1
    P на полином
    2
    P ; вычислить производные поли
    - номов
    1
    P и
    2
    P ; вычислить корни полиномов
    1
    P и
    2
    P ; по найденным корням вычислить коэффициенты полиномов
    , сравнить эти коэффици
    - енты с
    коэффициентами полиномов
    1
    P и
    2
    P ; вычислить коэффициенты

    - 16 - характеристических полиномов матриц
    1
    A
    и
    2
    A
    Табл. 1.1. Варианты заданий.
    № 1
    A
    2
    A
    B
    1
    P
    2
    P
    1










    3 6
    5 8
    2 7
    4 6
    1











    3 6
    5 8
    2 7
    4 6
    1










    2 4
    3 1
    5 4
    2 2
    4
    +
    +
    +
    +
    p
    p
    p
    5 2
    4 3
    2 5
    +
    +
    +

    p
    p
    p
    2











    3 6
    5 0
    2 7
    4 5
    10










    1 2
    5 8
    20 7
    4 4
    1










    2 2
    1 1
    5 2
    2 2
    3
    +
    +
    +
    +
    p
    p
    p
    p
    p
    p
    5 4
    2 2
    4
    +
    +
    +
    3












    3 6
    5 1
    2 7
    4 6
    1











    3 6
    5 1
    2 5
    4 6
    1











    2 4
    3 1
    5 4
    2 2
    4
    +



    p
    p
    p
    p
    p
    p
    5 2
    2 2
    5
    +
    +

    4











    3 8
    5 8
    1 7
    4 6
    1












    3 6
    5 8
    2 7
    4 6
    0











    2 4
    3
    p
    p
    p
    5 10 2
    2 3
    +
    +
    +
    1 5
    3 3
    4
    +
    +
    +
    +
    p
    p
    p
    5











    3 6
    5 8
    0 7
    4 6
    1











    3 6
    1 8
    2 7
    2 6
    1











    2 4
    3 10 4
    2 2
    4
    +


    +
    p
    p
    p
    3 3
    2 4
    +
    +
    +
    +

    p
    p
    p
    6











    3 6
    5 2
    1 7
    3 6
    1











    3 7
    5 8
    10 7
    4 6
    1











    1 5
    3 1
    5 4
    2 2
    4
    +
    +
    +
    +
    p
    p
    p
    1 5
    4 2
    2 4
    +
    +
    +
    +
    p
    p
    p
    7











    3 6
    3 8
    1 7
    2 6
    1










    3 6
    5 8
    2 17 4
    6 1











    2 3
    3 5
    1 9
    2 2
    4
    +


    +
    p
    p
    p
    1 3
    2 4
    +


    +
    p
    p
    p

    - 17 -
    8











    3 2
    5 3
    1 7
    4 1
    1










    3 2
    5 0
    2 17 4
    6 1












    1 4
    2 3
    35 2
    3
    +
    +
    +

    p
    p
    p
    1 5
    4 3
    2 4




    p
    p
    p
    9











    3 26 5
    4 2
    7 4
    6 1











    3 3
    5 1
    2 2
    4 6
    1











    2 2
    1 1
    2 2
    3
    +


    +

    p
    p
    p
    1 40 3
    2 4
    +
    +
    +
    +
    p
    p
    p
    10











    3 6
    50 8
    2 10 4
    6 1











    3 2
    5 8
    1 7
    4 6
    1










    2 2
    3 10 2
    2 4
    +
    +
    +
    +
    p
    p
    p
    1 7
    4 10 3
    5

    +
    +

    p
    p
    p
    11












    3 6
    5 8
    2 7
    4 6
    1











    3 6
    5 8
    2 7
    4 6
    1











    2 4
    3 1
    5 4
    2 2
    4
    +



    p
    p
    p
    5 2
    4 3
    2 5
    +


    +
    p
    p
    p
    12











    3 6
    5 0
    2 7
    4 5
    10












    1 2
    5 8
    20 7
    4 4
    1












    2 2
    1 1
    5 2
    2 2
    3
    +



    p
    p
    p
    p
    p
    p
    5 4
    2 2
    4



    13











    3 6
    5 1
    2 7
    4 6
    1












    3 6
    5 1
    2 5
    4 6
    1












    2 4
    3 1
    5 4
    2 2
    4



    +
    p
    p
    p
    p
    p
    p
    5 2
    2 2
    5


    +
    14











    3 8
    5 8
    1 7
    4 6
    1












    3 7
    5 8
    2 7
    4 6
    0












    2 4
    3
    p
    p
    p
    5 10 2
    2 3
    +
    +

    1 5
    3 3
    4



    +
    p
    p
    p
    15












    3 6
    5 8
    0 7
    4 6
    1












    3 6
    1 8
    2 7
    2 6
    1












    2 4
    3 10 4
    2 2
    4
    +


    +

    p
    p
    p
    3 3
    2 4

    +
    +


    p
    p
    p

    - 18 -
    16












    3 6
    5 2
    1 7
    3 6
    1











    3 7
    5 8
    10 7
    4 6
    1












    1 5
    3 1
    5 4
    2 2
    4
    +



    p
    p
    p
    1 2
    3 2
    2 4
    +


    +
    p
    p
    p
    17












    3 6
    3 8
    1 7
    2 6
    1











    3 6
    5 8
    2 17 4
    6 1












    2 3
    3 5
    1 9
    2 2
    4

    +
    +

    p
    p
    p
    1 3
    2 4
    +
    +
    +

    p
    p
    p
    18












    3 2
    5 3
    1 7
    4 1
    1











    3 2
    5 0
    2 17 4
    6 1












    1 3
    2 2
    35 2
    3
    +



    p
    p
    p
    1 65 4
    3 2
    4

    +
    +

    p
    p
    p
    19












    3 26 5
    4 2
    7 4
    6 1












    3 3
    5 1
    2 2
    4 6
    1












    2 2
    1 1
    2 3
    2 3
    +
    +
    +
    +

    p
    p
    p
    2 40 3
    2 4

    +
    +

    p
    p
    p
    20











    3 5
    22 8
    2 10 4
    6 5












    3 2
    5 8
    1 7
    4 6
    1











    2 2
    3 10 2
    2 2
    4



    +
    p
    p
    p
    1 7
    4 10 3
    5
    +



    p
    p
    p
    21












    3 6
    5 8
    2 7
    4 6
    1












    3 6
    5 8
    2 7
    4 6
    1












    2 3
    3 1
    5 4
    2 2
    4
    +


    +

    p
    p
    p
    5 2
    3 3
    2 5
    +



    p
    p
    p
    22











    3 6
    5 0
    2 8
    4 5
    10












    1 3
    5 8
    20 7
    4 3
    1












    2 4
    1 1
    5 2
    2 2
    3
    +
    +
    +


    p
    p
    p
    p
    p
    p
    5 4
    2 2
    4
    +
    +


    23












    3 6
    5 1
    2 7
    4 6
    1











    3 6
    6 1
    2 5
    4 6
    1











    2 5
    3 1
    5 3
    2 2
    4
    +


    +

    p
    p
    p
    p
    p
    p
    5 4
    2 2
    5


    +


    - 19 -
    24












    3 8
    5 8
    1 8
    4 6
    1











    3 9
    5 8
    2 7
    4 6
    0












    1 8
    3
    p
    p
    p
    5 10 3
    2 3
    +
    +


    1 5
    3 3
    4
    +


    +

    p
    p
    p
    25











    4 16 5
    8 0
    7 4
    6 1











    3 12 1
    8 2
    7 2
    6 1











    3 4
    3 2
    2 4
    5 2
    4
    +
    +
    +
    +

    p
    p
    p
    3 2
    2 2
    4

    +
    +


    p
    p
    p
    26











    3 13 5
    2 2
    7 3
    6 1











    3 7
    5 8
    13 7
    4 3
    1












    4 3
    3 1
    5 4
    6 2
    4
    +




    p
    p
    p
    1 2
    3 2
    2 4
    +



    p
    p
    p
    27












    3 0
    3 8
    1 7
    2 8
    1












    3 6
    5 8
    2 27 4
    6 1












    1 5
    3 5
    2 19 2
    2 4

    +
    +

    p
    p
    p
    1 3
    2 4
    +
    +
    +


    p
    p
    p
    28












    3 2
    5 5
    1 7
    4 3
    1











    3 2
    8 0
    2 27 4
    6 1












    1 9
    2 2
    35 3
    2 3
    +


    +

    p
    p
    p
    1 25 4
    3 2
    4

    +
    +

    p
    p
    p
    29












    3 36 5
    4 6
    7 4
    9 1












    3 31 5
    1 4
    2 4
    6 1












    2 4
    1 1
    2 6
    2 3

    +
    +
    +

    p
    p
    p
    2 45 3
    2 4
    +
    +
    +

    p
    p
    p
    30











    3 5
    23 8
    9 11 4
    6 8












    3 2
    5 7
    12 7
    4 6
    1











    2 12 3
    10 9
    2 2
    2 4



    +
    p
    p
    p
    1 7
    3 12 3
    5
    +



    p
    p
    p
    1   2   3   4   5   6   7


    написать администратору сайта