Srovnání konvergence
klesání s optimální velikostí kroku (zeleně) a konjugovaným vektorem (červeně) pro minimalizaci kvadratické funkce spojené s daným lineárním systémem. Konjugovaný gradient za předpokladu přesné aritmetiky konverguje maximálně
n kroky, kde
n je velikost matice systému (zde
n = 2).
v matematika, metoda konjugovaného gradientu je algoritmus pro numerické řešení zvláště soustavy lineárních rovnic, jmenovitě ti, jejichž matice je symetrický a pozitivní-definitivní. Metoda sdruženého přechodu je často implementována jako iterační algoritmus, použitelné pro řídký systémy, které jsou příliš velké na to, aby je bylo možné zpracovat přímou implementací nebo jinými přímými metodami, jako je Choleský rozklad. Při numerickém řešení často vznikají velké řídké systémy parciální diferenciální rovnice nebo problémy s optimalizací.
Metodu konjugovaného přechodu lze také použít k řešení neomezeného optimalizace problémy jako minimalizace energie. Byl vyvinut hlavně společností Magnus Hestenes a Eduard Stiefel,[1][2] kdo to naprogramoval na Z4.[3]
The biconjugate gradientní metoda poskytuje zobecnění nesymetrických matic. Rozličný metody nelineárního konjugovaného gradientu hledat minima nelineárních rovnic.
Popis problému řešeného přechody konjugátu
Předpokládejme, že chceme vyřešit soustava lineárních rovnic

pro vektor X, kde je známo n × n matice A je symetrický (tj., AT = A), pozitivní-definitivní (tj. XTSekera > 0 pro všechny nenulové vektory X v Rn), a nemovitý, a b je také známý. Označujeme jedinečné řešení tohoto systému
.
Jako přímá metoda
Říkáme, že dva nenulové vektory u a proti jsou sdružené (s ohledem na A) pokud

Od té doby A je symetrický a kladně definitivní, levá strana definuje znak vnitřní produkt

Dva vektory jsou konjugovány právě tehdy, pokud jsou kolmé vzhledem k tomuto vnitřnímu produktu. Být konjugátem je symetrický vztah: pokud u je konjugován s proti, pak proti je konjugován s u. Předpokládejme to

je sada n vzájemně konjugované vektory (s ohledem na A). Pak P tvoří a základ pro
a můžeme vyjádřit řešení X∗ z
na tomto základě:

Na základě této expanze vypočítáme:

Násobení doleva
:

střídání
a
:

pak
a pomocí
výnosy

z čehož vyplývá

To poskytuje následující metodu řešení rovnice Sekera = b: najít posloupnost n konjugujte směry a poté vypočítejte koeficienty αk.
Jako iterativní metoda
Pokud zvolíme konjugované vektory pk pečlivě pak možná nebudeme potřebovat všechny, abychom získali dobrou aproximaci řešení X∗. Chceme tedy považovat metodu konjugovaného gradientu za iterační metodu. To nám také umožňuje přibližně vyřešit systémy, kde n je tak velká, že přímá metoda by zabrala příliš mnoho času.
Označíme počáteční odhad pro X∗ podle X0 (můžeme to předpokládat bez ztráty obecnosti X0 = 0, jinak zvažte systém Az = b − Sekera0 namísto). Začínání s X0 hledáme řešení a v každé iteraci potřebujeme metriku, která nám řekne, zda jsme blíže řešení X∗ (to je nám neznámé). Tato metrika vychází ze skutečnosti, že řešení X∗ je také jedinečným minimalizátorem následujícího kvadratická funkce

Existence jedinečného minimalizátoru je zjevná, protože jeho druhá derivace je dána symetrickou pozitivně-definitivní maticí

a že minimalizátor (použijte DF(X) = 0) řeší počáteční problém, který je zřejmý z jeho první derivace

To naznačuje použití prvního základního vektoru p0 být záporem gradientu F v X = X0. Přechod z F rovná se Sekera − b. Počínaje počátečním odhadem X0, to znamená, že bereme p0 = b − Sekera0. Ostatní vektory v bázi budou konjugovány s přechodem, odtud název metoda konjugovaného gradientu. Všimněte si, že p0 je také reziduální poskytované tímto počátečním krokem algoritmu.
Nechat rk být reziduální na kt krok:

Jak bylo uvedeno výše, rk je záporný gradient F v X = Xk, takže klesání metoda by vyžadovala pohyb ve směru rk. Zde však trváme na tom, že pokyny pk být navzájem konjugovány. Praktickým způsobem, jak to vynutit, je požadavek, aby byl další směr hledání vytvořen z aktuálního zbytkového a všech předchozích směrů vyhledávání.[4] To dává následující výraz:

(vliv omezení konjugace na konvergenci najdete na obrázku v horní části článku). Po tomto směru je další optimální umístění dáno vztahem

s

kde poslední rovnost vyplývá z definice rk Výraz pro
lze odvodit, pokud jeden nahradí výraz Xk+1 do F a minimalizovat to w.r.t. 

Výsledný algoritmus
Výše uvedený algoritmus poskytuje nejpřímější vysvětlení metody konjugovaného gradientu. Zdánlivě algoritmus, jak je uvedeno, vyžaduje uložení všech předchozích směrů hledání a vektorů zbytků, stejně jako mnoho násobení matice-vektor, a proto může být výpočetně nákladný. Podrobnější analýza algoritmu to však ukazuje ri je kolmý na rj , tj.
, protože i ≠ j. A pi je A-ortogonální k pj , tj.
, protože i ≠ j. To lze považovat za to, že jak algoritmus postupuje, pi a ri rozpětí stejné Krylovský podprostor. Kde ri - tvoří ortogonální základ s ohledem na standardní vnitřní produkt a - pi tvoří ortogonální základ s ohledem na vnitřní produkt indukovaný A. Proto Xk lze považovat za projekci X na Krylovském podprostoru.
Algoritmus je pro řešení podrobně popsán níže Sekera = b kde A je skutečná, symetrická, pozitivně určitá matice. Vstupní vektor X0 může být přibližné počáteční řešení nebo 0. Jedná se o jinou formulaci přesného postupu popsaného výše.

Toto je nejčastěji používaný algoritmus. Stejný vzorec pro βk se také používá u Fletcher – Reevese metoda nelineárního konjugovaného gradientu.
Výpočet alfa a beta
V algoritmu αk je zvolen tak, že
je kolmý na rk. Jmenovatel je zjednodušen od

od té doby
. The βk je zvolen tak, že
je konjugován s pk. Zpočátku, βk je

použitím

a rovnocenně

čitatel βk je přepsán jako

protože
a rk jsou kolmé záměrně. Jmenovatel je přepsán jako

pomocí toho vyhledejte pokyny pk jsou konjugovány a opět, že zbytky jsou ortogonální. To dává β v algoritmu po zrušení αk.
funkceX =Congrad(A, b, x)r = b - A * X; p = r; rsold = r' * r; pro i = 1: délka (b) Ap = A * p; alfa = rsold / (p' * Ap); X = X + alfa * p; r = r - alfa * Ap; rsnew = r' * r; -li sqrt (rsnew) <1e-10 přestávkakonec p = r + (rsnew / rsold) * p; rsold = rsnew; koneckonec
Numerický příklad
Zvažte lineární systém Sekera = b dána

provedeme dva kroky metody konjugovaného přechodu počínaje počátečním odhadem

za účelem nalezení přibližného řešení systému.
Řešení
Přesné řešení je
