問題タブ [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.
javascript - 行列変換の回転とゆがみを見つける
CSSに次の変換マトリックスがあります
そして、これを使用して回転を見つけることができます...
スキューについても同様に...
ただし、スキューと回転の両方を使用するとすぐに、特に回転の式がスキューの式と同じであるため、すべてが奇妙になります...したがって、式は正しくありません。
両方の属性が適用されている回転と傾斜の両方を決定するにはどうすればよいですか。私が知っているのはマトリックス変換だけです。
また、スケールによってスキュー値が台無しになりましたが、これはすべきではないと思います。
c++ - C++ でのシン QR 分解
長方形行列の「薄い」QR 分解のための使いやすい c++ ライブラリはありますか?
Eigen は完全な Q 行列のみをサポートしているようです。完全な Q を取得して一部の列を破棄することはできますが、最初から計算しない方が効率的でしょうか?
r - QR分解、SVD(およびコレスキー分解?)を介して射影/ハット行列を計算します
P
Rで任意の N x J 行列の射影行列を計算しようとしていますS
。
私は次の関数でこれを実行しようとしています:
しかし、これを使用すると、次のようなエラーが発生します。
これは、 r-helpやhereなどの多くの場所で説明されているように、数値のアンダーフローおよび/または不安定性の結果であると思いますが、SVD または QR 分解を使用して問題を解決したり、この既存のコードをアクション。システムとしてソルブを書くことである提案されたコードも試しました:
しかし、それでもうまくいきません。任意の提案をいただければ幸いです。
直交ダミー変数の行列でこれをテストしようとしたが、まだ機能しないという理由だけで、行列が可逆であり、共線形性がないことはかなり確信しています。
また、これをかなり大きな行列に適用したいので、きちんとした一般的な解決策を探しています。
r - QR分解はlmとbiglmで違う?
biglm で使用される QR 分解から R 行列を復元しようとしています。このために、vcov.biglm のコードの一部を使用して、次のように関数に入れています。
より具体的には、lm クラス (lm$qr) に含まれるクラス "qr" の QR 分解で使用される基本パッケージから qr.R を使用するのと同じ結果を得ようとしています。ベース関数のコードは次のとおりです。
兆候を除いて、サンプル回帰で同じ結果を得ることができました。
両方を比較すると、絶対値が一致することは明らかですが、符号は一致しません。
これがなぜなのか、私にはよくわかりません。R 行列に対して biglm の lm と同じ結果が得られるようにしたいと考えています。
matlab - ギブンス回転を使用したQR分解アルゴリズム
メカニズムが正しいことを確認するために、MATLABでQR分解アルゴリズムをコーディングしています。main関数のコードは次のとおりです。
サブ関数GivensRotationを以下に示します。
私は調査を行いましたが、これは特にMATLABでこの分解を実装するための最も簡単な方法の1つであると確信しています。しかし、行列Aでテストすると、生成されるRは本来あるべき直角三角形ではありません。Qは直交しており、Q * R = Aであるため、アルゴリズムはいくつかのことを正しく実行していますが、正確に正しい因数分解を生成していません。たぶん私は問題をずっと見つめていましたが、私が見落としていたものについての洞察をいただければ幸いです。
mathnet-numerics - Math.NET Numerics での QR 分解
QR 分解は Math.NET Numerics でどのように実装されていますか?
Gram-Schimdt またはギブンズ回転ですか? Gram-Schimdt で実装されているような気がしますが、よくわかりません。実装が見つかりません。
Gram-Schimdt による QR 分解は、ギブンス回転による結果とは異なりますか?
行列のギブンス回転を使用して (手動で) QR 分解を生成し、MathNet.Numerics.LinearAlgebra.Generic.Factorization.QRMethod
(Gram-Schimdt を実装していると思われる) を使用して QR 分解を生成しましたが、結果はわずかに異なりました。数値の違いは約 1E-16 (それほど大きくない) で、一部の行には反対の符号 (*-1) があります (これが本当の問題です。これは、MathNet.Numerics が異なる QR アルゴリズムを実装しているために発生すると思います)。
ギブンズ回転を使用して QR 分解を実行するライブラリをいくつか提案できますか?
opencv - OpenCVでのQR分解
OpenCVはSVD分解を提供しますが、ライブラリに一般的なQR分解が見つかりません。これを達成するための代替手段はありますか?
c - CおよびCUDAで修正グラム・シュミット法を介してQR分解を行う方法
CおよびCUDAで修正されたGram-Schmidt法を介してQR分解を行う方法を誰もが知っています。いくつかの例/ソース/論文またはその他? 本当にありがとう。
編集: 誰かが質問を閉じたため、質問に答えることができないため、質問を更新することにしました。
cuda-memcheck でプログラムを実行すると、次の結果が得られます。
[mcrociara@tesla project_CUDA]$ cuda-memcheck ./qr_gpu -r 4 -c 4 ========= CUDA-MEMCHECK optarg: 4 optarg: 4 GPUassert: 未指定の起動失敗 src/qr_gpu.cu 99 == ======= サイズ 4 の無効なグローバル読み取り ========= xTA の 0x000000c8 ========= ブロック (0,0) のスレッド (0,0,0) による,0)
========= アドレス 0x3b5273104 は範囲外です
========= サイズ 4 の無効なグローバル読み取り ========= xTA の 0x000000c8 ========= ブロック (0) のスレッド (1,0,0) による,0,0)
========= アドレス 0x3b5273108 は範囲外です
========= サイズ 4 の無効なグローバル読み取り ========= xTA の 0x000000c8 ========= ブロック (0) のスレッド (2,0,0) による,0,0)
========= アドレス 0x3b527310c は範囲外です
========= エラーの概要: 3 つのエラー
誰かが理由を理解するのを助けるかもしれませんか? 正しく動作しているように見えるこのアルゴリズムにシリアル バージョンを実装しました。
前もって感謝します!