MATLAB - 多项式除法



多项式除法是将一个多项式除以另一个多项式的过程。在 MATLAB 中,可以使用 `deconv` 函数执行多项式除法,该函数计算两个多项式的解卷积。由于多项式除法本质上是多项式乘法的逆运算,因此 `deconv` 函数可用于多项式除法。

在 Matlab 中使用 deconv() 函数

MATLAB 中的 `deconv()` 函数可以帮助你将一个多项式除以另一个多项式。

语法

[x,r] = deconv(y,h)

假设你有两个多项式 P(x) 和 Q(x)。当你将 P(x) 除以 Q(x) 时,你会得到商 X(x) 和余数 R(x)。Matlab 中的 `deconv()` 函数会为你完成这个除法。

例如,如果你有 P(x) = 6x³ + 5x² + 4x + 3 和 Q(x) = 2x + 1,使用 `deconv()` 将得到商 X(x) = 3x² + 2x + 1 和余数 R(x) = 0。

在 Matlab 中,你使用 `deconv(y, h)`,其中 y 是 P(x) 的系数,h 是 Q(x) 的系数。该函数返回 X(x) 的系数作为商和 R(x) 作为余数。

示例 1:多项式除法

让我们考虑以下两个多项式:

P(x) = 6x3 + 5x2 + 4x + 3
Q(x) = 2x + 1

上述多项式的系数如下:

P = [ 6  5  4  3 ];
Q = [2 1]

这是一个 Matlab 代码:

% Define the coefficients of the polynomials
P = [6 5 4 3];  % Coefficients of P(x) = 6x^3 + 5x^2 + 4x + 3
Q = [2 1];      % Coefficients of Q(x) = 2x + 1

% Perform the polynomial division
[quotient, remainder] = deconv(P, Q);

% Display the results
disp('Quotient coefficients:');
disp(quotient);

disp('Remainder coefficients:');
disp(remainder);

**在上面的示例中** - 将 P(x) 除以 Q(x) 的结果,即除法产生的多项式。无法被 Q(x) 进一步除的多项式。

商 X(x) 将是一个 2 次多项式,因为 P(x) 是 3 次多项式,而 Q(x) 是 1 次多项式。

余数 R(x) 将是一个常数项,因为它表示除法后的剩余部分。

代码执行后,我们将得到以下输出:

>> % Define the coefficients of the polynomials
P = [6 5 4 3];  % Coefficients of P(x) = 6x^3 + 5x^2 + 4x + 3
Q = [2 1];      % Coefficients of Q(x) = 2x + 1

% Perform the polynomial division
[quotient, remainder] = deconv(P, Q);

% Display the results
disp('Quotient coefficients:');
disp(quotient);

disp('Remainder coefficients:');
disp(remainder);

Quotient coefficients:
    3.0000    1.0000    1.5000

Remainder coefficients:
         0         0         0    1.5000

>>

示例 2:高次多项式

让我们除以两个高次多项式。

Polynomials:

P(x) = 4x5 + 3x4 + 2x3 + x2 + 5x + 6

Q(x) = 2x2 + x + 1

Coefficients: 
P = [ 4 3 2 1 5 6 ]
Q = [ 2 1 1 ]

为了解决上述多项式除法,我们使用的代码是:

% Define the coefficients of the polynomials
P = [4 3 2 1 5 6];  % Coefficients of P(x) = 4x^5 + 3x^4 + 2x^3 + x^2 + 5x + 6
Q = [2 1 1];        % Coefficients of Q(x) = 2x^2 + x + 1

% Perform the polynomial division
[quotient, remainder] = deconv(P, Q);

% Display the results
disp('Quotient coefficients:');
disp(quotient);

disp('Remainder coefficients:');
disp(remainder);

在上面的代码中,我们有:

  • P(x) 是 5 次多项式。
  • Q(x) 是 2 次多项式。
  • 商将是一个 3 次多项式,余数将是一个 1 次多项式。

在 Matlab 命令窗口中执行代码后,我们将得到以下输出:

>> % Define the coefficients of the polynomials
P = [4 3 2 1 5 6];  % Coefficients of P(x) = 4x^5 + 3x^4 + 2x^3 + x^2 + 5x + 6
Q = [2 1 1];        % Coefficients of Q(x) = 2x^2 + x + 1

% Perform the polynomial division
[quotient, remainder] = deconv(P, Q);

% Display the results
disp('Quotient coefficients:');
disp(quotient);

disp('Remainder coefficients:');
disp(remainder);

Quotient coefficients:
    2.0000    0.5000   -0.2500    0.3750

Remainder coefficients:
         0         0         0         0    4.8750    5.6250

>> 

示例 3:余数为零的除法

考虑两个多项式,其中除法结果的余数为零。

Polynomials:
P(x) = x4 + 4x3 + 6x2 + 4x + 1  (which is the expansion of (x+1)4)
Q(x) = x + 1

Coefficients:
P = [ 1 4 6 4 1 ]

Q = [ 1 1 ]
  

我们的 Matlab 代码是:

% Define the coefficients of the polynomials
P = [1 4 6 4 1];  % Coefficients of P(x) = x^4 + 4x^3 + 6x^2 + 4x + 1
Q = [1 1];        % Coefficients of Q(x) = x + 1

% Perform the polynomial division
[quotient, remainder] = deconv(P, Q);

% Display the results
disp('Quotient coefficients:');
disp(quotient);

disp('Remainder coefficients:');
disp(remainder);

在上面的代码中:

  • 由于 P(x) 被 Q(x) 整除,因此余数将为零。
  • 商将是 P(x) 除以 Q(x) 的结果,即 (x+1)³

在 Matlab 命令窗口中执行代码后,输出为:

>> % Define the coefficients of the polynomials
P = [1 4 6 4 1];  % Coefficients of P(x) = x^4 + 4x^3 + 6x^2 + 4x + 1
Q = [1 1];        % Coefficients of Q(x) = x + 1

% Perform the polynomial division
[quotient, remainder] = deconv(P, Q);

% Display the results
disp('Quotient coefficients:');
disp(quotient);

disp('Remainder coefficients:');
disp(remainder);


Quotient coefficients:
     1     3     3     1

Remainder coefficients:
     0     0     0     0     0

>> 

示例 4:多项式除以常数

如果将多项式除以常数(0 次多项式),则商将只是原始多项式除以该常数。

Polynomials:
P(x) = 3x3 + 6x2 + 9x + 12
Q(x) = 3 (constant)

Coefficients:
P = [ 3 6 9 12 ]
Q = [ 3 ]

我们的 Matlab 代码是:

% Define the coefficients of the polynomials
P = [3 6 9 12];  % Coefficients of P(x) = 3x^3 + 6x^2 + 9x + 12
Q = [3];         % Coefficients of Q(x) = 3 (constant)

% Perform the polynomial division
[quotient, remainder] = deconv(P, Q);

% Display the results
disp('Quotient coefficients:');
disp(quotient);

disp('Remainder coefficients:');
disp(remainder);

在 Matlab 命令窗口中执行代码后,输出为:

>> % Define the coefficients of the polynomials
P = [3 6 9 12];  % Coefficients of P(x) = 3x^3 + 6x^2 + 9x + 12
Q = [3];         % Coefficients of Q(x) = 3 (constant)

% Perform the polynomial division
[quotient, remainder] = deconv(P, Q);

% Display the results
disp('Quotient coefficients:');
disp(quotient);

disp('Remainder coefficients:');
disp(remainder);

Quotient coefficients:
     1     2     3     4

Remainder coefficients:
     0     0     0     0

>> 
广告