function [legenCoeff, polyCoeff] = legendre_Approx(degree, inputPoly) syms x; order = degree; legendre_coeff = zeros(degree+1, degree+1); while(order>=0) startIdx = degree+1-order; legendre_coeff(startIdx, startIdx:end) = LegendrePoly(order); order = order - 1; end %=== Legendre polynoimal coefficient of computed result legenCoeff = zeros(1, degree+1); for i = 1:(degree+1) numerator = conv(inputPoly, legendre_coeff(i, :)); polyeq = poly2sym(numerator); tmp1 = int(polyeq, -1, 1); denominator = conv(legendre_coeff(i, :), legendre_coeff(i, :)); polyeq = poly2sym(denominator); tmp2 = int(polyeq, -1, 1); legenCoeff(i) = tmp1/tmp2; end %=== polynoimal coefficient of computed result polyCoeff = zeros(1, degree+1); for i = 1:(degree+1) polyCoeff = polyCoeff + legenCoeff(i)*legendre_coeff(i, :); end