Skip to content

MANE 3351

Lecture 16

Classroom Management

Agenda

  • Gaussian Quadrature
  • Homework 5 (due October - no late work)
  • Lab session postponed

Resources

Handouts

Calendar

Lecture/Lab Date Topic
10/21 No Class, Dr. Timmer on ABET Visit No Class, Dr. Timmer on ABET Visit
10/23 Gaussian Quadrature, Homework 5 Lab 8 postponed
10/28 Numerical Differentiation (not on Test 2) Lab 8
11/4 Numerical Integration (not on Test 2) Lab 8, continued
11/6 Linear Algebra, part 1 (not on Test 2) Lab 9
11/11 Test 2 (Root Finding and Numerical Integration) No Lab

Lecture 16

Today's topic is Gaussian Quadrature

  • \(\int_{-1}^1f(x)dx\approx\sum_{i=1}^nw_if(x_i)+R_n\)
  • \(x_i\) is the abscissa is the \(i\)-th zero of \(P_n(x)\) (Legendre polynomial)
  • \(w_i\) is the weight associate with \(x_i\)
  • \(R_n=\frac{2^{2n+1}(n!)^4}{(2n+1)[(2n)!]^3}f^{(2n)}(\xi)\)
  • Abscissas and weights are commonly tabled 1

Python Code, part 1

# Part 1, original formula in range (-1,1)
#
import math
import numpy as np
def f(z):
    return (math.exp(-0.5*z**2)/((2.0*math.pi)**0.5))
#
# 2 point Gaussian Quadrature
x2=[-0.577350269189626,0.577350269189626]
w2=[1.0,1.0]
#
i2=0.0
for i in range(0,len(x2)):
    i2=i2+w2[i]*f(x2[i])
print("the area using 2-point gaussian quadrature is {}".format(i2))
#
# 5 point Gaussian Quadrature
x5=[0.0, -0.538469310105683,0.538469310105683,-0.906179845938664,0.906179845938664]
w5=[0.568888888888889,0.478628670499366,0.478628670499366,0.236926885056189,0.236926885056189]
i5=0.0
for i in range(0,len(x5)):
    i5=i5+w5[i]*f(x5[i])
print("the area using 5-point gaussain quadrature is {}".format(i5))

Gauss' Formula, Arbitrary Interval

  • \(\int_{a}^bf(y)dy\approx\frac{b-a}{2}\sum_{i=1}^nw_if(y_i)+R_n\)
  • \(y_i=\left(\frac{b-a}{2}\right)x_i+\left(\frac{b+a}{2}\right)\)
  • \(R_n=\frac{(b-a)^{2n+1}(n!)^4}{(2n+1)[(2n)!]^3}f^{(2n)}(\xi)\)
  • Note that \(x_i\) and \(w_i\) are the points and weights of Gaussian quadrature

Python Code, part 2

# Part 2
#
print("Gaussian Quadrature, arbitrary interval")
a=-5.0
b=0.0
#
# redo 2 point gaussian
i2=0.0
for i in range(0,len(x2)):
    y=((b-a)/2.0)*x2[i]+(b+a)/2.0
    i2=i2+w2[i]*f(y)
i2=((b-a)/2.0)*i2
print("the area using 2-point gaussian quadrature is {}".format(i2))
#
# redoc 5 point gaussian
i5=0.0
for i in range(0,len(x5)):
    y=((b-a)/2.0)*x5[i]+(b+a)/2.0
    i5=i5+w5[i]*f(y)
i5=((b-a)/2.0)*i5
print("the area using 5-point gaussian quadrature is {}".format(i5))

ChatGPT program

  • ChatGPT can be a useful tool for developing Python code.
  • It should not replace your knowledge and expertise
  • ChatGPT can be wrong


  1. Abramowitz, M., and Stegun, I. (1972), Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables