# 353 - Topic 10 - Normal Curve

## 1570 days ago by Professor353

Derivation of Details related to the normal distribution

John Travis

Mississippi College

MATH 353 - Introduction to Mathematical Probability and Statistics

Textbook:  Tanis and Hogg, A Brief Course in Mathematical Statistics

Using the symbolic capabilities of Sage to determine all of the interesting characteristics of the bell curve.

%auto reset() var('x,mu,sigma') f(x) = e^(-((x-mu)/sigma)^2/2)/(sigma*sqrt(2*pi)) f.show()
assume(sigma>0) mean = integrate(x*f,x,-oo,oo).simplify() html('By integrating $x f(x)$ over $(-\infty,\infty)$, we get the mean is $%s$'%str(latex(mean)))
 By integrating $x f(x)$ over $(-\infty,\infty)$, we get the mean is $\mu$ By integrating over , we get the mean is
vari = integrate((x-mu)^2*f,x,-oo,oo).simplify() html('By integrating $x^2 f(x)$ over $(-\infty,\infty)$, we ultimately get variance is $%s$'%str(latex(vari)))
 By integrating $x^2 f(x)$ over $(-\infty,\infty)$, we ultimately get variance is $\sigma^{2}$ By integrating over , we ultimately get variance is
skew = integrate((x-mu)^3*f/sigma^3,x,-oo,oo).simplify() html('By integrating $x^2 f(x)$ over $(-\infty,\infty)$, we ultimately get skewness is $%s$'%str(latex(skew)))
 By integrating $x^2 f(x)$ over $(-\infty,\infty)$, we ultimately get skewness is $0$ By integrating over , we ultimately get skewness is
kurt = integrate((x-mu)^4*f/sigma^4,x,-oo,oo).simplify() html('By integrating $x^2 f(x)$ over $(-\infty,\infty)$, we ultimately get kurtosis is $%s$'%str(latex(kurt)))
 By integrating $x^2 f(x)$ over $(-\infty,\infty)$, we ultimately get kurtosis is $3$ By integrating over , we ultimately get kurtosis is
# to find the maximum of f(x) fp = diff(f,x) soln = solve(fp==0,x) # can't make soln = mu work right here. Going ahead and just plugging in. Grrr. big = f(mu) html('Taking the derivative equal to zero gives a critical value of $%s$'%str(latex(soln[0]))) html('By glancing at the function, then there is a max at $%s$'%str(latex(big)))
 Taking the derivative equal to zero gives a critical value of $x = \mu$By glancing at the function, then there is a max at $\frac{\sqrt{2}}{2 \, \sqrt{\pi} \sigma}$ Taking the derivative equal to zero gives a critical value of By glancing at the function, then there is a max at
# to find possible points of inflection of f(x) fpp = diff(f,x,2) soln = solve(fpp==0,x) # again, can't plug these solns in yet. turn = f(mu+sigma).simplify() html('Taking the second derivative equal to zero gives possible inflection points at $%s$'%str(latex(soln[0]))+' and $%s$'%str(latex(soln[1]))) html('Plugging into the function gives inflection points $%s$'%str(latex((mu+sigma,turn)))+' and $%s$'%str(latex((mu-sigma,turn))))
 Taking the second derivative equal to zero gives possible inflection points at $x = \mu - \sigma$ and $x = \mu + \sigma$Plugging into the function gives inflection points $\left(\mu + \sigma, \frac{\sqrt{2}}{2 \, \sqrt{\pi} \sigma \sqrt{e}}\right)$ and $\left(\mu - \sigma, \frac{\sqrt{2}}{2 \, \sqrt{\pi} \sigma \sqrt{e}}\right)$ Taking the second derivative equal to zero gives possible inflection points at and Plugging into the function gives inflection points and
html('A nice graph of the function f(x) with maximum at the red point') html('and green inflection points.') var('x,mu,sigma') f(x) = e^(-((x-mu)/sigma)^2/2)/(sigma*sqrt(2*pi)) f.show() @interact def _(m=slider(-10,10,1,0,label='$\mu$'),s=slider(1/5,5,1/10,1,label='$\sigma$')): titletext = "Normal Curve with mean "+str(m)+" and standard deviation "+str(s) G = plot(f(mu=m,sigma=s),(x,m-5*s,m+5*s)) G += point((0,1),size=1)+point((12,0),size=1)+point((-12,0),size=1) G += point((m,f(x=m,mu=m,sigma=s)),color='red',size=20) G += point((m+s,f(x=m+s,mu=m,sigma=s)),color='green',size=20) G += point((m-s,f(x=m-s,mu=m,sigma=s)),color='green',size=20) show(G,figsize=(5,3),title=titletext,ymin=0,ymax=1,xmin=-15,xmax=15)

A nice graph of the function f(x) with maximum at the red point and green inflection points.
$\mu$
$\sigma$

## Click to the left again to hide and once more to show the dynamic interactive window

# Let's redo this using Moment Generating Functions var('t') M = integrate(e^(t*x)*f,x,-oo,oo).simplify() M.show()
M(t=0)
 1 1
MP = derivative(M,t) MP(t=0).show()
MPP = derivative(M,t,2) MPP(t=0).show()
MPPP = derivative(M,t,3) MPPP(t=0).show() skewness = ((MPPP(t=0)-3*mu*MPP(t=0)+2*mu^3)/sigma^3).simplify() skewness.show() # Note this is really just zero!
MPPPP = derivative(M,t,4) MPPPP(t=0).show() kurtosis = ((MPPPP(t=0)-4*mu*MPPP(t=0)+6*mu^2*MPP(t=0)-3*mu^4)/sigma^4).simplify() kurtosis.factor()
 3 3
@interact(layout=dict(top=[['a', 'b']],bottom=[['mu','sigma']])) def _(a=input_box(-2,width=10,label='a = '),b=input_box(2,width=10,label='b = '),mu=input_box(0,width=8,label='$\mu =$'),sigma=input_box(1,width=8,label='$\sigma =$')): f = e^(-((x-mu)/sigma)^2/2)/(sigma*sqrt(2*pi)) P = integral_numerical(f,a,b)[0] print "P("+str(a)+" < X < "+str(b)+") ~= "+str(P)

 a = b =
 $\mu =$ $\sigma =$