Các vấn đề trong đó Conjugate gradient hoạt động tốt hơn nhiều so với GMRES


17

Tôi quan tâm đến các trường hợp Conjugate gradient hoạt động tốt hơn nhiều so với phương pháp GMRES.

Nói chung, CG là lựa chọn tốt hơn trong nhiều trường hợp SPD (đối xứng dương tính xác định) vì nó yêu cầu lưu trữ ít hơn và ràng buộc về mặt lý thuyết về tốc độ hội tụ cho CG là gấp đôi so với GMRES đó. Có bất kỳ vấn đề trong đó tỷ lệ như vậy thực sự được quan sát? Có đặc điểm nào của các trường hợp trong đó GMRES hoạt động tốt hơn hoặc có thể so sánh với CG cho cùng một số spmv (phép nhân vectơ ma trận thưa thớt).

Câu trả lời:


8

Một điều mà CG có lợi là nó không giảm thiểu định mức rời rạc l2cho các đa thức còn lại của nó (những gì GMRES làm). Thay vào đó, nó tối thiểu hóa một định mức do ma trận gây ra, và thông thường, định mức do ma trận này kết thúc rất gần với định mức năng lượng để phân biệt các vấn đề vật lý, và thường thì đây là một tiêu chuẩn hợp lý hơn nhiều để đo lường lỗi vì các đặc tính bảo tồn sắp tới từ vật lý.

Bạn thực sự có thể đạt được loại hiệu ứng này với GMRES nếu thực hiện hệ số Cholesky của ma trận khối không quá đắt, bạn có thể buộc các sản phẩm bên trong trở thành sản phẩm năng lượng bên trong bạn muốn.

Sau đó, các trường hợp mà người ta mong đợi CG thực hiện rất khác với GMRES sau đó là khi các hằng số ngụ ý tương đương định mức rất khác nhau. Điều này có thể đúng ví dụ trong phương pháp phổ Galerkin bậc cao trong đó định mức rời rạc l2được sử dụng trong GMRES coi tất cả các bậc tự do là bằng nhau, khi trong thực tế, độ dốc đa thức là sắc nét nhất gần ranh giới (do đó phân cụm nút), và do đó hằng số tương đương định mức giữa định mức đó và cho biết định mức liên tục L2được đưa ra bởi ma trận khối có thể rất lớn.


Muốn đưa ra một ví dụ ở đây với phương pháp bậc cao và lịch sử hội tụ của CG, GMRES và GMRES + Cholesky trick .. nhưng thật không may, mã duy nhất tôi có trong tay cho các vấn đề thứ hai là DG của loại không đối xứng .. vì vậy CG không phải là Không thể áp dụng, rất thích nhìn thấy điều này trong hành động.
Reid.Atcheson

3
Tôi nghĩ rằng câu trả lời của bạn nhận được một cái gì đó quan trọng nhưng tôi muốn bạn sẽ làm rõ. Cụ thể, câu hỏi là một câu hỏi đại số tuyến tính thuần túy, và câu trả lời của bạn nói về các chỉ tiêu vật lý và ma trận khối lượng, v.v. từ PDE số. Chúng ta có thể nói điều gì đó chính xác về việc giảm thiểu theo các chỉ tiêu khác nhau trong cùng một không gian Krylov dẫn đến các lần lặp khác nhau không?
Andrew T. Barker

Ngoài các ví dụ bằng số, tôi không nghĩ đã có một nghiên cứu lý thuyết cẩn thận giải thích cách các chuẩn mực khác nhau mang lại câu trả lời khác nhau đáng kể. Vấn đề tôi nghĩ là kết quả xoay quanh tiệm cận, và đối với một hệ thống tuyến tính cố định, kết quả lý thuyết sẽ là các yếu tố hằng số modulo giống hệt nhau. Nếu có một số nghiên cứu lý thuyết ngoài kia, tôi rất muốn xem chúng, nhưng đã hỏi một số chuyên gia đại số tuyến tính số trong khoa của tôi, có vẻ như chưa có phân tích lý thuyết chính xác nào cho thấy những gì xảy ra với các chuẩn mực khác nhau.
Reid.Atcheson

4

Tôi nghi ngờ rằng nhìn chung không có nhiều khác biệt giữa GMRES và CG cho ma trận SPD.

Ax=bAx0=0xkcxkgxkKk={b,Ab,A2b,}

