Clear Filters
Clear Filters

Multiplying two polynomials without using conv() function

6 views (last 30 days)
How can I multiply two polynomials without usiing conv() function?
%two polynomials
a = [13,-13] %a = 13x - 13
b = [-13,9,8] %b = -13x^2 + 9x + 8
I am trying to return the result of the mutiplication like this
m = [-169, 286, -117, -104]

Answers (2)

Ameer Hamza
Ameer Hamza on 13 Jun 2020
Edited: Ameer Hamza on 13 Jun 2020
"without using conv() function"
syms s
a = [13,-13] %a = 13x - 13
b = [-13,9,8] %b = -13x^2 + 9x + 8
ab = sym2poly(poly2sym(a, s)*poly2sym(b, s))
Result
>> ab
ab =
-169 286 -13 -104

Saleh AlSenaidi
Saleh AlSenaidi on 26 Nov 2021
Edited: Saleh AlSenaidi on 27 Nov 2021
If you don't have symbolic toolbox, you can use this code
a = [13,-13]; %a = 13x - 13
b = [-13,9,8]; %b = -13x^2 + 9x + 8
roots_a =roots(a);
roots_b =roots(b);
ab =a(1,1)*b(1,1)*poly([roots_a.',roots_b.'])
Note: X.' is the non-conjugate transpose of X.
Resut
>> ab
ab =
-169 286 -13 -104

Categories

Find more on Dates and Time in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!