タグ付けされた質問 「matrix」

行列は、列と行に配置された要素(eq番号、シンボル、または式)の長方形配列です。

2
パラメトリック行列の固有ベクトルの連続性
私は次元の行列H(→ K)ベクターパラメータに応じ→ Kを。んnnH^(k⃗ )H^(k→)\mathrm{\hat{H}}(\vec{k})k⃗ k→\vec{k} ここで、固有値ルーチンは固有値を特定の順序で返しません(通常は並べ替えられます)が、固有値を→ kの滑らかな関数としてトレースしたいと思います。固有値は特定の順序で返されていないので、ちょうどトレースE Iを、いくつかの特定のインデックスのためのI ∈ { 1 、。。、n }は、以下の図に示すように、滑らかではない線のセットを返しますEiEiE_ik⃗ k→\vec{k}EiEiE_ii∈{1,..,n}i∈{1,..,n}i\in\{1,..,n\} k⃗ k→\vec{k}k⃗ +dk⃗ k→+dk→\vec{k}+d\vec{k}vi(k⃗ )⋅vj(k⃗ +dk⃗ )∼δpipjvi(k→)⋅vj(k→+dk→)∼δpipjv_i(\vec{k})\cdot v_j(\vec{k}+d\vec{k})\sim \delta_{p_i p_j}pi,pj∈π({1,...,n})pi,pj∈π({1,...,n})p_i, p_j\in \pi(\{1,...,n\})ππ\pi つまり、固有ベクトルの連続性を追跡します。 ただし、数値ルーチンではいくつかの問題が発生します。私が使用する点の特定の小さなサブセットでは、近くの点にあるいくつかの固有ベクトルがほとんど正規直交ではありません。私の最初の疑いは、それらの固有ベクトルが縮退した固有値に対応していることでしたが、常にそうであるとは限りません。 dk⃗ dk→d\vec{k} そのようなことが起こるのを許されていますか?または、数値ルーチンが連続固有ベクトルを返すことを保証することは可能ですか?私が使用するルーチンはnumpy.linalg.eighで、これはLAPACKのzheevdのインターフェースです。 (あなたの中の物理学者は私がバンド構造について話していることを認識するでしょう)

1
運動反応を伴う陰的有限差分熱方程式のMatlab解
私は、陰的有限差分法を使用して、木材シリンダー内の熱伝導をモデル化しようとしています。円筒形と球形に使用している一般的な熱方程式は次のとおりです。 ここで、pは形状係数です。円柱の場合はp = 1、球の場合はp = 2です。境界条件には、表面での対流が含まれます。モデルの詳細については、以下のMatlabコードのコメントを参照してください。 メインのmファイルは次のとおりです。 %--- main parameters rhow = 650; % density of wood, kg/m^3 d = 0.02; % wood particle diameter, m Ti = 300; % initial particle temp, K Tinf = 673; % ambient temp, K h = 60; % heat transfer coefficient, W/m^2*K % …

2
通常の行列を並べ替えて対角形をブロックする
マトリックスが本来ブロック対角であるが、無作為に基底を選択してランダム化されている場合、マトリックスをブロック対角形式に再配置するアルゴリズムはありますか? 特に、このためのPythonモジュールはありますか?
8 matrix  python 

1
疎な複雑な行列をコードからPETScに効率的に取得する方法
FortranコードからPETScに複雑なスパース行列を取得する最も効率的な方法は何ですか?これは問題に依存することを理解しているので、以下に関連する詳細をできるだけ多く記載するようにしました。 私は一緒に遊んでてきたFEAST固有値ソルバー[1]タイプの問題のためのの次元は行列AとBがあるN、およびほとんどすべての時間が解決費やされているN × N複素線形をM0右側のシステム。Nは大きく(3DでのFE基底関数の数)、M0は小さい(私の場合はM0〜20に興味がある)。行列AとBは実対称でスパースであり、解を必要とする複雑な問題はz A − Bであり、ここでzA X = λ B Xあバツ=λBバツA x = \lambda B xああABBBNNNN× NN×NN \times NああABBBzA − Bzあ−BzA-Bzzzは複素数です。FEASTの作成者は、この正確な固有値と固有ベクトルを取得するために、この線形システムの解の精度をそれほど高くする必要がないことを示唆しているようです。そのため、いくつかの高速反復ソルバーは、これに対する優れたソリューションとなる可能性があります。 これまでのところ、複雑なシステムにLapackを使用してきましたが、これは私のコンピューターでにうまく機能します。Nが大きい場合、最適なソルバーがまだわからないので、PETScを使用して、そこで反復ソルバーを試してみたかったのです。N&lt; 1500N&lt;1500N < 1500NNN 私は単純なCドライバーを作成し、それをFortranから呼び出しました。すべてのコードについては[2]を参照してください。問題はこの部分にあります(更新:マトリックスを作成するためにすべての行をここに配置しました。これが関連していること): ierr = MatCreate(PETSC_COMM_WORLD,&amp;A);CHKERRQ(ierr); ierr = MatSetSizes(A,PETSC_DECIDE,PETSC_DECIDE,n,n);CHKERRQ(ierr); ierr = MatSetFromOptions(A);CHKERRQ(ierr); ierr = MatSetOption(A,MAT_IGNORE_ZERO_ENTRIES,PETSC_TRUE);CHKERRQ(ierr); ierr = MatSetUp(A);CHKERRQ(ierr); for (i=0; i&lt;n; i++) col[i] = i; ierr …

1
行列の乗算パフォーマンスの急激な低下
行列がキャッシュに収まらない場合の密な行列乗算の実装について読んでいます。私が見たグラフの1つ(これらのスライドのスライド9 )は、単純なアルゴリズムを使用した場合のパフォーマンスの急激な低下を示しています。この低下は速度の約50%であり、マトリックスがまだキャッシュに収まっている間に発生し、1つまたは2つのサイズでのみ発生します。素朴なアルゴリズムを使用するつもりはありませんが、突然のパフォーマンス低下の原因を知りたいのですが。(低下はブロックされたアルゴリズムでも発生しますが、はるかに小さいです。)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.