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

コード構文の容易さと読みやすさを強調する汎用の高水準プログラミング言語。

3
「軽量」のFEMパッケージはありますか?
基本的に、FEMはかなり「解決」された問題のようです。Trilinos、PETSc、FEniCS、Libmesh、MOOSEなど、数多くの強力なフレームワークが存在します。 彼らが共通していることの1つは、それらが非常に「重い」ことです。まず、インストールは通常非常に骨の折れる作業です。第二に、それらのインターフェース/ APIは分厚くて重いです-あなたはあなたの考え全体をそれぞれのライブラリの考えに翻訳しなければなりません。これは、特別な要件や既存のコードの相互運用性と拡張性が困難であることも意味します。 (ランダムな例)Boost、LibIGL、Aztec(線形ソルバー)、Eigen、またはCGALなどの他のプロジェクトは、C ++またはPythonコードにシームレスに統合する強力なライブラリーを、非常に無駄のないクリーンなインターフェースで、インストールの必要なしに作成することが絶対に可能であることを示しています超重いフレームワークの。 FEM用の本当に軽量なパッケージはありますか?簡単なオートマジックソルバーを探しているのではありません-無駄のないインターフェース、一般的なデータ構造(たとえばC ++ STLなど)との相互運用性、および軽量のインストール(たとえばヘッダーのみ)を維持しながら強力な機能を提供するライブラリを探しています。

1
超伝導体の曲線をモデリングするための数値積分(Python)
私は、超伝導体-超伝導体接合の電流-電圧特性をモデル化しようとしている物理学者です。 このモデルの方程式は次のとおりです。 私(V)= 1e Rn − n∫∞- ∞| E|[ E2- Δ21]1 / 2| E+ e V|[ (E+ e V)2- Δ22]1 / 2[ f(E)− f(E+ e V)]d EI(V)=1eRn−n∫−∞∞|E|[E2−Δ12]1/2|E+eV|[(E+eV)2−Δ22]1/2[f(E)−f(E+eV)]dE\begin{align} I(V) = \frac{1}{eR_{\mathrm{n-n}}}\int_{-\infty}^{\infty}\frac{|E|}{[E^{2} - \Delta_{1}^{2}]^{1/2}}\frac{|E + eV|}{[(E + eV)^{2} - \Delta_{2}^{2}]^{1/2}}[f(E) - f(E + eV)]\,\mathrm{d}E \end{align} 現在の(またはコード内の)値は、この積分を特定の電圧(Vまたはコード内)について評価することによって計算されます。私私IIVVVv 私はこれをPythonで試みました。コードを以下に示します。 from scipy import integrate from …

6
柔らかい質問:Pythonはどこに当てはまりますか?
それで、私はPythonを勉強する必要があるかどうかについて議論してきました。私の教授と話すことから、学界に関する限り、Matlabは応用数学/計算科学で使用される共通言語のようです。業界にいる間、私の教授(特に業界で働いたことがある人)は、c ++を学ぶことが最も安全な道だと言っています。 アカデミアと業界の両方で、Pythonに悩む必要があるのか​​、それとも今のところ私が知っていること(MATLABとC ++)に本当に慣れるのかについて、皆さんから聞いてみたいと思います。 更新:ジェフは良い点をもたらします、私はおそらくいくつかの詳細を書き留めるべきです: 私は現在、昨年の学部生で、計算を専門とする数学を勉強しています。大学院に進学して研究を続けたい(自分が教育を楽しんでいるのを見たことがない)か、研究室で働きたいです。どちらも理想的です。研究の分野については、おそらく数値分析または確率の線に沿ったものでしょう。プランAがうまくいかない場合でも、業界への準備が学校からあまり時間をかけられない限り、私は業界で働くことができるでしょう。だから、私はバックアップとして、業界で一般的な言語を学ぶべきだと考えました。しかし、これが私が対立している理由でもあります。すべての言語を勉強したり、あらゆる可能性に備えることはできません。時間がかかりすぎるからです。
9 matlab  python  c++ 

