2012-01-22 21 views
8

Tôi cố gắng để hiểu các định nghĩa Matlab sau cho reltol và AbsTol thông số:định nghĩa khoan dung tương đối và tuyệt đối trong Matlab giải

RelTol — This tolerance is a measure of the error relative to the size of each 
solution component. Roughly, it controls the number of correct digits in all 
solution components, except those smaller than thresholds AbsTol(i).The default, 
1e-3, corresponds to 0.1% accuracy. 

AbsTol — AbsTol(i) is a threshold below which the value of the ith solution 
component is unimportant. The absolute error tolerances determine the accuracy 
when the solution approaches zero.

Tôi không hiểu tại sao AbsTol xác định tính chính xác khi giải pháp tiếp cận zero (trên thực tế, nếu giải pháp của vấn đề của tôi là một quỹ đạo tròn bán kính 7000 km, nó không đáp ứng được) và tại sao RelTol kiểm soát số chữ số chính xác trong tất cả các thành phần của giải pháp, ngoại trừ những số nhỏ hơn ngưỡng AbsTol (i). Các biểu thức thực tế để xác định từng dung sai là gì? Tôi muốn nhận được các định nghĩa đơn giản và dễ hiểu hơn.

Trả lời

7

Khi bạn thực hiện tối ưu hóa, bạn cần quyết định thời điểm dừng. Một cách để kiểm tra xem liệu giải pháp của bạn có đủ tốt hay không là kiểm tra xem giải pháp vẫn đang thay đổi đáng kể. Có hai cách để đo lường mức độ thay đổi của giải pháp: thay đổi tương đối (tức là% thay đổi) hoặc thay đổi tuyệt đối. Nó làm cho rất nhiều ý nghĩa để kiểm tra sự thay đổi tương đối, vì một sự thay đổi của 5 có nghĩa là một cái gì đó rất khác nhau khi giải pháp là khoảng 1 hơn khi nó là khoảng 100000. Do đó, thói quen tối ưu hóa kiểm tra, tại mỗi iteration iabs(1-x(i)/x(i-1))<relTol, tức là theo phân số mà giải pháp mới đã thay đổi kể từ lần lặp cuối cùng. Lưu ý rằng x có thể là một loạt các giải pháp nếu bạn đang tối ưu hóa nhiều tham số cùng một lúc (giải pháp do đó có "nhiều thành phần"). Tất nhiên, bạn muốn điều kiện được đáp ứng cho tất cả "thành phần giải pháp" trước khi bạn ngừng tối ưu hóa thêm.

Dung sai tương đối, tuy nhiên, trở nên có vấn đề khi giải pháp bằng 0, vì x/0 không được xác định. Vì vậy, nó có ý nghĩa để cũng nhìn vào sự thay đổi tuyệt đối về giá trị, và bỏ tối ưu hóa khi abs(x(i)-x(i-1))<absTol. Nếu bạn chọn absTol nhỏ đủ, nó sẽ chỉ được relTol mà đếm cho các giải pháp lớn, trong khi absTol chỉ trở nên có liên quan nếu các giải pháp nói đến nằm xung quanh 0.

Kể từ khi giải dừng lại khi một trong hai tiêu chí được hoàn thành, làm thế nào bạn đóng một giải pháp tối ưu (cục bộ) được xác định bởi absTol hoặc relTol. Ví dụ: nếu relTol là 10%, bạn sẽ không bao giờ nhận được gần hơn 10% cho giải pháp tối ưu, trừ khi giải pháp của bạn bằng 0, trong trường hợp tiêu chí absTol (của, ví dụ: 0,0101) được thỏa mãn trước tiêu chí relTol.

+0

Cảm ơn câu trả lời của bạn. Tôi vẫn còn một số nghi ngờ: Tại sao RelTol kiểm soát số lượng chữ số chính xác trong giải pháp? Nếu bất kỳ thành phần giải pháp nào nhỏ hơn AbsTol, làm cách nào tôi có thể kiểm soát số chữ số chính xác đó? – julian

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