# qmr

プリコンディショナ付きのQuasi Minimal Residual法

## 呼び出し手順

    [x,flag,err,iter,res] = qmr(A,b,x0,M1,M1p,M2,M2p,maxi,tol)

## Parameters

A

  大きさn行n列の行列または`A*x`を返す関数

b

  右辺ベクトル

x0

  初期推定ベクトル (デフォルト: zeros(n,1))

M1

  左プリコンディショナ: 行列または`M1*x`を返す関数 (前者のデフォルト値: eye(n,n))

M1p

  `M1`が関数の場合のみ指定する 必要があります. この場合, `M1p` は `M1'*x`を返す関数です.

M2

  右プリコンディショナ: 行列または`M2*x`を 返す関数 (前者のデフォルト値: eye(n,n))

M2p

  `M2`が関数の場合のみ指定する 必要があります. この場合, `M2p`は`M2'*x`を返す関数です.

maxi

  最大反復回数 (デフォルト: n)

tol

  許容誤差 (デフォルト: 1000*%eps)

x

  解ベクトル

flag
  0 =

    `gmres` は `maxi`回の反復の間に 許容誤差内に収束しました

  1 =

    指定した`maxi`回の反復の間に 収束しませんでした

res

  残差ベクトル

err

  最終残差ノルム

iter

  実行した反復回数

## 説明

プリコンディショナ付きのQuasi Minimal Residual法により, 線形システム`Ax=b`を解きます.

## 参照

- gmres