問題タブ [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.

0 投票する
2 に答える
10889 参照

javascript - 行列変換の回転とゆがみを見つける

CSSに次の変換マトリックスがあります

そして、これを使用して回転を見つけることができます...

スキューについても同様に...

ただし、スキューと回転の両方を使用するとすぐに、特に回転の式がスキューの式と同じであるため、すべてが奇妙になります...したがって、式は正しくありません。

両方の属性が適用されている回転と傾斜の両方を決定するにはどうすればよいですか。私が知っているのはマトリックス変換だけです。

また、スケールによってスキュー値が台無しになりましたが、これはすべきではないと思います。

0 投票する
2 に答える
4322 参照

c++ - C++ でのシン QR 分解

長方形行列の「薄い」QR 分解のための使いやすい c++ ライブラリはありますか?
Eigen は完全な Q 行列のみをサポートしているようです。完全な Q を取得して一部の列を破棄することはできますが、最初から計算しない方が効率的でしょうか?

0 投票する
1 に答える
4772 参照

r - QR分解、SVD(およびコレスキー分解?)を介して射影/ハット行列を計算します

PRで任意の N x J 行列の射影行列を計算しようとしていますS

私は次の関数でこれを実行しようとしています:

しかし、これを使用すると、次のようなエラーが発生します。

これは、 r-helphereなどの多くの場所で説明されているように、数値のアンダーフローおよび/または不安定性の結果であると思いますが、SVD または QR 分解を使用して問題を解決したり、この既存のコードをアクション。システムとしてソルブを書くことである提案されたコードも試しました:

しかし、それでもうまくいきません。任意の提案をいただければ幸いです。

直交ダミー変数の行列でこれをテストしようとしたが、まだ機能しないという理由だけで、行列が可逆であり、共線形性がないことはかなり確信しています。

また、これをかなり大きな行列に適用したいので、きちんとした一般的な解決策を探しています。

0 投票する
1 に答える
1092 参照

r - QR分解はlmとbiglmで違う?

biglm で使用される QR 分解から R 行列を復元しようとしています。このために、vcov.biglm のコードの一部を使用して、次のように関数に入れています。

より具体的には、lm クラス (lm$qr) に含まれるクラス "qr" の QR 分解で使用される基本パッケージから qr.R を使用するのと同じ結果を得ようとしています。ベース関数のコードは次のとおりです。

兆候を除いて、サンプル回帰で同じ結果を得ることができました。

両方を比較すると、絶対値が一致することは明らかですが、符号は一致しません。

これがなぜなのか、私にはよくわかりません。R 行列に対して biglm の lm と同じ結果が得られるようにしたいと考えています。

0 投票する
1 に答える
27968 参照

matlab - ギブンス回転を使用したQR分解アルゴリズム

メカニズムが正しいことを確認するために、MATLABでQR分解アルゴリズムをコーディングしています。main関数のコードは次のとおりです。

サブ関数GivensRotationを以下に示します。

私は調査を行いましたが、これは特にMATLABでこの分解を実装するための最も簡単な方法の1つであると確信しています。しかし、行列Aでテストすると、生成されるRは本来あるべき直角三角形ではありません。Qは直交しており、Q * R = Aであるため、アルゴリズムはいくつかのことを正しく実行していますが、正確に正しい因数分解を生成していません。たぶん私は問題をずっと見つめていましたが、私が見落としていたものについての洞察をいただければ幸いです。

0 投票する
1 に答える
913 参照

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 分解を実行するライブラリをいくつか提案できますか?

0 投票する
3 に答える
2129 参照

opencv - OpenCVでのQR分解

OpenCVはSVD分解を提供しますが、ライブラリに一般的なQR分解が見つかりません。これを達成するための代替手段はありますか?

0 投票する
1 に答える
2784 参照

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 つのエラー

誰かが理由を理解するのを助けるかもしれませんか? 正しく動作しているように見えるこのアルゴリズムにシリアル バージョンを実装しました。

前もって感謝します!

0 投票する
1 に答える
2320 参照

algorithm - コンパニオン マトリックスを使用したルート検索

一変数多項式の実根をすべて見つけたいと思います。たとえば、Jenkins-Traub アルゴリズムを使用できますが、コンパニオン マトリックスを使用してそれを解決する方法を学びたいと考えています。

多項式をコンパニオン行列に変換する方法を知っており、QR 分解を行うスクリプトを見つけました: http://quantstart.com/articles/QR-Decomposition-with-Python-and-NumPy

ここで迷ってしまいます。次に何をすればよいのでしょうか? 複数の分解を計算する必要があると思いますが、そうすると、常に同じ結果が得られます(明らかに)。また、最初にコンパニオン行列をヘッセンベルグ形式に変換すると役立つ可能性があることも読みましたが、どうすればよいでしょうか? 次に、「シフト」があります-それらは何ですか?

http://www.nr.com/webnotes/nr3web17.pdfも見つけましたが、何も理解していないので、もっと簡単な方法があるかどうかを知りたいです (遅くても安定性が低い場合でも)。

つまり、http://en.wikipedia.org/wiki/QR_algorithmを読む

  • 「固有値を計算したい実数行列を A とします」 わかりました、これは
    私のコンパニオン行列ですよね?

  • 「QR分解Ak = QkRkを計算します」
    これはQ, R = householder(A)最初のリンクからのものですよね?

  • 「その後、Ak+1 = RkQk を形成します」
    簡単です。R と Q を乗算するだけです

  • 「特定の条件下で、[2] 行列 Ak は A の Schur 形式である三角行列に収束します。三角行列の固有値は対角線上にリストされ、固有値の問題が解決されます。」
    ...待って、何?私は試した:

    /li>

しかし、何の進歩も見られず、正しい根に近い数字さえ見当たりません。

お願いします、誰か私にこれを説明してもらえますか?

PS: 少なくとも非常に単純化された用語で、LAPACK の仕組みを理解したいので、やみくもに LAPACK などを使用したくありません。

PPS: http://adorio-research.org/wordpress/?p=184もあります(最初の方法とどう違うのかわかりませんが...)

0 投票する
1 に答える
1164 参照

r - Rで列ピボットを使用してQR分解でRマトリックスを計算する

A次のコードで取得できるマトリックスがあります。

matrix の列ピボットで qr 分解を適用したいのですAが、次のコードを実行して matrix を取得しますが、これはmatrix と同じである必要があることがRわかっています。行または列の順序に従って同じではないのはなぜですか? の正しい行列を取得するにはどうすればよいですか?t(R)%*%RAR