問題タブ [qr-decomposition]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - QR 分解を使用して Matlab で最小二乗法を解く
私は、Matlab を使用して、通常の最小二乗法 (OLS) で回帰モデルを推定しています。
モデルはy = xB
で、x
は次元 の非常にまばらな行列500000 x 2500
です。QR分解を使用しています:
そして、次のように見積もりb
ます
私の質問は、ここで数値エラーを心配する必要があるかどうかです。追加の反復が必要ですか? R
、またはの条件番号を確認する必要がありR'R
ますか? どんなガイダンスでも大歓迎です。
python - scipy/numpy で n > m の長方形行列の QR 分解
n > m の amxn 長方形行列 A があります。A のランク r <= m が与えられると、簡約 QR 分解により、mxr 次元の行列 Q と rxn 次元の行列 R が得られます。Q の列は、A の範囲の正規直交基底です。R は上三角になりますが、階段状になります。ピボットを持つ R の列は、A の独立した列に対応します。
numpy.linalg から qr 関数を適用すると (同じように思われる scipy.linalg にもこの関数のバージョンがあります)、mxm 次元の行列 Q と mxn 次元の R を返します。行列 A は m 未満です。これは、Q の列が Re^m の正規直交基底である「完全な」QR 分解のようです。numpy.linalg;scipy.linalg の関数 qr によって返されるこの R 行列を通じて、A の独立した列を識別することは可能ですか?
c++ - Eigen SparseQR 逆行列は、Matlab のように正確ではありません
私のアルゴリズムでは、疎行列の逆演算を採用し、QR 分解法を使用した A*x=b 法を使用して解いています。Matlab では、QR 操作は正常に実行されます。
しかし、Eigen ライブラリを使用してコードを C++ に変換しようとすると、同じ答えが得られませんでした。場合によっては、Matlab の結果と比較して、ベクトル x の各要素に沿って何らかの値のシフトがあります。ただし、シフトを引き起こすこの値は、ベクトル内のすべての要素で一定です。
私がしていることを垣間見る:
x は、 A.inverse()*b の結果を含む最終的なベクトルですよね?
さらに、完全な行列として解こうとしましたが、Matlab と比較して C++ で異なる答えが得られました。
ここで誰かが同様の問題に直面しましたか? はいの場合は、ヘルプやポインターを歓迎します。一方、私の理解に何か問題がある場合は、修正も歓迎します。
ありがとう。
matrix - QR因数分解出力からQを取得する方法は?
LAPACK のDGEQRF および SGEQRFは、QR 分解の Q 部分をパック形式で返します。開梱には手順が必要なようでO(k^3)
(k 個の低ランク製品)、それほど簡単ではないようです。k
さらに、逐次乗算の数値安定性は私にはわかりません。
LAPACK には Q をアンパックするためのサブルーチンが含まれていますか? そうでない場合は、どのようにすればよいですか?
python - 修正グラム シュミットを使用した QR 因数分解
問題: この問題では、As と呼ばれる行列のリストが与えられます。あなたの仕事は、それぞれの QR 因数分解を見つけることです。
qr_by_gram_schmidt の実装: この関数は行列 A を入力として取り、QR 分解を計算し、2 つの変数 Q と R を返します。ここで、A=QR であり、Q は直交し、R は対角線より下にゼロです。
A は、n≧m の n×m 行列です (つまり、列より行が多い)。
修正された Gram-Schmidt 手順を使用して、この関数を実装する必要があります。
入力:
As: 配列のリスト
出力:
Qs: qr_by_gram_schmidt によって出力された Q 行列のリスト (As と同じ順序)。形状が n×m の行列 A の場合、Q は形状が n×m でなければなりません。
Rs: qr_by_gram_schmidt が As と同じ順序で出力した R 行列のリスト。形状が n×m の行列 A の場合、R は形状が m×m でなければなりません
私は正しいと信じているQR因数分解のコードを書きました:
As の各行列の QR 分解を計算し、それらをその順序で格納するループを作成するにはどうすればよいですか?
編集: コードにもエラーがあります。デバッグにご協力いただければ幸いです。
ありがとう
r - RでQR分解を使用して最小二乗推定量の分散を計算するには?
QR 分解を学習しようとしていますが、従来の行列計算に頼らずに beta_hat の分散を取得する方法がわかりません。私はiris
データセットを使って練習しています.これが私がこれまでに持っているものです:
ご協力いただきありがとうございます!
tensorflow - TensorFlow での QR 分解
コレスキー分解を行う方法と、TensorFlow で QR 法を使用して線形システムを解く方法があることを確認しましたが、TensorFlow で QR 分解を実装する方法が見つかりません。
TensorFlow で QR 分解を実行するにはどうすればよいですか?
r - R コードで Householder QR 因数分解関数を作成する
Rで行列のQR因数分解を見つけるためのコードに取り組んでいます.
しかし、ここではH
、世帯主の反射を表す行列をすべてのステップで計算していません。またA
、すべてのステップで行列を計算していません。
としてH = I - 2 v v'
、 を掛けるQ
と得られます
これで、この操作はすべてのステップで機能するはずです。ただし、最初のマトリックスH
と2番目のマトリックスを考慮すると、H1
これらのマトリックスは最初のマトリックスよりも小さくなります。それを避けるために、次のコード行を使用しました。
しかし、すべてのステップでゼロa_r
の最初のエントリを持つ新しいベクトルを生成すると、コードがうまく機能する理由がわかりません。k
r - QR 分解を使用した R の重回帰分析
QR 分解を使用して重回帰を解くための関数を作成しようとしています。入力: y ベクトルと X 行列。出力: b、e、R^2。これまでのところ、私はこれを手に入れましたが、ひどく立ち往生しています。私はすべてを複雑にしすぎたと思います:
matrix - 固有値による行列の再直交化
Eigenに行列を再直交化する組み込みの方法はありますか? 多くの回転を乗算すると、最終的に行列を再直交化する必要があります。SVD を使用するなどの標準的な手法があり、手動で記述して最適化するのに 1 日を費やすことができます。ただし、Eigen には組み込みの機能がほとんどないことを願っています。以前に関連する質問がありましたが、Eigen のコンテキストで明確な回答がありませんでした。