clear;
clc;
n1=input('define order n1');
n2=input('define order n2');
a=input('define lower boundary');
b=input('define upper boundary');

fn1=@(x) sqrt(2)*cos(2*pi*n1*x);
gn1=@(x) sqrt(2)*sin(2*pi*n1*x);
fnfn=@(x) 2*(cos(2*pi*n1*x).^2);
fn1fn2=@(x) 2*cos(2*pi*n1*x).*cos(2*pi*n2*x);
gngn=@(x) 2*(sin(2*pi*n1*x).^2);
gn1gn2=@(x) 2*sin(2*pi*n1*x).*sin(2*pi*n2*x);
fngn=@(x) 2*cos(2*pi*n1*x).*sin(2*pi*n1*x);

dot_product_1_fn=quadgk(fn1,a,b)
dot_product_1_gn=quadgk(gn1,a,b)
dot_product_fn_fn=quadgk(fnfn,a,b)
dot_product_gn_gn=quadgk(gngn,a,b)
dot_product_fn1_fn2=quadgk(fn1fn2,a,b)
dot_product_gn1_gn2=quadgk(gn1gn2,a,b)
dot_product_fngn=quadgk(fngn,a,b)