Usando la sugerencia de Anthony no debería ser difícil. Aquí hay un código Matlab muy sencillo. Esto debería ilustrar el método general. Uno puede, por supuesto, cambiar la función y también afinar detalles como la forma de elegir los puntos de evaluación, cuántos, y así sucesivamente.
function beat(a,b)
% Method 1: Just take a long interval.
M = 2000*pi;
N = 1e8;
x = linspace(0,M,N);
mean(f(x,a,b) > 0)
% Method 2 (Anthony Quas): Sample random points
% from the [0,2pi]^2 torus, and do Monte Carlo integration.
s = unifrnd(0, 2*pi, 1, N);
t = unifrnd(0, 2*pi, 1, N);
mean(g(s,t,a,b) > 0)
end
function result=f(x,a,b)
result = 10+3*cos(a*x-b*x)+13*cos(a*x+b*x)+2*cos(3/2*a*x)+17*cos(b*x);
end
function result=g(s,t,a,b)
result = 10+3*cos(2*s-2*t)+13*cos(2*s+2*t)+2*cos(3*s)+17*cos(2*t);
end