Quantum algorithm for solving matrix equations of the form AX = B

Abstract Solving linear systems of equations is of vital importance in various fields of science. With the scale of calculation soaring, classical computers are intractable, and the advantage of quantum computing is reflected. Quantum algorithm has exponential acceleration in solving the linear systems <?CDATA $A\vec{x} = \vec{b}$?> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"> <mml:mi>A</mml:mi> <mml:mover> <mml:mi>x</mml:mi> <mml:mo>⃗</mml:mo> </mml:mover> <mml:mo>=</mml:mo> <mml:mover> <mml:mi>b</mml:mi> <mml:mo>⃗</mml:mo> </mml:mover> </mml:math> for sparse and well-conditioned coefficient matrix A with dimension N × N . In this paper, we present a quantum algorithm to solve matrix equations of the form AX = B , where <?CDATA $X = (\vec{x}_1,\vec{x}_2,{\ldots},\vec{x}_n), B = (\vec{b}_1,\vec{b}_2,{\ldots},\vec{b}_n), \vec{x}_k$?> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"> <mml:mi>X</mml:mi> <mml:mo>=</mml:mo> <mml:mo stretchy="false">(</mml:mo> <mml:msub> <mml:mover> <mml:mi>x</mml:mi> <mml:mo>⃗</mml:mo> </mml:mover> <mml:mn>1</mml:mn> </mml:msub> <mml:mo>,</mml:mo> <mml:msub> <mml:mover> <mml:mi>x</mml:mi> <mml:mo>⃗</mml:mo> </mml:mover> <mml:mn>2</mml:mn> </mml:msub> <mml:mo>,</mml:mo> <mml:mrow> <mml:mo>…</mml:mo> </mml:mrow> <mml:mo>,</mml:mo> <mml:msub> <mml:mover> <mml:mi>x</mml:mi> <mml:mo>⃗</mml:mo> </mml:mover> <mml:mi>n</mml:mi> </mml:msub> <mml:mo stretchy="false">)</mml:mo> <mml:mo>,</mml:mo> <mml:mi>B</mml:mi> <mml:mo>=</mml:mo> <mml:mo stretchy="false">(</mml:mo> <mml:msub> <mml:mover> <mml:mi>b</mml:mi> <mml:mo>⃗</mml:mo> </mml:mover> <mml:mn>1</mml:mn> </mml:msub> <mml:mo>,</mml:mo> <mml:msub> <mml:mover> <mml:mi>b</mml:mi> <mml:mo>⃗</mml:mo> </mml:mover> <mml:mn>2</mml:mn> </mml:msub> <mml:mo>,</mml:mo> <mml:mrow> <mml:mo>…</mml:mo> </mml:mrow> <mml:mo>,</mml:mo> <mml:msub> <mml:mover> <mml:mi>b</mml:mi> <mml:mo>⃗</mml:mo> </mml:mover> <mml:mi>n</mml:mi> </mml:msub> <mml:mo stretchy="false">)</mml:mo> <mml:mo>,</mml:mo> <mml:msub> <mml:mover> <mml:mi>x</mml:mi> <mml:mo>⃗</mml:mo> </mml:mover> <mml:mi>k</mml:mi> </mml:msub> </mml:math> and <?CDATA $\vec{b}_k$?> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"> <mml:msub> <mml:mover> <mml:mi>b</mml:mi> <mml:mo>⃗</mml:mo> </mml:mover> <mml:mi>k</mml:mi> </mml:msub> </mml:math> are unit vectors. The problem can be intuitively treated as solving n linear systems simultaneously, which will needs <?CDATA $O(n\log{N})$?> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"> <mml:mrow> <mml:mi>O</mml:mi> <mml:mo stretchy="false">(</mml:mo> <mml:mi>n</mml:mi> <mml:mi>log</mml:mi> <mml:mi>N</mml:mi> <mml:mo stretchy="false">)</mml:mo> </mml:mrow> </mml:math> complexity by the famous HHL algorithm. We demonstrate that in our algorithm the scale of complexity is <?CDATA $O(\log{nN})$?> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" overflow="scroll"> <mml:mi>O</mml:mi> <mml:mo stretchy="false">(</mml:mo> <mml:mo form="prefix">log</mml:mo> <mml:mrow> <mml:mi>n</mml:mi> <mml:mi>N</mml:mi> </mml:mrow> <mml:mo stretchy="false">)</mml:mo> </mml:math> . In the error analysis part, phase estimation is discussed in details.