高速で、後方安定(左)


10

非常に少数の退化したケース(< 0.1 )で、多くの3×3行列逆行列(ニュートン反復極分解の場合)を計算する必要があります。<0.1%

明示的な逆行列(行列のマイナーを行列式で割ったもの)は機能しているようで、約32〜40の融合フロップです(行列式の逆数の計算方法によって異なります)。detスケールファクターを考慮しない場合、18のフューズフロップのみです(9つの要素はそれぞれab-cd、2のフューズフロップの形式です)。

質問:

  • 18(任意のスケール)未満または32(1の逆数を考慮した適切なスケール)の融合フロップを使用して逆を計算する方法はあり3×3ますか?
  • 3×3行列の逆安定左逆行列を計算するための経済的な方法(〜50 fフロップを使用)はありますか?

単精度のフロート(iOSゲーム)を使用しています。後方安定性は私にとって興味深い新しい概念であり、実験してみたいと思います。ここだ記事の考えを引き起こしました。


ケイリー・ハミルトンの定理を逆に使用するのはどうですか?
nicoguaro

1
これがあなたにとってこのようなボトルネックである場合、極分解のための別のアルゴリズムがこの場合より速くなるでしょうか?たとえば、SVDを通じて?または、eprints.ma.man.ac.uk / 694/01 / covered / MIMS_ep2007_9.pdfの 3.3のように、ニュートンの方法を加速しますか?
キリル2016年

回答:


5

高速インバース3×3に関する最初の質問について考えてみます。検討する

A=[adgbehcfi]

行列は小さく、非常に一般的であるため(要素の既知の構造、ゼロ、相対スケールを備えていない)、次のような任意のスケール()のアルゴリズムを提供することは不可能だと思いますAのエントリに関する事前の情報がない限り、9つの要素のうちそれぞれに2つの融合フロップが必要であり、すべての製品は一意であるため、18の融合フロップよりも高速です。 ここに、1/det(A)AA 1 det A = adj A = [ e i f h d i f g g e d h b i c h a i c g a h b g c e b f a f c d a ea,,i

A1det(A)=adj(A)=[eifhdifggedhbichaicgahbgcebfafcdaebd]
adj(A) アジュゲート(補因子の転置)を示します。これは本質的に「任意スケール」の逆行列です(逆行列が存在する場合)。

ただし、一部の計算は計算に再利用できます。最初の列に展開すると(さらに5つの選択肢があります): 注意してください(* )は評価中にすでに計算されてい。したがって、行列式の逆数は、4つの追加の融合フロップで計算できます(逆数が1フロップと見なされる場合)。det(A)

det(A)=a(eifh)+b(fgdi)+c(dhge)=a(eifh)b(difg)c(gedh)
adj(A)1/det(A)

これで、各9要素は、すでに取得した行列式の逆数によってスケーリングされ、さらに9つの融合フロップが追加されます。adj(A)

そう、

  1. 18個の融合フロップでを計算しadj(A)
  2. 計算融合3には、すでに計算のエントリを使用してプdet(A)adj(A)
  3. を見つけます(1フロップと仮定)。1det(A)
  4. すでに計算された各要素を、別の9つの融合フロップでによってスケーリングし。adj(A)1det(A)

その結果、18 + 3 + 1 + 9 = 31のフューズドフロップになります。行列式の計算方法については説明していませんが、フロップをさらに1つ節約できると思います。または、ステップ3でのチェックを実行するために使用できます。ここで、は縮退(不可逆)ケースの許容誤差であり、結果として32のフューズフロップになります(1フロップと仮定)。ϵ|det|>εεif

残りの計算はすべて一意であるため、一般的な行列の逆行列を計算する高速な方法はないと思います。スピードの観点から、ケーリー・ハミルトンいけないの助けを使用して、一般的のように、それはの計算が必要になりますためにA 2 3 × 3×2×他のいくつかの演算の他に行列。

注意:

  • この答えは数値の安定性を扱いません
  • ベクトル化とメモリアクセスパターンの最適化の可能性についても説明されていません
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.