タグ付けされた質問 「linear-algebra」

線形システムの解、最小二乗問題、固有問題、その他の問題を含む、線形代数のアルゴリズム/計算的側面に関する質問。

2
密な線形代数の実行時間を予測する
特定のライブラリを使用する特定のアーキテクチャでの密な線形代数演算の実行時間を予測したいと思います。関数を近似するモデルを学びたい Fo p::Fop::F_{op} \;::\; 入力サイズランタイム→→ \rightarrow 行列乗算、要素ごとの加算、三角解法などの操作の場合... これらのランタイムは、キャッシュに快適に収まる問題サイズを超えた場合の操作の規則性により、ほとんどが予測可能であると思います。 質問: この仮定は現実的ですか?実行時関数はほぼ確定的でしょうか? この関数は入力のサイズが多項式であると想定できますか?(つまり、密行列の乗算は、といくつかのスカラー係数のようになると期待します)A N K × BのK M αα N × K × Mαn×k×m\alpha n\times k\times mAnk×BkmAnk×BkmA_{nk}\times B_{km}αα\alpha これに関する既存の作業はどこかにありますか? 私の現在の計画は最小二乗回帰を行うことです。他に何か提案はありますか?L1L1L_1 編集:明確にするために、FLOPSやその他の一般的なパフォーマンスメトリックではなく、ランタイムを探しています。私は、特定の1つのアーキテクチャーに制限するつもりです。

1
シューア補数のランク構造
私はシューア補体の構造を研究していて、興味深い現象を見つけています。 Aが5 ptラプラシアンからのものであるとします。ネストされた解剖順序付けとマルチフロンタル法を使用してLU因数分解を計算し、最後のschur補数ブロックをチェックすると、非対角ブロックのランクが低くなります。 私は因数分解するために、同じ方法を使用する場合でも、、λは Aの固有値の近くにいくつかの正の値であるが、最後シューア補数は、低ランクのプロパティがありません。A−λIA−λIA - \lambda Iλλ\lambda 無期限にスカー補数の構造が変わるかどうかはわかりません。誰かがこのトピックについていくつかの参照を提供できますか?

2
ブラックボックス関数のノルムの推定
してみましょう当たり前で、有限次元ベクトル空間もそして、聞かせて機能的な線形有界こと。ブラックボックスとしてのみ提供されます。VVV∥⋅∥‖⋅‖\|\cdot\|F:V→RF:V→RF : V \rightarrow \mathbb R Fのノルムを推定しますFFF(上と下から)。FFFブラックボックスで、そうするための唯一の方法はから単位ベクトルでそれをテストすることですVVVと、その結果に基づいて、見つけるv∈S1Vv∈S1Vv \in S^1 V最大に|F(v)||F(v)||F(v)|。 そのようなアルゴリズムを知っていますか?私が考えているアプリケーションでは、VVVは有限要素空間であり、FFFはその空間での複雑な関数です。 編集:私の最初のアイデアは、v∈S1Vv∈S1Vv \in S^1 Vランダムに選択し、それを複数の方向、たとえばv1,…,vkv1,…,vkv_1,\dots,v_kに摂動させてから、最大のF(v_i)を得たviviv_iで手順を繰り返すことです。この問題のアルゴリズムと分析の場所を知りません。F(vi)F(vi)F(v_i)

2
対称一般化固有値問題に対してシルベスター慣性法の一般化はありますか?
私は、対称固有値問題を解決するためにことを知っている、私たちはの固有値の数であるシルベスターの慣性法則、使用することができますAを未満の負のエントリ数と等しいD対角行列Dはから来ているのLDLの分解A - I = L D L T。次に、二分法により、必要に応じてすべてまたは一部の固有値を見つけることができます。私は解決され、対称一般化固有値問題のシルベスター慣性法の一般化、そこに存在するかどうかを知りたい、A X = λ XAx=λxAx = \lambda xあAAaaaDDDDDDA − a I= L D LTA−aI=LDLTA-aI = LDL^{T}A BAx=λBxAx=λBxAx= \lambda BxAAAとは対称行列です。ありがとう。BBB

