Multiplying two polynomials without using conv() function

조회 수: 14 (최근 30일)
gmltn1212
gmltn1212 2020년 6월 13일
편집: Saleh AlSenaidi 2021년 11월 27일
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]

답변 (2개)

Ameer Hamza
Ameer Hamza 2020년 6월 13일
편집: Ameer Hamza 2020년 6월 13일
"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 2021년 11월 26일
편집: Saleh AlSenaidi 2021년 11월 27일
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

카테고리

Help CenterFile Exchange에서 Dates and Time에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by