laurentPolynomial

Создайте полином Лорана

    Описание

    Используйте laurentPolynomial объект создать полином Лорана с полиномиальными коэффициентами с действительным знаком. Можно задать максимальный порядок полинома. Можно выполнить математические и логические операции на полиномах Лорана. Можно также создать поднимающуюся схему, сопоставленную с парой полиномов Лорана.

    Создание

    Описание

    lpoly = laurentPolynomial создает постоянный полином Лорана, где константа равна 1, и максимальный порядок равен 0.

    пример

    lpoly = laurentPolynomial(Name=Value) создает полином Лорана со Свойствами, заданными аргументами name-value. Например, laurentPolynomial(MaxOrder=2) создает полином Лорана с максимальным порядком, равным 2. Можно задать несколько аргументов name-value.

    Свойства

    развернуть все

    Коэффициенты полинома Лорана в виде вектора с действительным знаком. Если k является длиной векторного C, то lpoly = laurentPolynomial(Coefficients=C) представляет полином Лорана

    lpoly(z)=m=1kC(m)z1m.

    Пример: если C = [4 3 2 1], затем P = laurentPolynomial(Coefficients=C) представляет полином Лорана P(z)=4+3z1+2z2+z3.

    Типы данных: double

    Максимальный порядок полинома Лорана в виде целого числа. Если k является длиной векторного C, и d является целым числом, то lpoly = laurentPolynomial(Coefficients=C,MaxOrder=d) представляет полином Лорана

    lpoly(z)=m=1kC(m)zdm+1.

    Пример: если C = [2 4 6 8], затем P = laurentPolynomial(Coefficients=C,MaxOrder=1) представляет полином Лорана P(z)=2z+4+6z1+8z2.

    Типы данных: double

    Функции объекта

    развернуть все

    degreeСтепень полинома Лорана
    euclidАлгоритм Евклида для полиномов Лорана
    polyphaseМногофазные компоненты полинома Лорана
    mpowerВозведение в степень полинома Лорана
    horzcatГоризонтальная конкатенация полиномов Лорана
    vertcatВертикальная конкатенация полиномов Лорана
    lp2filtersПолиномы Лорана к фильтрам
    lp2LSПолиномы Лорана к подъему шагов и коэффициентов нормализации
    neТест неравенства полиномов Лорана
    rescaleПеремасштабируйте полином Лорана
    dyaddownДвухместная субдискретизация полинома Лорана или матрицы Лорана
    dyadupДвухместная повышающая дискретизация полинома Лорана или матрицы Лорана
    eqПолиномы Лорана или тест равенства матриц Лорана
    plusПолином Лорана или матричное сложение Лорана
    minusПолином Лорана или матричное вычитание Лорана
    mtimesПолином Лорана или умножение матриц Лорана
    reflectПолином Лорана или матричное отражение Лорана
    uminusУнарный минус для полинома Лорана или матрицы Лорана

    Примеры

    свернуть все

    Создайте три полинома Лорана:

    • a(z)=1+z-1

    • b(z)=z2+3z+z-1

    • c(z)=z3+3z2+5z+7

    a = laurentPolynomial(Coefficients=[1 1])
    a = 
      laurentPolynomial with properties:
    
        Coefficients: [1 1]
            MaxOrder: 0
    
    
    b = laurentPolynomial(Coefficients=[1 3 0 1],MaxOrder=2)
    b = 
      laurentPolynomial with properties:
    
        Coefficients: [1 3 0 1]
            MaxOrder: 2
    
    
    c = laurentPolynomial(Coefficients=[1 3 5 7],MaxOrder=3)
    c = 
      laurentPolynomial with properties:
    
        Coefficients: [1 3 5 7]
            MaxOrder: 3
    
    

    Сложение

    Добавьте эти два полинома a(z) и b(z). Используйте функцию помощника helperPrintLaurent распечатать результат в алгебраической форме.

    polySum = plus(a,b)
    polySum = 
      laurentPolynomial with properties:
    
        Coefficients: [1 3 1 2]
            MaxOrder: 2
    
    
    res = helperPrintLaurent(polySum);
    disp(res)
    z^(2) + 3*z + 1 + 2*z^(-1)
    

    Добавьте 2 к b(z).

    consSum = b+2;
    res = helperPrintLaurent(consSum);
    disp(res)
    z^(2) + 3*z + 2 + z^(-1)
    

    Вычитание

    Вычитание a(z) от b(z).

    polyDiff = minus(b,a);
    res = helperPrintLaurent(polyDiff);
    disp(res)
    z^(2) + 3*z - 1
    

    Вычитание a(z) от 1.

    consDiff = 1-a;
    res = helperPrintLaurent(consDiff);
    disp(res)
    - z^(-1)
    

    Умножение

    Умножиться a(z) и b(z).

    polyProd = mtimes(a,b);
    res = helperPrintLaurent(polyProd);
    disp(res)
    z^(2) + 4*z + 3 + z^(-1) + z^(-2)
    

    Вычислить a(z)c(z)-b(z).

    polyProd2 = a*c-b;
    res = helperPrintLaurent(polyProd2);
    disp(res)
    z^(3) + 3*z^(2) + 5*z + 12 + 6*z^(-1)
    

    Чтобы умножить полином Лорана на константу, используйте rescale функция.

    consProd = rescale(b,7);
    res = helperPrintLaurent(consProd);
    disp(res)
    7*z^(2) + 21*z + 7*z^(-1)
    

    Возведение в степень

    Повышение a(z) к четвертой степени.

    polyPow = mpower(a,4);
    res = helperPrintLaurent(polyPow);
    disp(res)
    1 + 4*z^(-1) + 6*z^(-2) + 4*z^(-3) + z^(-4)
    

    Вычислить b2(z)-c(z).

    polyPow2 = b^2-c;
    res = helperPrintLaurent(polyPow2);
    disp(res)
    z^(4) + 5*z^(3) + 6*z^(2) - 3*z - 1 + z^(-2)
    

    Создайте два полинома Лорана:

    • a(z)=z-1

    • b(z)=-2z3+6z2-7z+2

    a = laurentPolynomial(Coefficients=[1 -1],MaxOrder=1);
    b = laurentPolynomial(Coefficients=[-2 6 -7 2],MaxOrder=3);

    Отражение

    Получите отражение b(z).

    br = reflect(b);
    res = helperPrintLaurent(br);
    disp(res)
    2 - 7*z^(-1) + 6*z^(-2) - 2*z^(-3)
    

    Унарный минус

    Подтвердите сумму b(z) и его унарное отрицание равно 0.

    b+uminus(b)
    ans = 
      laurentPolynomial with properties:
    
        Coefficients: 0
            MaxOrder: 0
    
    

    Градус

    Умножиться a(z) и b(z). Подтвердите, что степень продукта равна сумме степеней a(z) и b(z).

    ab = a*b;
    degree(ab)
    ans = 4
    
    degree(a)+degree(b)
    ans = 4
    

    Возведение в степень

    Повышение a(z) в третью степень. Подтвердите, что результат не равен b(z).

    a3 = a^3;
    a3 ~= b
    ans = logical
       1
    
    

    Перешкала

    Подтвердить a(z) повышенный до третьей степени равно -b(z)/2-z/2.

    zt = laurentPolynomial(Coefficients=[-1/2],MaxOrder=1);
    b2 = rescale(b,-1/2)+zt;
    eq(a3,b2)
    ans = logical
       1
    
    

    Двухместные операции

    Создайте полином Лорана c(z)=k=-34(-1)kkzk. Получите степень c(z).

    cfs = (-1).^(-3:4).*(-3:4);
    c = laurentPolynomial(Coefficients=fliplr(cfs),MaxOrder=4);
    res = helperPrintLaurent(c);
    disp(res)
    4*z^(4) - 3*z^(3) + 2*z^(2) - z + z^(-1) - 2*z^(-2) + 3*z^(-3)
    
    degree(c)
    ans = 7
    

    Получите двухместную повышающую дискретизацию и субдискретизацию c(z). Получите степень обоих полиномов.

    dUp = dyadup(c)
    dUp = 
      laurentPolynomial with properties:
    
        Coefficients: [4 0 -3 0 2 0 -1 0 0 0 1 0 -2 0 3]
            MaxOrder: 8
    
    
    degree(dUp)
    ans = 14
    
    dDown = dyaddown(c)
    dDown = 
      laurentPolynomial with properties:
    
        Coefficients: [4 2 0 -2]
            MaxOrder: 2
    
    
    degree(dDown)
    ans = 3
    

    Расширенные возможности

    Генерация кода C/C++
    Генерация кода C и C++ с помощью MATLAB® Coder™.

    Смотрите также

    |

    Введенный в R2021b