2011-08-16 21 views
8

Tôi muốn số lượng tích hợp như sau:Làm thế nào để vượt qua kỳ dị trong hội nhập số (trong Matlab hoặc Mathematica)

eq1

nơi

eq2

a, bβ là hằng số để đơn giản, tất cả có thể được đặt thành 1.

Không sử dụng Matlab dblquad, cũng như Mathematica sử dụng NIntegrate có thể xử lý số ít được tạo bởi mẫu số. Vì nó là một tích phân kép, tôi không thể xác định nơi singularity là trong Mathematica.

Tôi chắc chắn rằng nó không phải là vô hạn từ không thể thiếu này được dựa trên lý thuyết nhiễu loạn và không có

enter image description here

đã được tìm thấy trước (chỉ cần không phải của tôi vì vậy tôi không biết làm thế nào nó làm xong).

Bất kỳ ý tưởng nào?

+1

Trong Mathematica, làm thế nào về 'Loại trừ -> {Cos [x] == Cos [y]}', hoặc bạn có thể chia nhỏ phạm vi theo cách thủ công ... – Simon

+0

hoặc thay đổi lọ thành xi_ \ pm = (x \ pm y)/2 (số lượng này để xoay không gian, vì vậy bạn sẽ phải chăm sóc các giới hạn của bạn quá), để các cực trong mỗi var độc lập với var khác (vì cos (x) -cos (y) là một fn tách biệt của xi_ \ pm-hoặc vì vậy tôi nghĩ ít nhất). đây không phải là một câu hỏi lập trình, bằng cách này (không phải là tôi đang bỏ phiếu để đóng nó hay bất cứ điều gì). – acl

Trả lời

9

(1) Sẽ hữu ích nếu bạn cung cấp mã rõ ràng bạn sử dụng. Bằng cách đó những người khác (đọc: tôi) không cần phải mã nó lên một cách riêng biệt.

(2) Nếu tích phân tồn tại, nó phải bằng không. Điều này là do bạn phủ nhận hệ số n (y) -n (x) khi bạn trao đổi x và y nhưng giữ nguyên phần còn lại. Tuy nhiên, đối xứng phạm vi tích hợp có nghĩa là số tiền chỉ đổi tên các biến của bạn, do đó nó phải giữ nguyên.

(3) Dưới đây là một số mã cho thấy nó sẽ bằng không, ít nhất là nếu chúng ta không ra phần lẻ và một dải nhỏ xung quanh nó.

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] 

Chúng tôi thêm 1 vào số nguyên để tránh các vấn đề về độ chính xác với kết quả gần bằng không.

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) 

Tôi nhận được kết quả bên dưới.

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 

Đây là dấu hiệu tốt cho thấy kết quả không được trộn sẽ bằng không.

(4) Thay thế cx cho cos (x) và cy cho cos (y) và loại bỏ các yếu tố không liên quan cho mục đích đánh giá hội tụ, đưa ra biểu thức bên dưới.

((1 + E^(2*(1 - cx)))^(-1) - (1 + E^(2*(1 - cy)))^(-1))/ 
(2*(1 - cx) - 2*(1 - cy))^2 

Mở rộng chuỗi trong cy, được căn giữa tại cx, biểu thị một cực của trật tự 1. Vì vậy, nó dường như là một tích phân số ít.

Daniel Lichtblau

+0

cảm ơn vì điều này! – Calvin

2

Hình ảnh không thể tách rời như tích phân loại Giá trị chính của Cauchy (nghĩa là nó có điểm kỳ dị mạnh). Đó là lý do tại sao bạn không thể áp dụng các kỹ thuật cầu phương chuẩn.

Bạn đã thử PrincipalValue-> True trong Mathematica tích hợp chưa?

+0

Cảm ơn @siemann, nhưng PrincipleValue chỉ có thể được sử dụng cho tích phân một chiều. – Calvin

1

Ngoài quan sát Daniel về tích hợp một tích phân lẻ trên một phạm vi đối xứng (vì vậy đối xứng cho biết kết quả nên không), bạn cũng có thể làm điều này để hiểu tụ của nó tốt hơn (tôi sẽ sử dụng latex, viết ra bằng bút và giấy nên dễ đọc hơn, mất nhiều thời gian để viết hơn là để làm, nó không phức tạp lắm):

Đầu tiên, epsilon(x)-\epsilon(y)\propto\cos(y)-\cos(x)=2\sin(\xi_+)\sin(\xi_-) nơi tôi đã xác định \xi_\pm=(x\pm y)/2 (vì vậy tôi ' đã xoay các trục bằng pi/4). Khu vực tích hợp sau đó là \xi_+ giữa \pi/\sqrt{2}-\pi/\sqrt{2}\xi_- giữa \pm(\pi/\sqrt{2}-\xi_-). Sau đó, tích phân có dạng \frac{1}{\sin^2(\xi_-)\sin^2(\xi_+)} thời gian không có phân kỳ. Vì vậy, rõ ràng, có các cực thứ hai, và điều này không hội tụ như được trình bày.

Có lẽ bạn có thể gửi email cho những người đã nhận được câu trả lời với cụm từ cos và hỏi chính xác họ đã làm gì. Có lẽ có một thủ tục thường xuyên vật lý đang được sử dụng. Hoặc bạn có thể đã cung cấp thêm thông tin về nguồn gốc vật lý của điều này (một số loại lý thuyết nhiễu loạn bậc hai cho một số loại hệ thống bosonic?), Đã không được off-topic ở đây ...

1

Có thể tôi đang mất tích một cái gì đó ở đây, nhưng tích phân f [x, y] = Cos^2 [(x + y)/2] * (n [x] -n [y])/(eps [x] -eps [y]) với n [x] = 1/(1 + Exp [Beta * eps [x]]) và eps [x] = 2 (ab * Cos [x]) thực sự là một hàm đối xứng trong x và y: f [x, -y] = f [-x, y] = f [x, y]. Do đó tích phân của nó trên bất kỳ miền [-u, u] x [-v, v] nào bằng 0. Không có tích hợp số dường như cần thiết ở đây. Kết quả chỉ bằng 0.

Các vấn đề liên quan