Tôi đang cố tính toán tích phân xác định. Tôi viết:Nintegrate không hội tụ gần một điểm không nằm trong tích phân xác định của tôi?
NIntegrate[expression, {x, 0, 1}, WorkingPrecision -> 100]
"biểu thức" được mô tả bên dưới. WorkPrecision đã được thêm vào để trợ giúp với lỗi khác.
tôi nhận được một lỗi:
"NIntegrate::ncvb: NIntegrate failed to converge to prescribed accuracy after 9 recursive bisections in x near {x} = {<<156>>}. NIntegrate obtained <<157>> and <<160>> for the integral and error estimates. >>"
Tại sao tôi nhận được lỗi này cho near{x} = {<<156>>}
khi tôi chỉ nhìn vào 0<x<1
? Và các dấu ngoặc nhọn đôi xung quanh con số có ý nghĩa gì?
Biểu thức thực sự dài, vì vậy tôi nghĩ sẽ hiển thị ý nghĩa hơn khi tạo nó. Đây là phiên bản cơ bản (một số số mũ tôi cần phải là biến, nhưng đây là những giá trị thấp nhất và tôi vẫn nhận được lỗi).
F[n_] := (1 - (1 - F[n-1])^2)^2;
F[0] = x;
Expr[n_]:= (1/(1-F[n]))Integrate[D[F[n],x]*x,{x,x,1}];
Tôi gặp lỗi khi tích hợp Expr [3] hoặc cao hơn. Kỳ lạ thay, khi tôi sử dụng Tích hợp thông thường và sau đó // N ở cuối, tôi nhận được một số phức cho n = 2.
Sau một số thử nghiệm, lỗi sẽ biến mất trong một số trường hợp nếu tôi tăng độ chính xác làm việc, mặc dù đó không phải là thông báo lỗi giúp bạn thực hiện. Khi tôi vẽ khoảng thời gian, nó đi ra rất dao động trong một phạm vi nhất định, mặc dù nó không nên. Đó là một phần nhỏ mặc dù ... có lẽ nó đã làm với độ chính xác được như vậy mà các denom. làm tròn số không ở một số điểm? –
Mẹo chung quan trọng trong các tình huống này: Khi bạn tăng WorkingPrecision, lưu ý rằng theo mặc định, PrecisionGoal cao hơn được sử dụng, điều này có thể làm cho vấn đề khó khăn hơn nhiều. Nếu bạn chỉ yêu cầu, ví dụ: 6 con số đáng kể, thêm một thiết lập rõ ràng PrecisionGoal -> 6. –
@Andrew: Cảm ơn bạn! Tôi không yêu cầu nhiều chữ số, vì vậy điều đó rất hữu ích. – OctaviaQ