For the division of univariate polynomials, given the dividend b(x) of degree n and the divisor a(x) of degree m, such that b(x) = q(x)*a(x) + r(x), the quotient q(x) of degree n-m and the remainder r(x) of degree m-1 are then obtained.
This very short code is similar to the MATLAB built-in function 'deconv.m'.
The presented routine [q,r] = poly_div(b,a) can avoid the un-wanted data preceeding the remaider's coefficients applying the built-in routine [q,r] = deconv(b,a). See author's self comment.
> b = [2 7 -5 9 -3], a = [3 -5 9 -2],
2 7 -5 9 -3
3 -5 9 -2
> [q,r] = poly_div(b,a),
6.2222 -20.667 3.8889
> [q,r] = deconv(b,a),
0 -8.8818e-016 6.2222 -20.667 3.8889
It shows that running the MATLAB built-in routine yields the unwanted data, even it is very very small.
Shorten the m-file.
Update the m-file.
Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.