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

1
Newton-Krylovが適切なソルバーではないのはいつですか?
最近、私はscipyのさまざまな非線形ソルバーを比較しており、Scipy CookbookのNewton-Krylovの例に特に感銘を受けました。約20行のコードで非線形反応項を持つ2階微分方程式方程式を解きます。 半導体ヘテロ構造の非線形ポアソン方程式(ポアソン-ボルツマン方程式とも呼ばれ、これらのノートの17ページを参照)を解くためにサンプルコードを修正しました。 d2ϕdバツ2− k (x )( p (x 、ϕ )− n (x 、ϕ )+ N+(x )) = 0d2ϕdバツ2−k(バツ)(p(バツ、ϕ)−n(バツ、ϕ)+N+(バツ))=0 \frac{d^2\phi}{dx^2} - k(x) \left(p(x,\phi) - n(x,\phi) + N^{+}(x)\right) = 0 (これはソルバーに渡される残差関数です。) これは、静電気の問題である及びP (X 、φは)フォームの非線形関数であり、N I(X )E - (E I(X 、φ )- E 、F)。ここでの詳細は重要ではありませんが、ポイントは非線形関数がϕで指数関数的に変化するため、残差関数は巨大な範囲(10 − 6 − 10 16)にわたって変化する可能性があることです。n (x 、ϕ )n(バツ、ϕ)n(x,\phi)p …

1
有限差分の近似ヤコビアンは、ニュートン法の不安定性を引き起こすことができますか?
私はpython 3に後方オイラーソルバーを実装しました(numpyを使用)。私自身の便宜と演習として、勾配の有限差分近似を計算する小さな関数を作成しました。これにより、ヤコビアンを常に分析的に決定する必要はありません(可能な場合でも!)。 Ascher and Petzold 1998で提供された説明を使用して、特定のポイントxで勾配を決定するこの関数を作成しました。 def jacobian(f,x,d=4): '''computes the gradient (Jacobian) at a point for a multivariate function. f: function for which the gradient is to be computed x: position vector of the point for which the gradient is to be computed d: parameter to determine perturbation value eps, …

2
Pythonで非常に大きくて疎な隣接行列のすべての固有値を計算する最速の方法は何ですか?
scipy.sparse.linalg.eigshを使用するよりも非常に大きくて疎な隣接行列のすべての固有値と固有ベクトルを計算するより速い方法があるかどうかを把握しようとしていますマトリックスの対称属性。隣接行列もバイナリであるため、より高速な方法があると思います。 ランダムな1000x1000スパース隣接行列を作成し、x230 ubuntu 13.04ラップトップでいくつかの方法を比較しました。 scipy.sparse.linalg.eigs:0.65秒 scipy.sparse.linalg.eigsh:0.44秒 scipy.linalg.eig:6.09秒 scipy.linalg.eigh:1.60秒 スパースeigとeigshで、希望する固有値と固有ベクトルの数であるkを行列のランクに設定します。 問題は、より大きな行列から始まります-9000x9000行列では、scipy.sparse.linalg.eigshに45分かかりました!

1
マトリックスバランスアルゴリズム
私は制御システムのツールボックスをゼロから作成し、純粋にPython3(恥知らずなプラグイン:)で作成していharoldます。私の過去の調査から、Riccatiソルバーについて、care.m技術的/無関係な理由で常に不満を持っています。 したがって、私は自分の一連のルーチンを作成しています。私が回避策を見つけることができない1つのことは、少なくともと同等の高性能バランシングアルゴリズムを取得することbalance.mです。言及する前に、xGEBALファミリはScipyで公開されており、基本的には次のようにScipyから呼び出すことができます。float型の2D配列があるとしますA。 import scipy as sp gebal = sp.linalg.get_lapack_funcs(('gebal'),(A,)) # this picks up DGEBAL Ab, lo, hi, scaling , info = gebal(A, scale=1 , permute=1 , overwrite_a=0 ) 次のテストマトリックスを使用する場合 array([[ 6. , 0. , 0. , 0. , 0.000002], [ 0. , 8. , 0. , 0. , 0. ], …

2
既知のポテンシャルサーフェス上の最小パス
グリッドで既知の潜在的なサーフェスの最小値の間の最小パスを検索しています。 (ソース:http : //www.math.nus.edu.sg/~matrw/string/) パス上の任意の点は、パスに垂直なすべての方向で最小になる可能性があります。 このパスを計算するSciPyメソッドまたは他のPythonパッケージはありますか?未知の表面を検索できる方法を探しているのではありません。 編集:障壁が最も低いパスを検索しています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.