2
既知のポテンシャルサーフェス上の最小パス
グリッドで既知の潜在的なサーフェスの最小値の間の最小パスを検索しています。 (ソース:http : //www.math.nus.edu.sg/~matrw/string/) パス上の任意の点は、パスに垂直なすべての方向で最小になる可能性があります。 このパスを計算するSciPyメソッドまたは他のPythonパッケージはありますか?未知の表面を検索できる方法を探しているのではありません。 編集:障壁が最も低いパスを検索しています。

2
NumPyで三角関数のアイデンティティを評価するときの驚くほど大きな違い
Wolfram AlphaとSageコンピュータ代数システムによれば、次のアイデンティティが成り立つ: cos(アークタン(l1− l2d)) = 11 + (l1− l2)2d2−−−−−−−−√cos⁡(arctan⁡(l1−l2d))=11+(l1−l2)2d2 \cos\left(\arctan\left(\frac{l_1-l_2}{d}\right)\right) = \frac{1}{\sqrt{1 + \frac{(l_1-l_2)^2}{d^2}}} しかし、NumPyの任意の例を使用してそれを検証しようとすると、偶発性の両側で計算された実際の値にかなり大きな違いがあることに気付きました。私は次のコードを使用しました: l1 = 10; l2 = 8; d = 17 from numpy import arctan2, cos, sin, sqrt alpha = arctan2((l1-l2),d) left = cos(alpha) right = sqrt(1 + ((l1-l2)**2)/(d**2)) 結果を評価するleftとright、次の結果が得られました。 left = 0.99315060432287616 right = 1.0 これを単なる数値エラーとして書き留めるのは魅力的ですが、私は数値エラーがどれほど大きくなるかについての経験がほとんどないため、確信が持てません。これは可能ですか、それとも何かが欠けていますか?

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

9
Cを学ぶ必要がありますか?
私はサイエンティフィックコンピューティングの博士課程の学生で、過去数か月間、PythonとC ++を正しい方法で学ぶのにかなりの時間を費やしました。私はC ++をよく学んだと感じています。良い参考書を手元に置いておけば、Pythonを使用して自分のやりたいことができるようになります。 また、MATLABを十分に理解しているため、自分のアイデアのプロトタイプを作成し、解決策を得ることができます。(もし私が最初の選択であるPythonをコーディングするのに飽きすぎている場合)。 CとC ++を1つの "C / C ++"にまとめる必要があることをここで何度か読んだことがあります。それらは異なる動機を持つ非常に異なる言語であり、私はその見解に完全に同意します。 私は常に学習しているのでC ++を "知っている"と主張することはできませんが、それをどのように使用すべきか、どのように使用すべきでないかはほとんど理解していると思います。私が学んだ最初の言語はCでしたが、最後に使用してから非常に長くなります。私の質問は本質的にこれです: 私がMATLAB、C ++、Pythonを知っていることを考えると、Cの学習に時間をかけるべきですか?上記の3つの言語についての知識は、コーディングするのに十分ですか? 私の研究は、数値線形代数の側面に関するものですが、離散イベントシミュレーション/確率論的プロセスのコンサルティングも行っています。私の意図は業界で働くことです(私の顧問は、C ++を学ぶことを勧めたので、彼には言語の個人的な好みはありませんが、雇用を続けることができます)。

3
Pythonでのfmincgの実装
私はPythonでニューラルネットワークを再実装しようとしています。コスト関数と逆伝播アルゴリズムを正しく実装しました。Octaveに相当するコードを実行して、それらをチェックしました。 しかし、scipy.optimize.fmin_cg関数を使用しようとすると、反復の実行に非常に長い時間がかかります。警告が表示されて終了し、「目的のエラー率が達成されなかった」というエラーが表示されます。 Octaveの同じプログラムは問題なく実行されます。ただし、独自のfmincg機能が定義されています。 何が悪いのですか?

3
Cythonからの乱数生成
cythonを使用してPythonプログラムを高速にしたいのですが、内部ループがまだ乱数ジェネレーターへのPython呼び出しを遅くしています!数年前、この同じ問題が賢人サポートの誰かによって提起され、その時点で良い解決策はないようでした。ランダムなサンプルの長いリストを事前に生成するのは便利ではありません。以前のサンプルを条件とする方法でさまざまな分布から実際にサンプリングしているからです。 これが、cythonからgslに接続することによってこれがどのように回避されたかを説明するブログ投稿です:http ://pyinsci.blogspot.com/2010/12/efficient-mcmc-in-python-errata-and.html そして、誰かがgsl kludgeを実装しようとしているstackoverflowの投稿:https://stackoverflow.com/questions/8177446/random-number-generators-to-work-on-x86-64

2
SciPy odeint / ODEPACKによる非線形特異ODEの解法
私が解決したいレーン・エムデン等温式[PDF、EQを。15.2.9] d2ψdξ2+2ξdψdξ=e−ψd2ψdξ2+2ξdψdξ=e−ψ\frac{d^2 \!\psi}{d \xi^2} + \frac{2}{\xi} \frac{d \psi}{d \xi} = e^{-\psi} 初期状態で ψ(ξ=0)=0dψdξ∣∣∣ξ=0=0ψ(ξ=0)=0dψdξ|ξ=0=0\psi(\xi = 0) = 0 \quad \left.\frac{d\psi}{d \xi}\right|_{\xi = 0} = 0 SciPyodeint()を使用していますが、ご覧のように、方程式は原点で特異です。ドキュメントには、ODEPACKを使用することが記載されています。 私はすでにの近傍における溶液の級数知っξ=0ξ=0\xi = 0(REFを): ψ(ξ)≃ξ26−ξ4120+ξ61890ψ(ξ)≃ξ26−ξ4120+ξ61890\psi(\xi) \simeq \frac{\xi^2}{6} - \frac{\xi^4}{120} + \frac{\xi^6}{1890} に設定しようとしtcritましたnp.array([0.0])が、機能しませんでした。無効な値に関する警告が表示され、私の解決策はすべてNaNです。たぶん0.01から統合するべきでしょうか?または他の解決策はありますか?
8 python  ode 

1
scipy.optimize.fmin_bfgs:「精度の低下により、必ずしも必要なエラーが達成されるとは限らない」
Pythonでscipy.optimize.fmin_bfgs関数を使用して関数を最適化しようとすると、投稿の件名に警告が表示されます。完全な出力: 警告:精度の低下により、必ずしも望ましいエラーが達成されるとは限りません Current function value: nan Iterations: 1 Function evaluations: 18 Gradient evaluations: 3 致命的なエラーではありません。答えは出ますが、最適な検索結果にはほど遠いです。 このエラーを生成する可能性のある一般的な「noob」エラーはありますか?私は昨日だけこのパッケージを使い始めました。だから、どこから始めればいいのかさえわからない。どんな助けでもありがたいです!

4
SciPyを使用したスプラインの高次導関数
私はPythonで私のデータに合うようにスプラインを作成しました: spline=scipy.interpolate.UnivariateSpline(energy, fpp, k=4) 使用したい方程式には、n = 2とn = infinityの合計が含まれます。ここで、nは点Eoでの微分の次数です。ただし、使用; UnivariateSpline.__call__(spline, e0, nu=n) 値を呼び出すために、4階差分を超える値を取得できません。この関数を評価するために人々が知っている他の関数はありますか?約8次の上には、値をゼロに設定する前置乗算器がありますが、それでも4次より高くする必要があります。

2
データセットをフィルタリングして、ニューラルネットワークトレーニングのより均一な分布を取得する
スティッフODEの完全なシステムを解くのではなく、人工ニューラルネットワーク(ANN)を使用して流体の反応率を予測することを検討しています。私の研究室の何人かの人はすでにそれにいくつかの仕事をしていたので、私はゼロから始めませんが、私のアプリケーションに問題があります。そのうちの1つは、トレーニング用のデータセットの品質に関連していると思います。通常、1D / 2D / 3DのCFDシミュレーションからトレーニングデータを抽出します。とにかく、ニューラルネットワークに送るデータの多次元配列ができあがります。問題の大きさを理解するために、8つのネットをそれぞれ10の入力と1つの出力でトレーニングすることを検討しています。約100,000ポイントのトレーニングセットは妥当だと思いますが、問題は、これらの100,000ポイントが私の多次元空間の特定の領域をカバーする必要があることです。 スナップショットごとに、トレーニングが正確であることを確認するために高いサンプリングが必要な領域には、ポイントのごく一部しかありません スナップショットをまとめてコンパイルすると、多くのほぼ重複するポイントができます。これは、a)これらの領域に重点を置いてトレーニングにバイアスをかけることにより、b)不要なポイントを追加することにより、ANNトレーニングに悪影響を及ぼします。 そのため、トレーニングセットに含める前に、記録したポイントをフィルタリングしようとしています。私が見ると、新しいポイントがデータセットのすべてのポイントの特定のn次元の半径内にあるかどうかを確認する必要があります。このブルートフォースアプローチは、n ^ 2のようないくつかのトリックスケールを除外し、100,000から10,000ポイントを抽出するのにまあまあ機能します(30分かかります)が、スナップショットのサイズと数を増やすとうまくいきません...明らかに、これを行うためのより賢い方法があるはずですが、私はどちらの方向から探し始めるのかわかりません。私は最初にpythonを試してみましたが、FORTRANに移動してスピードを上げることができましたが、まずはより良い戦略を探すべきだと思います。私の唯一の希望はある種のkdツリーですか?私はそれらについてほとんどまたはまったく経験がなく、私が見る問題は、データセットを構築するとツリーが成長することであり、これは複雑さを増すだけです。Python kdツリーライブラリは私のニーズに合っていますか?問題の規模を考えると、FORTRANに移行する必要がありますか?何かアドバイスをいただければ幸いです、ありがとう!
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.