3
実スパース行列の特性多項式の計算
一般的なスパース行列所与とM << N(訂正:M « N 2)非ゼロ要素(典型的には、mは∈ O(N ))。Aは特定のプロパティ(例:正定性)を持たず、構造(例:縞模様)がないと見なされるという意味で一般的です。A∈Rn×nA∈Rn×nA \in \mathbb{R}^{n\times n}m≪n2m≪n2m \ll n^2m∈O(n)m∈O(n)m \in {\cal O}(n)AAA Aの特性多項式または最小多項式のいずれかを計算するための優れた数値手法のいくつかは何ですか?AAA

4
A'AおよびAA '配合の条件数
これは、(ユセフサアド、示されていますスパース線形システムのための反復法、P。260)がcond(A′A)≈cond(A)2cond(A′A)≈cond(A)2cond(A'A) \approx cond(A)^2 これはにも当てはまりますか?AA′AA′AA' ケースにはであると、私はその観察AAAN×MN×MN\times MN≪MN≪MN \ll Mcond(A′A)≫cond(AA′)cond(A′A)≫cond(AA′)cond(A'A) \gg cond(AA') この場合、での定式化が望ましいということですか?AA′AA′AA'

1
周期的な境界条件を持つシュレディンガー方程式
以下について、いくつか質問があります。 私は、クランクニコルソンの離散化を使用して1Dでシュレディンガー方程式を解き、続いて結果の三重対角行列を反転させようとしています。私の問題は周期的な境界条件の問題に発展したため、シャーマンモリソンアルゴリズムを使用するようにコードを変更しました。 仮定しv、私は三重対角行列を反転したいとき、各時間ステップでの私のRHSです。のサイズvは、スペース上にあるグリッドポイントの数です。私が設定するv[0]とv[-1]、私の定期的な状況で必要とされるように、お互いに関して、私の方程式は爆発します。なぜこれが起こっているのかわかりません。私はpython2.7とscipyの組み込みのsolve_bandedを使用して方程式を解いています。 これは私の2番目の質問につながります。Pythonは私が最もよく知っている言語であるため使用しましたが、(numpyとscipyによって提供される最適化を使用しても)かなり遅いと感じます。C ++に慣れているので、C ++を使用してみました。BLAS最適化されるGSLを使用すると思いましたが、複雑なベクトルを作成したり、そのような複雑な値のベクトルで三重対角行列を解いたりするためのドキュメントが見つかりませんでした。 私は、波動関数間の結合を含めるために後で一般化する最も簡単な方法であり、したがってオブジェクト指向言語に固執していると思うので、プログラムにオブジェクトを入れたいと思います。 三重対角行列ソルバーを手動で作成することもできましたが、Pythonで作成すると問題が発生しました。細かく細かいタイムステップで長い時間をかけて進化していくと、エラーが蓄積し、無意味なものになってしまいました。これを念頭に置いて、組み込みのメソッドを使用することにしました。 アドバイスは大歓迎です。 編集:関連するコードスニペットは次のとおりです。この表記法は、Wikipediaのページの三重対角行列(TDM)方程式から借用したものです。vは、各タイムステップでのクランクニコルソンアルゴリズムのRHSです。ベクトルa、b、cはTDMの対角線です。定期的なケースの修正されたアルゴリズムは、CFD Wikiからのものです。少し名前を変更しました。彼らがu、vと呼んでいるものをU、V(大文字)と呼んでいます。私はqを補数、yを一時的なソリューション、実際のソリューションをself.currentStateと呼んでいます。ここでv [0]とv [-1]の割り当てが問題を引き起こしているため、コメント化されています。ガンマの要素は無視してかまいません。これらは、ボーズアインシュタイン凝縮のモデル化に使用される非線形因子です。 for T in np.arange(self.timeArraySize): for i in np.arange(0,self.spaceArraySize-1): v[i] = Y*self.currentState[i+1] + (1-2*Y)*self.currentState[i] + Y*self.currentState[i-1] - 1j*0.5*self.timeStep*potential[i]*self.currentState[i] - self.gamma*1j*0.5*self.timeStep*(abs(self.currentState[i])**2)*self.currentState[i] b[i] = 1+2*Y + 1j*0.5*self.timeStep*potential[i] + self.gamma*self.timeStep*1j*0.5*(abs(self.currentState[i])**2) #v[0] = Y*self.currentState[1] + (1-2*Y)*self.currentState[0] + Y*self.currentState[-1] - 1j*0.5*self.timeStep*potential[0]*self.currentState[0]# - self.gamma*1j*0.5*self.timeStep*(abs(self.currentState[0])**2)*self.currentState[0] …

3
ブロック構造のない不確定システムの反復法
行列の不定システムは、たとえば混合有限要素による鞍点問題の離散化に現れます。次に、システムマトリックスを次の形式で入力できます。 (ABBtC)(ABtBC)\begin{pmatrix} A & B^t \\ B & C\end{pmatrix} ここで、は負(半)確定、は正(半)確定、は任意です。もちろん、規約によっては確定性条件を使用することもできますが、これはこれらの行列の構造とほぼ同じです。AAACCCBBB これらの方法には、実際にはシステムを共役勾配、勾配降下法などで解くことができる同等の半定値システムに変換するための単なる「トリック」である宇沢の方法を使用できます。 私はそのようなブロック構造を持たない不明確なシステムに直面しています。その場合、宇沢タイプの方法は適用されません。私はPaige&Saundersによって導入された最小残差法(MINRES)を知っています。これは、3項の再帰であり、実装が簡単なようです。 質問: MINRESは一般的に、プロトタイピングに適していますか?それは何か実用的な意味がありますか?現在、プレコンディショニングは中心的な問題ではありません。

1
通常のグリッドでのネストされた解剖
直接因数分解法を使用してスパース線形システムを解く場合、使用される順序付け戦略は、因子内の非ゼロ要素のフィルイン因子に大きな影響を与えます。そのような順序付け戦略の1つは、ネストされた解剖です。グリッドパラメーターのみを指定して、ネストされた解剖順序付けを事前に作成できるかどうか疑問に思っています(M x Nの正方形の差分グリッドで1次の違いがあると仮定します)。 編集 これを行うコードがあることがわかりました:http : //www.cise.ufl.edu/research/sparse/meshnd/

2
対角支配行列での反復法の安全な適用
次の線形システムが与えられたと仮定 Lx=c,(1)(1)Lx=c,Lx=c,\tag1 ここで、LLL正であることが知られているラプラシアン重み付けsemi−semi−semi-で張ら一次元のヌル空間と明確1n=(1,…,1)∈Rn1n=(1,…,1)∈Rn1_n=(1,\dots,1)\in\mathbb{R}^n、そして、の翻訳分散x∈Rnx∈Rnx\in\mathbb{R}^{n}、すなわち、x+a1nx+a1nx+a1_nその誘導体である関数値(変化しない(1)(1)(1))。の唯一の正のエントリはLLL、対角線上にあります。これは、負の非対角線上のエントリの絶対値の合計です。 私は非常にも、その場で学業に引用いずれかで見出さLLLであるnot strictlynot strictlynot~strictly斜めドミナント、例えば共役勾配、ガウスSeidl、ヤコビのような方法は、まだ安全に解決するために使用することができるが(1)(1)(1)。理論的根拠は、変換不変性のため、1つの点を固定しても安全です(たとえば、最初の行と列LLLおよび最初のエントリをから削除するccc)。したがって、LLLをa s t r i c t l yに変換します。strictlystrictlystrictly対角線的に支配的な行列。いずれにしても、元のシステムは、完全な形で解決される(1)(1)(1)と、L∈Rn×nL∈Rn×nL\in\mathbb{R}^{n\times n}。 この仮定は正しいですか、正しい場合、代替の根拠は何ですか?メソッドの収束がどのように維持されるかを理解しようとしています。 ヤコビ法を有する収束である場合(1)(1)(1)、どのスペクトル半径約状態可能性ρρ\rho繰り返し行列のD−1(D−L)D−1(D−L)D^{-1}(D-L)、DDDのエントリを有する対角行列であるLLLその対角線上には?あるρ(D−1(D−L)≤1ρ(D−1(D−L)≤1\rho(D^{-1}(D-L)\leq1、のための一般的な収束を保証からしたがって、異なるρ(D−1(D−L))&lt;1ρ(D−1(D−L))&lt;1\rho(D^{-1}(D-L))<1?私はラプラシアン行列の固有値ので、これを求めているD−1LD−1LD^{-1}L対角線上のものが持つべき範囲であることが[0,2][0、2][0, 2]。 原作より: ...................................... 各反復で、次の線形システムを解くことで新しいレイアウト(x(t +1)、y(t + 1))を計算します: L⋅x(t+1)=L(x(t),y(t))⋅x(t)L⋅y(t+1)=L(x(t),y(t))⋅y(t)(8)(8)L・バツ(t+1)=L(バツ(t)、y(t))・バツ(t)L・y(t+1)=L(バツ(t)、y(t))・y(t) L · x(t + 1) = L(x(t),y(t)) · x(t) \\ L · y(t + 1) = L(x(t),y(t)) · y(t) \tag 8 一般性を失うことなく、センサーの1つの位置を固定できます(ローカライズされたストレス)、厳密に対角線的に支配的な行列を取得します。したがって、(8)を解くためにJacobi反復を安全に使用できます。 ................................................. 上記の「反復」の概念は、基礎となる最小化手順に関連しており、Jacobi反復と混同しないでください。したがって、システムはJacobiによって(反復的に)解決され、ソリューションは(8)の右側に購入されますが、今度は、基礎となる最小化の別の反復のためです。これで問題が明確になることを願っています。 正の半定値行列に対して収束する反復線形ソルバーが見つかりましたか?、しかしより複雑な答えを探しています。

2
Androidではどのスパースマトリックスソルバーライブラリを実行できますか?
タイトルはそれのほとんどを言います。 Android(NDK)プロジェクトに使用できる軽量で使いやすいライブラリを探しています。 密度の高いものについては、Eigenを使用するのが好きですが、プロジェクトで「正常に動作する」スパースなもののための包括的な(そして文書化された)ライブラリは多くありません。 PETScはこれらすべてのMPIのことで少し重いようですが、それは私の第一印象にすぎません。助言がありますか?

3
実際の行列に適用されたQRアルゴリズムはどのようにして複素固有値を返しますか?
私は固有値アルゴリズムの初心者ですが、何か注意が必要です。QRアルゴリズムは、実数/複素数の固有値を生成する実数/複素数行列で機能します。ただし、実際の行列から複素固有値を生成することはできません。ここでは、ジュリアで書かれ、こことここから派生した単純な例を示します。 using LinearAlgebra A = [7 3 4 11 -9 -2; -6 4 -5 7 1 12; -1 -9 2 2 9 1; -8 0 -1 5 0 8; -4 3 -5 7 2 10; 6 1 4 -11 -7 -1] M = copy(A) for i=1:100 global M Q,R = …

1
拡散による測地線距離の計算
加重グラフのAPSP(All-Pair Shortest Path)問題を解決しようとしています。このグラフは実際には1次元、2次元、または3次元のグリッドであり、各エッジの重みは2つの頂点間の距離を表します。必要なのは、頂点のすべてのペアに対する測地線グラフの距離(グラフの最短経路)です。 拡散ベースの方法が必要です。ダイクストラまたはフロイドワーシャルアルゴリズムよりも高速だからです。私は熱方程式を使用してこれを達成しようとしています: 最後に、私のアプリケーションは、フォームのカーネル必要がありますとグラフ測地線距離を。exp(−d2/γ)ddあなたdt= Δ U 。dあなたdt=Δあなた。\frac{du}{dt} = \Delta u.exp(− d2/ γ)exp⁡(−d2/γ)\exp(-d^2/\gamma)ddd 私の希望は、そのソリューションをすることになっているので、拡散のための緑の機能: u ( t 、x 、y)=(14個のπt)− d私メートル2exp(−d2(x、y)4 トン)、あなた(t、バツ、y)=(14πt)−d私メートル2exp⁡(−d2(バツ、y)4t)、 u(t,x,y) = \left(\frac{1}{4\pi t}\right)^{-\frac{dim}{2}}\exp\left(\frac{-d^2(x,y)}{4t}\right), 次に、そのソリューションを直接使用して(前に因子を取り除くためにいくつかの調整を加えて)、カーネルとして使用できます。パラメーターは、調整することによって調整されます。トンγγ\gammattt 私はまだうまくいくことをすることができなかった、そして私はいくつかの助けが欲しい。これまでに多くのことを試しましたが、いくつかの問題が発生しています。これらすべてを1つの質問で説明することは困難で長いので、最初に私が良いアプローチの始まりであると考えるものを説明し、次にいくつかの一般的な質問をします。 それはクレーンらによる熱アルゴリズムにおける測地線の第一段階で行われるのと同じ方法で、後退オイラーステップで、Iは、線形システム解くことができる: と拡散ステップ、はラプラシアン行列、は頂点の1つでのディラック。 tLu0(私d− t L )u = u0(1)(1)(私d−tL)あなた=あなた0(Id - tL)u = u_0 \tag{1}tttLLLあなた0あなた0u_0 式(1)を解くと、実際にはという形式のカーネルが得られますが、これは望ましくありません。したがって、時間内にK回の反復を行い、K回解く必要があります: Id- これにより、。(I d − texp(− d/ γ)exp⁡(−d/γ)\exp(-d/\gamma) u = …

2
効率的な行列-ベクトル乗算のための行列のパターンの活用
私は次のような状況にあります。一連のベクトルあり、それぞれ、が最初に固定されている積を計算します。の構造に関する情報はありませんが、には通常、多くの値が繰り返される特定のパターンがあり、これらの積をできるだけ高速に計算したいと考えています。x1,x2,..x1,x2,..x_1, x_2,.. AxiAxiAx_iAAAxixix_iAAA 1つの例は次のようになります。AAA ここで白い領域は0です。 に関する情報を格納する方法、または何らかの方法でそれを変更して、各製品の操作の数を減らすことができる方法があるのでしょうか。すべて0の行の場合、これは簡単です。そのような行を示す行インデックスを格納するだけです。行の計算を再利用するために、複製された行に関する情報を保存することもできます。また、各行の平均差を最小化し、各行の差だけを計算するなど、行列の行の順序付けも検討しました。しかし、これはより複雑なパターンの問題にぶつかるようです。AAA この種の問題に対する既知の方法があるのか​​と思っていました。 編集:私が持っていたもう一つのアイデアは、それ以来ないということです。マトリックス内の一意の値の数はかなり少ないため、として製品を分解できます。ここで、は一意の値が1つしか含まれていませんが、これがこの問題に何らかの利点をもたらすかどうかはまだません。Ax=A1x+A2x+…AnxAx=A1x+A2x+…AnxAx = A_1x + A_2x + \dots A_nxAiA私A_i

2
小さな行列の固有値
2x2、3x3、および4x4行列(実数、非対称)の小さな数値ライブラリを書いています。 多くの数値分析テキストは、特性多項式の根を計算することを強くお勧めし、ダブルシフトQRアルゴリズムの使用を推奨しています。ただし、行列のサイズから、特性多項式を単純に計算して根を見つけるだけで十分かどうか疑問に思います。これをサポートするStackExchangeでこの回答を見つけましたが、多項式係数のエラーにより、多項式のゼロ(したがって、異なる固有値)が不正確になる可能性があることを知っています。一方、方程式はせいぜい4次式であり、多項式の根の分析式があるので、あまり離れすぎないようにしてください。 この場合の固有値を得るために特性多項式を使用することの長所と短所は何ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.