ekc=xxkcA

(Aekc,ekc)=(A(xxkc),xxkc)=minyK(A(xy),xy).

Thay vào đó, GMRES giảm thiểu tối đa còn lại và thực hiện theo định mức rời rạc , sao cho Bây giờ sử dụng phương trình lỗi chúng ta cũng có thể viết GMRES dưới dạng thu nhỏ started nơi tôi muốn nhấn mạnh rằng điều này chỉ giữ cho một SPD ma trận . Sau đó, chúng tôi có CG giảm thiểu lỗi liên quan đến định mức và GMRES giảm thiểu lỗi liên quan đếnrk=bAxkg2

(rk,rk)=(bAxkg,bAxkg)=minyK(bAy,bAy).
Aek=rk
(rk,rk)=(Aekg,Aekg)=(A2ekg,ekg)
AAA2định mức. Nếu chúng ta muốn chúng cư xử rất khác nhau, theo trực giác chúng ta sẽ cần một điểm sao cho hai chuẩn mực này rất khác nhau. Nhưng đối với SPD các chuẩn mực này sẽ hoạt động khá giống nhau.AA

Để cụ thể hơn nữa, trong lần lặp đầu tiên với không gian Krylov , cả CG và GMRES sẽ xây dựng một xấp xỉ có dạng . CG sẽ chọn và GMRES sẽ chọn started Nếu là đường chéo với các mục và thì là đầu tiên Bước CG trở nên lớn gấp đôi bước GMRES đầu tiên. Có lẽ bạn có thể xây dựng vàK1={b}x1=αb

α=(b,b)(Ab,b)
α=(Ab,b)(A2b,b).
A(ϵ,1,1,1,)b=(1,1,0,0,0,)ϵ0Ab do đó, yếu tố hai sự khác biệt này tiếp tục trong suốt vòng lặp, nhưng tôi nghi ngờ nó còn tệ hơn thế nữa.

2
Đặt . Sau đó , và . Do đó , nhưng . Nghĩa là, vectơ ban đầu đã có tỷ lệ chính xác để làm cho phần dư nhỏ, nhưng cần được thu nhỏ bằng để làm cho lỗi nhỏ. b=(1,ϵ,0,0,)|b|=1+ϵbTMột2b=εbTAb=2ϵ α CG = ε - 1 + 1bTA2b=ϵ1+ϵ2αGMRES=αCG=ϵ1+12ϵ1 ϵ - 1αGMRES=21+ϵ22ϵ1
Jed Brown

3

Một điều là GMRES không bao giờ được sử dụng ở bất cứ nơi nào có thể áp dụng CG. Tôi không nghĩ rằng nó có ý nghĩa để so sánh hai. Đối với ma trận SPD, CG chắc chắn là người chiến thắng vì các yêu cầu lưu trữ và lý do bạn đã đề cập ở trên. Một câu hỏi thú vị là, để tìm một phần mở rộng của CG, có thể áp dụng cho các vấn đề không thể áp dụng CG. Có những phương pháp như BiCG-stab không yêu cầu tăng bộ nhớ tuyến tính như GMRES, nhưng sự hội tụ không tốt bằng GMRES (đôi khi ngay cả với GMRES được khởi động lại).


2
Có các sơ đồ IDR thu hẹp khoảng cách giữa GMRES và BiCG về tiết kiệm bộ nhớ, tính ổn định và hội tụ: ta.twi.tudelft.nl/nw/users/gijzen/IDR.html Tôi không chắc chắn rằng tôi đồng ý rằng GMRES không nên được sử dụng nếu CG có thể. Nếu bạn có thể thực hiện một nhân tố mạnh mẽ của một ma trận gây ra định mức năng lượng của bạn, thì bạn có thể đưa nó vào một phép lặp Lanczos đối xứng và có được một giải pháp tái phát ba kỳ sẽ hoạt động gần giống như CG. Tất nhiên, CG là tùy chọn dễ dàng hơn, nhưng tùy chọn có sẵn :)
Reid.Atcheson

2
Ví dụ, nếu bạn sử dụng Krylov mượt mà hơn, thì GMRES có thể thích hợp hơn vì nó sử dụng một định mức yếu hơn nhắm vào các giá trị riêng lớn hơn có xu hướng tần số cao hơn.
Jed Brown
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.