Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
DIIS
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Details == At each iteration, an approximate error vector, {{math|'''e'''<sub>''i''</sub>}}, corresponding to the variable value, {{math|'''p'''<sub>''i''</sub>}} is determined. After sufficient iterations, a linear combination of {{math|''m''}} previous error vectors is constructed :<math>\mathbf e_{m+1}=\sum_{i = 1}^m\ c_i\mathbf e_i.</math> The DIIS method seeks to minimize the norm of {{math|'''e'''<sub>''m''+1</sub>}} under the constraint that the coefficients sum to one. The reason why the coefficients must sum to one can be seen if we write the trial vector as the sum of the exact solution ({{math|'''p'''<sup>f</sup>}}) and an error vector. In the DIIS approximation, we get: :<math> \begin{align} \mathbf p &= \sum_i c_i \left( \mathbf p^\text{f} + \mathbf e_i \right) \\ &= \mathbf p^\text{f} \sum_i c_i + \sum_i c_i \mathbf e_i \end{align} </math> We minimize the second term while it is clear that the sum coefficients must be equal to one if we want to find the exact solution. The minimization is done by a [[Lagrange multiplier]] technique. Introducing an undetermined multiplier {{math|''Ξ»''}}, a Lagrangian is constructed as :<math> \begin{align} L&=\left\|\mathbf e_{m+1}\right\|^2-2\lambda\left(\sum_i\ c_i-1\right),\\ &=\sum_{ij}c_jB_{ji}c_i-2\lambda\left(\sum_i\ c_i-1\right),\text{ where } B_{ij}=\langle\mathbf e_j, \mathbf e_i\rangle. \end{align} </math> Equating zero to the derivatives of {{math|''L''}} with respect to the coefficients and the multiplier leads to a system of {{math|(''m'' + 1)}} [[linear equation]]s to be solved for the {{math|''m''}} coefficients (and the Lagrange multiplier). :<math>\begin{bmatrix} B_{11} & B_{12} & B_{13} & ... & B_{1m} & -1 \\ B_{21} & B_{22} & B_{23} & ... & B_{2m} & -1 \\ B_{31} & B_{32} & B_{33} & ... & B_{3m} & -1 \\ \vdots & \vdots & \vdots & \vdots & \ddots & \vdots \\ B_{m1} & B_{m2} & B_{m3} & ... & B_{mm} & -1 \\ 1 & 1 & 1 & ... & 1 & 0 \end{bmatrix} \begin{bmatrix} c_1 \\ c_2 \\ c_3 \\ \vdots \\ c_m \\ \lambda \end{bmatrix}= \begin{bmatrix} 0 \\ 0 \\ 0 \\ \vdots \\ 0 \\ 1 \end{bmatrix} </math> Moving the minus sign to {{math|''Ξ»''}}, results in an equivalent symmetric problem. :<math>\begin{bmatrix} B_{11} & B_{12} & B_{13} & ... & B_{1m} & 1 \\ B_{21} & B_{22} & B_{23} & ... & B_{2m} & 1 \\ B_{31} & B_{32} & B_{33} & ... & B_{3m} & 1 \\ \vdots & \vdots & \vdots & \vdots & \ddots & \vdots \\ B_{m1} & B_{m2} & B_{m3} & ... & B_{mm} & 1 \\ 1 & 1 & 1 & ... & 1 & 0 \end{bmatrix} \begin{bmatrix} c_1 \\ c_2 \\ c_3 \\ \vdots \\ c_m \\ -\lambda \end{bmatrix}= \begin{bmatrix} 0 \\ 0 \\ 0 \\ \vdots \\ 0 \\ 1 \end{bmatrix} </math> The coefficients are then used to update the variable as :<math>\mathbf p_{m+1}=\sum_{i = 1}^m c_i\mathbf p_i.</math>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)