Hi there, I have an assignment which asks to do Gaussian Quadrature for a 4th degree polynomial and discuss the error from the actual solution.
I'm a little confused however, as using 4 gauss points should give an exact solution for polynomials less than or equal to the degree 2n-1 = 7. Since I have a 4th degree polynomial here, why am I getting an error of around 3%? If I increase the number of gauss points to 9, I get an error in the order of 10^-8. Am I missing something major about Gaussian Quadrature? Thanks.
clear all%% Exact solution% Define the function as an inline function in x and y% Create an inline functionff = @(x,y) 2.*x.^4 - x.^3 + 3.*y.^3 +y.^2 - 2.*x.*y + 5;% Calculate the exact solutionExactSol = integral2(ff,-1,1,-1,1);% Plot the functionezsurf(ff,[-1 1],[-1 1])%% Gaussian Quadraturen = 4;xi = zeros(n,1);eta = zeros(n,1);weights = zeros(n,1);evaluated = zeros(n,1);multiplied = zeros(n,1);% Location of the Gauss pointsxi(1) = -1/(sqrt(3));xi(2) = 1/(sqrt(3));xi(3) = -1/(sqrt(3));xi(4) = 1/(sqrt(3));eta(1) = -1/(sqrt(3));eta(2) = -1/(sqrt(3));eta(3) = 1/(sqrt(3));eta(4) = 1/(sqrt(3));% Gauss weightsfor i = 1:nweights(i) = 1;end% Evaulate the function at Gauss points, multiply by weights,% then sum.for j = 1:nevaluated(j) = 2*xi(j)^4 - xi(j)^3 + 3*eta(j)^3 +eta(j)^2 - 2*xi(j)*eta(j) + 5;multiplied(j) = evaluated(j)*weights(j);endGaussInt = sum(multiplied);% Calculate the percentage error between the Gauss solution% and the exact solutionError = (GaussInt - ExactSol)/ExactSol*100;