(1) Byłoby pomocne, gdyby podać jawny kod, którego używasz. W ten sposób inni (czytaj: ja) nie muszą kodować go osobno.
(2) Jeśli całka istnieje, musi wynosić zero. Dzieje się tak, ponieważ negujesz czynnik n (y) -n (x), gdy zamieniasz x i y, ale zachowujesz resztę tak samo. Jednak symetria zakresu integracji oznacza, że kwoty tylko zmieniają nazwy zmiennych, a więc muszą pozostać takie same.
(3) Oto kod, który pokazuje, że będzie zero, przynajmniej jeśli wyzerujemy pojedynczą część i mały pas wokół niej.
a = 1;
b = 1;
beta = 1;
eps[x_] := 2*(a-b*Cos[x])
n[x_] := 1/(1+Exp[beta*eps[x]])
delta = .001;
pw[x_,y_] := Piecewise[{{1,Abs[Abs[x]-Abs[y]]>delta}}, 0]
Dodajemy 1 do integrandu, aby uniknąć problemów z dokładnością przy wynikach bliskich zeru.
NIntegrate[1+Cos[(x+y)/2]^2*(n[x]-n[y])/(eps[x]-eps[y])^2*pw[Cos[x],Cos[y]],
{x,-Pi,Pi}, {y,-Pi,Pi}]/(4*Pi^2)
Otrzymuję wynik poniżej.
NIntegrate::slwcon:
Numerical integration converging too slowly; suspect one of the following:
singularity, value of the integration is 0, highly oscillatory integrand,
or WorkingPrecision too small.
NIntegrate::eincr:
The global error of the strategy GlobalAdaptive has increased more than
2000 times. The global error is expected to decrease monotonically after a
number of integrand evaluations. Suspect one of the following: the
working precision is insufficient for the specified precision goal; the
integrand is highly oscillatory or it is not a (piecewise) smooth
function; or the true value of the integral is 0. Increasing the value of
the GlobalAdaptive option MaxErrorIncreases might lead to a convergent
numerical integration. NIntegrate obtained 39.4791 and 0.459541
for the integral and error estimates.
Out[24]= 1.00002
Jest to dobry sygnał, że nieskażony wynik będzie wynosił zero.
(4) Zastępując cx dla cos (x) i cy dla cos (y) i usuwając czynniki zewnętrzne dla celów oceny zbieżności, podaje poniższe wyrażenie.
((1 + E^(2*(1 - cx)))^(-1) - (1 + E^(2*(1 - cy)))^(-1))/
(2*(1 - cx) - 2*(1 - cy))^2
Rozszerzenie serii w cy, wyśrodkowany na cx, wskazuje biegun rzędu 1. Tak więc wydaje się być całką pojedynczą.
Daniel Lichtblau
W języku Mathematica, jak na przykład "Wyłączenia -> {Cos [x] == Cos [y]}", lub można ręcznie podzielić zakres ... – Simon
lub zmienić vary na xi_ \ pm = (x \ pm y)/2 (odpowiada to przestrzeni obrotowej, więc musisz także dbać o swoje ograniczenia), tak aby bieguny w każdym var były niezależne od innych var (ponieważ cos (x) -cos (y) jest oddzielny fn z xi_ \ - lub przynajmniej tak myślę). to nie jest pytanie programistyczne, nawiasem mówiąc (nie że ja głosuję by zamknąć to albo coś). – acl