https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_method&feed=atom&action=history
Biconjugate gradient method - Revision history
2024-03-29T01:47:55Z
Revision history for this page on the wiki
MediaWiki 1.16.5
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_method&diff=6131&oldid=prev
Derouler: /* Algorithm */ Made the use of = and := consistent
2006-07-27T15:04:54Z
<p><span class="autocomment">Algorithm: </span> Made the use of = and := consistent</p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 15:04, 27 July 2006</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 16:</td>
<td colspan="2" class="diff-lineno">Line 16:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: r := b - A<math>\cdot</math>x <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: r := b - A<math>\cdot</math>x <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>: rtilde = r <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>: rtilde <ins class="diffchange diffchange-inline">:</ins>= r <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: for i := 1 step 1 until max_itr do</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: for i := 1 step 1 until max_itr do</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: solve (M<math>\cdot</math>z = r ) <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: solve (M<math>\cdot</math>z = r ) <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: solve (M<sup>T</sup><math>\cdot</math>ztilde = rtilde ) <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: solve (M<sup>T</sup><math>\cdot</math>ztilde = rtilde ) <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: rho_1 = z<math>\cdot</math>rtilde <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: rho_1 <ins class="diffchange diffchange-inline">:</ins>= z<math>\cdot</math>rtilde <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: if i = 1 then </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: if i = 1 then </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>::: p := z <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>::: p := z <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>::: ptilde := ztilde <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>::: ptilde := ztilde <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: else <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: else <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>::: beta = (rho_1/rho_2) <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>::: beta <ins class="diffchange diffchange-inline">:</ins>= (rho_1/rho_2) <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>::: p = z + beta * p <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>::: p <ins class="diffchange diffchange-inline">:</ins>= z + beta * p <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>::: ptilde = ztilde + beta * ptilde <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>::: ptilde <ins class="diffchange diffchange-inline">:</ins>= ztilde + beta * ptilde <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: end if <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: end if <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: q := A<math>\cdot</math>p <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: q := A<math>\cdot</math>p <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: qtilde := A<sup>T</sup><math>\cdot</math>ptilde <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: qtilde := A<sup>T</sup><math>\cdot</math>ptilde <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: alpha = rho_1 / (ptilde<math>\cdot</math>q) <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: alpha <ins class="diffchange diffchange-inline">:</ins>= rho_1 / (ptilde<math>\cdot</math>q) <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: x = x + alpha * p <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: x <ins class="diffchange diffchange-inline">:</ins>= x + alpha * p <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: r = r - alpha * q <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: r <ins class="diffchange diffchange-inline">:</ins>= r - alpha * q <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: rtilde = rtilde - alpha * qtilde <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: rtilde <ins class="diffchange diffchange-inline">:</ins>= rtilde - alpha * qtilde <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: rho_2 = rho_1 <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: rho_2 <ins class="diffchange diffchange-inline">:</ins>= rho_1 <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: end (i-loop)</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: end (i-loop)</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: <br> </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: <br> </div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 42:</td>
<td colspan="2" class="diff-lineno">Line 42:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: return TRUE <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: return TRUE <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>----</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>----</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del style="color: red; font-weight: bold; text-decoration: none;"></del></div></td><td colspan="2"> </td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Reference ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Reference ===</div></td></tr>
</table>
Derouler
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_method&diff=6130&oldid=prev
Derouler: /* Reference */
2006-07-27T14:58:37Z
<p><span class="autocomment">Reference</span></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 14:58, 27 July 2006</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 45:</td>
<td colspan="2" class="diff-lineno">Line 45:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Reference ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Reference ===</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>#'''Richard Barret, Michael Berry, Tony F. Chan, James Demmel, June M. Donato, Jack Dongarra, Victor Eijihout, Roldan Pozo, Charles Romine, Henk Van der Vorst''', "Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods", Philadelphia, PA: SIAM, 1994. [http://www.netlib.org/linalg/html_templates/<del class="diffchange diffchange-inline">Templates</del>.html | http://www.netlib.org/linalg/html_templates/Templates.html]</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>#'''Richard Barret, Michael Berry, Tony F. Chan, James Demmel, June M. Donato, Jack Dongarra, Victor Eijihout, Roldan Pozo, Charles Romine, Henk Van der Vorst''', "Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods", Philadelphia, PA: SIAM, 1994. [http://www.netlib.org/linalg/html_templates/<ins class="diffchange diffchange-inline">node32</ins>.html | http://www.netlib.org/linalg/html_templates/Templates.html]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>----</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>----</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><i> Return to [[Numerical methods | Numerical Methods]] </i></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><i> Return to [[Numerical methods | Numerical Methods]] </i></div></td></tr>
</table>
Derouler
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_method&diff=6129&oldid=prev
Derouler: /* Reference */
2006-07-27T14:56:36Z
<p><span class="autocomment">Reference</span></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 14:56, 27 July 2006</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 45:</td>
<td colspan="2" class="diff-lineno">Line 45:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Reference ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Reference ===</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>#'''Richard Barret, Michael Berry, Tony F. Chan, James Demmel, June M. Donato, Jack Dongarra, Victor Eijihout, Roldan Pozo, Charles Romine, Henk Van der Vorst''', "Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods"</div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>#'''Richard Barret, Michael Berry, Tony F. Chan, James Demmel, June M. Donato, Jack Dongarra, Victor Eijihout, Roldan Pozo, Charles Romine, Henk Van der Vorst''', "Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods"<ins class="diffchange diffchange-inline">, Philadelphia, PA: SIAM, 1994. [http://www.netlib.org/linalg/html_templates/Templates.html | http://www.netlib.org/linalg/html_templates/Templates.html]</ins></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>----</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>----</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><i> Return to [[Numerical methods | Numerical Methods]] </i></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div><i> Return to [[Numerical methods | Numerical Methods]] </i></div></td></tr>
</table>
Derouler
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_method&diff=6128&oldid=prev
Derouler: /* System of equation */
2006-07-27T14:54:12Z
<p><span class="autocomment">System of equation</span></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 14:54, 27 July 2006</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 8:</td>
<td colspan="2" class="diff-lineno">Line 8:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>A = coefficient matrix <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>A = coefficient matrix <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>M = the <del class="diffchange diffchange-inline">precondioning </del>matrix <del class="diffchange diffchange-inline">constructued </del>by matrix A <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>M = the <ins class="diffchange diffchange-inline">preconditioning </ins>matrix <ins class="diffchange diffchange-inline">constructed </ins>by matrix A <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Algorithm ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Algorithm ===</div></td></tr>
</table>
Derouler
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_method&diff=4879&oldid=prev
Tsaad at 20:35, 15 December 2005
2005-12-15T20:35:33Z
<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 20:35, 15 December 2005</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 16:</td>
<td colspan="2" class="diff-lineno">Line 16:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: Allocate temerary reals rho_1, rho_2 , alpha, beta<br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: Allocate temerary reals rho_1, rho_2 , alpha, beta<br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>: r := b - A<math>\<del class="diffchange diffchange-inline">bullet</del></math>x <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>: r := b - A<math>\<ins class="diffchange diffchange-inline">cdot</ins></math>x <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: rtilde = r <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: rtilde = r <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: for i := 1 step 1 until max_itr do</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: for i := 1 step 1 until max_itr do</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: solve (M<math>\<del class="diffchange diffchange-inline">bullet</del></math>z = r ) <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: solve (M<math>\<ins class="diffchange diffchange-inline">cdot</ins></math>z = r ) <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: solve (M<sup>T</sup><math>\<del class="diffchange diffchange-inline">bullet</del></math>ztilde = rtilde ) <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: solve (M<sup>T</sup><math>\<ins class="diffchange diffchange-inline">cdot</ins></math>ztilde = rtilde ) <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: rho_1 = z<math>\<del class="diffchange diffchange-inline">bullet</del></math>rtilde <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: rho_1 = z<math>\<ins class="diffchange diffchange-inline">cdot</ins></math>rtilde <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: if i = 1 then </div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: if i = 1 then </div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>::: p := z <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>::: p := z <br></div></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 31:</td>
<td colspan="2" class="diff-lineno">Line 31:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>::: ptilde = ztilde + beta * ptilde <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>::: ptilde = ztilde + beta * ptilde <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: end if <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: end if <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: q := A<math>\<del class="diffchange diffchange-inline">bullet</del></math>p <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: q := A<math>\<ins class="diffchange diffchange-inline">cdot</ins></math>p <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: qtilde := A<sup>T</sup><math>\<del class="diffchange diffchange-inline">bullet</del></math>ptilde <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: qtilde := A<sup>T</sup><math>\<ins class="diffchange diffchange-inline">cdot</ins></math>ptilde <br></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div>:: alpha = rho_1 / (ptilde<math>\<del class="diffchange diffchange-inline">bullet</del></math>q) <br></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div>:: alpha = rho_1 / (ptilde<math>\<ins class="diffchange diffchange-inline">cdot</ins></math>q) <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: x = x + alpha * p <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: x = x + alpha * p <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: r = r - alpha * q <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>:: r = r - alpha * q <br></div></td></tr>
</table>
Tsaad
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_method&diff=3107&oldid=prev
Zxaar at 06:25, 3 October 2005
2005-10-03T06:25:59Z
<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 06:25, 3 October 2005</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 47:</td>
<td colspan="2" class="diff-lineno">Line 47:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Reference ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Reference ===</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>#'''Richard Barret, Michael Berry, Tony F. Chan, James Demmel, June M. Donato, Jack Dongarra, Victor Eijihout, Roldan Pozo, Charles Romine, Henk Van der Vorst''', "Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods"</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>#'''Richard Barret, Michael Berry, Tony F. Chan, James Demmel, June M. Donato, Jack Dongarra, Victor Eijihout, Roldan Pozo, Charles Romine, Henk Van der Vorst''', "Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods"</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">----</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"><i> Return to [[Numerical methods | Numerical Methods]] </i></ins></div></td></tr>
</table>
Zxaar
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_method&diff=2122&oldid=prev
Zxaar at 00:42, 15 September 2005
2005-09-15T00:42:55Z
<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 00:42, 15 September 2005</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 43:</td>
<td colspan="2" class="diff-lineno">Line 43:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: return TRUE <br></div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>: return TRUE <br></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>----</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>----</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">=== Reference ===</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins style="color: red; font-weight: bold; text-decoration: none;">#'''Richard Barret, Michael Berry, Tony F. Chan, James Demmel, June M. Donato, Jack Dongarra, Victor Eijihout, Roldan Pozo, Charles Romine, Henk Van der Vorst''', "Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods"</ins></div></td></tr>
</table>
Zxaar
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_method&diff=2121&oldid=prev
Zxaar at 00:30, 15 September 2005
2005-09-15T00:30:42Z
<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 00:30, 15 September 2005</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 12:</td>
<td colspan="2" class="diff-lineno">Line 12:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Algorithm ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Algorithm ===</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> Has to be added very soon.</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">----</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: Allocate temperary vectors r,z,p,q, rtilde,ztilde,qtilde <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: Allocate temerary reals rho_1, rho_2 , alpha, beta<br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: r := b - A<math>\bullet</math>x <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: rtilde = r <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: for i := 1 step 1 until max_itr do</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: solve (M<math>\bullet</math>z = r ) <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: solve (M<sup>T</sup><math>\bullet</math>ztilde = rtilde ) <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: rho_1 = z<math>\bullet</math>rtilde <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: if i = 1 then </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">::: p := z <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">::: ptilde := ztilde <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: else <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">::: beta = (rho_1/rho_2) <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">::: p = z + beta * p <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">::: ptilde = ztilde + beta * ptilde <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: end if <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: q := A<math>\bullet</math>p <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: qtilde := A<sup>T</sup><math>\bullet</math>ptilde <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: alpha = rho_1 / (ptilde<math>\bullet</math>q) <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: x = x + alpha * p <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: r = r - alpha * q <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: rtilde = rtilde - alpha * qtilde <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">:: rho_2 = rho_1 <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: end (i-loop)</ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: <br> </ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: deallocate all temp memory <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">: return TRUE <br></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div><ins class="diffchange diffchange-inline">----</ins></div></td></tr>
</table>
Zxaar
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_method&diff=2049&oldid=prev
Zxaar at 08:02, 14 September 2005
2005-09-14T08:02:48Z
<p></p>
<table style="background-color: white; color:black;">
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr valign='top'>
<td colspan='2' style="background-color: white; color:black;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black;">Revision as of 08:02, 14 September 2005</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 12:</td>
<td colspan="2" class="diff-lineno">Line 12:</td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Algorithm ===</div></td><td class='diff-marker'> </td><td style="background: #eee; color:black; font-size: smaller;"><div>=== Algorithm ===</div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> </div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div> <ins class="diffchange diffchange-inline">Has to be added very soon.</ins></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div> <del class="diffchange diffchange-inline">Allocate temperary vectors p, phat, s, shat, t, v, rtilde <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> Allocate temerary reals rho_1, rho_2 , alpha, beta, omega <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> r := b - A<math>\bullet</math>x <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> rtilde = r <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> for i := 1 step 1 until max_itr do</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> rho_1 = rtilde<math>\bullet</math>r <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> if i = 1 then p := r else <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> beta = (rho_1/rho_2) * (alpha/omega)<br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> p = r + beta * (p - omega * v) <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> end if <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> solve (M<math>\bullet</math>phat = p ) <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> v = A<math>\bullet</math>phat <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> alpha = rho_1 / (rtilde<math>\bullet</math>v) <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> s = r - alpha * v <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> solve (M<math>\bullet</math>shat = s ) <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> t = A * shat;</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> omega = (t<math>\bullet</math>s) / (t<math>\bullet</math>t) <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> x = x + alpha * phat + omega * shat <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> r = s - omega * t <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> rho_2 = rho_1 <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> end (i-loop)</del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> </del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> deallocate all temp memory <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
<tr><td class='diff-marker'>-</td><td style="background: #ffa; color:black; font-size: smaller;"><div><del class="diffchange diffchange-inline"> return TRUE <br></del></div></td><td class='diff-marker'>+</td><td style="background: #cfc; color:black; font-size: smaller;"><div></div></td></tr>
</table>
Zxaar
https://www.cfd-online.com/W/index.php?title=Biconjugate_gradient_method&diff=2031&oldid=prev
Zxaar at 07:07, 14 September 2005
2005-09-14T07:07:38Z
<p></p>
<p><b>New page</b></p><div>== Biconjugate gradient method ==<br />
Biconjugate gradient method could be summarized as follows <br><br />
<br />
=== System of equation ===<br />
For the given system of equation <br> Ax = b ;<br> <br />
b = source vector <br><br />
x = solution variable for which we seek the solution <br><br />
A = coefficient matrix <br><br />
<br />
M = the precondioning matrix constructued by matrix A <br><br />
<br />
<br />
=== Algorithm ===<br />
<br />
Allocate temperary vectors p, phat, s, shat, t, v, rtilde <br><br />
Allocate temerary reals rho_1, rho_2 , alpha, beta, omega <br><br />
r := b - A<math>\bullet</math>x <br><br />
rtilde = r <br><br />
for i := 1 step 1 until max_itr do<br />
rho_1 = rtilde<math>\bullet</math>r <br><br />
if i = 1 then p := r else <br><br />
beta = (rho_1/rho_2) * (alpha/omega)<br><br />
p = r + beta * (p - omega * v) <br><br />
end if <br><br />
solve (M<math>\bullet</math>phat = p ) <br><br />
v = A<math>\bullet</math>phat <br><br />
alpha = rho_1 / (rtilde<math>\bullet</math>v) <br><br />
s = r - alpha * v <br><br />
solve (M<math>\bullet</math>shat = s ) <br><br />
t = A * shat;<br />
omega = (t<math>\bullet</math>s) / (t<math>\bullet</math>t) <br><br />
x = x + alpha * phat + omega * shat <br><br />
r = s - omega * t <br><br />
rho_2 = rho_1 <br><br />
end (i-loop)<br />
<br />
deallocate all temp memory <br><br />
return TRUE <br></div>
Zxaar