Content deleted Content added
No edit summary |
more general description of the half-iteration exit condition. e.g. matlab uses norm(b-Ax) instead of the less stable norm(s) for deciding. |
||
Line 17:
## {{math|<var>'''v'''<sub>i</sub></var> {{=}} '''<var>Ap</var>'''<sub><var>i</var></sub>}}
## {{math|<var>α</var> {{=}} <var>ρ<sub>i</sub></var>/('''<var>r̂</var>'''<sub>0</sub>, <var>'''v'''<sub>i</sub></var>)}}
## {{math|
##
##
## {{math|'''<var>t</var>''' {{=}} '''<var>As</var>'''}}
## {{math|<var>ω<sub>i</sub></var> {{=}} (<var>'''t'''</var>
## {{math|<var>'''x'''<sub>i</sub></var> {{=}}
## If {{math|<var>'''x'''<sub>i</sub></var>}} is accurate enough, then quit
## {{math|<var>'''r'''<sub>i</sub></var> {{=}}
===Preconditioned BiCGSTAB===
Line 39 ⟶ 40:
## {{math|<var>'''v'''<sub>i</sub></var> {{=}} '''<var>Ay</var>'''}}
## {{math|<var>α</var> {{=}} <var>ρ<sub>i</sub></var>/('''<var>r̂</var>'''<sub>0</sub>, <var>'''v'''<sub>i</sub></var>)}}
## {{math|<var>'''h'''</var> {{=}} '''<var>x</var>'''<sub><var>i<var>−1</sub> + <var>α'''y'''</var> }}
## If {{math|<var>'''h'''</var>}} is accurate enough then {{math|<var>'''x'''<sub>i</sub></var> {{=}} <var>'''h'''</var>}} and quit
## {{math|'''<var>s</var>''' {{=}} '''<var>r</var>'''<sub><var>i<var>−1</sub> − <var>α'''v'''<sub>i</sub></var>}}
▲## if || {{math|'''<var>s</var>'''}} || sufficiently small, then set {{math|<var>'''x'''<sub>i</sub></var> {{=}} '''<var>x</var>'''<sub><var>i<var>−1</sub> + <var>α'''y'''</var> }} and quit
## {{math|'''<var>z</var>''' {{=}} '''<var>K</var>'''<sup>−1</sup>'''<var>s</var>'''}}
## {{math|'''<var>t</var>''' {{=}} '''<var>Az</var>'''}}
## {{math|<var>ω<sub>i</sub></var> {{=}} ({{SubSup|'''<var>K</var>'''|1|−1}}'''<var>t</var>''', {{SubSup|'''<var>K</var>'''|1|−1}}'''<var>s</var>''')/({{SubSup|'''<var>K</var>'''|1|−1}}'''<var>t</var>''', {{SubSup|'''<var>K</var>'''|1|−1}}'''<var>t</var>''')}}
## {{math|<var>'''x'''<sub>i</sub></var> {{=}}
## If {{math|<var>'''x'''<sub>i</sub></var>}} is accurate enough then quit
## {{math|<var>'''r'''<sub>i</sub></var> {{=}} '''<var>s</var>''' − <var>ω<sub>i</sub>'''t'''</var>}}
|