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

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

4
分子エディター/ビジュアライザーの作成:オブジェクト指向プログラミング、データ構造、分子
私はプログラミングが初めてで、最初の大きな問題を解決し、最初の大きなプログラムを作成しようとしています。私は学習するコードのオープンソースの例を探しましたが、これまでのところ、私が完全に理解していない言語、または関連するがまだあまりにも遠い言語のコードのみを見つけました。ここでいくつかの概念的な手順を実行するのに問題があります。 私は、小さな有機分子を構築し、修正し、後で表現するための簡単なソフトウェアを作りたいです。これは主に学習課題です。ユーザーは、SMILES文字列を指定するか、スターター分子の基本セットから選択し、グラフィカルに、またはテキスト入力構文を介してその分子を構築できます。しかし、私はまだ複雑さのその時点ではありません。クラス/オブジェクトを作成して分子を保存する方法を完全に理解することすらできません。だから、私の質問は簡潔に:すべてのレベルの情報を保持しながら分子を構築するためにクラス/オブジェクトをどのように使用し、どのオブジェクトの属性としてどのデータ構造を使用する必要がありますか?また、オブジェクトを他のオブジェクトの属性にすることはできますか? これまでの私の思考の流れは次のとおりです。「分子」クラス、次に「アトム」クラス/サブクラス、「ボンド」サブクラス、そしておそらく「FunctionalGroup」サブクラスも考えていました。始めるには良い場所のように思えますが、OOPを誤解しているのかもしれませんが、これは悪いことです。しかし、その後、私の問題は本当に混乱します(私にとって)。これらの概念/アイデア/クラスはすべてありますが、分子を表現するためにどのデータ構造が必要かを完全には把握していません。原子のリストがあればいいでしょう。そのリストはAtomオブジェクトのリストですか?接続性を保存する方法も必要です。2Dマトリックスは、結合位置がマトリックス位置の整数であるため、良いアイデアのようです。 この時点で、私は仕事に圧倒され始めています。これまでにやっていることはすべて理にかなっていますか?この上に表示/描画アスペクトを追加することは、これらの多くのことを書き直し/再作業する必要があることを意味するかもしれませんが、少なくとも関連するデータで分子を保存してからアクセスできるポイントに到達しようとしていますチェック/変更するデータ。Pythonでこれを行うことを考えていたので、コード/クラスはおそらく次のようになります:http : //pastebin.com/uUi1BMzr おそらくこれはStackOverflowのプログラミングの質問かもしれませんが、ここに行くのに十分具体的だと思いました。私が概念的な失敗をした場所を指摘しただけでも、どんな援助も大歓迎です。前もって感謝します。

2
有限ボリュームコードのデータ構造:配列とクラス
磁気流体力学(MHD)の有限ボリュームコードを記述する必要があります。以前に数値コードを書いたことがありますが、この規模ではありません。クラスでデータ構造(オブジェクト指向アプローチ)を使用するか、速度、スケーラビリティなどの点で異なるプロパティに複数の配列を使用するか、どちらが良い選択かを尋ねたかっただけです。Pythonでコードを記述し、数値的に集中的な部分にはfortranを使用します。 Pythonのクラスの例は次のようになります class Cell: def __init__(self, x, y, z, U): 配列は単純に次のように定義できます x[nx][ny][nz] y[nx][ny][nz] z[nx][ny][nz] U[nx][ny][nz] 等

3
Pythonでの3Dサーフェスデータのメッシュ化
Pythonを使用してメッシュを構築したい3次元ポイントのデータセットがあります。私が見たすべてのソフトウェアでは、エッジを提供する必要があります。3Dのポイントのセットを入力として受け取り、メッシュを出力するPythonのプログラムはありますか?可能であれば、メッシュを均一にしたいと思います。

3
ポアソン方程式:ラグランジュ乗数による境界条件として完全勾配を課す
私は、2次元のポアソン方程式によって支配物理的な問題を有していて 私は2つの勾配成分の測定値を有する ∂ U / ∂ X及び ∂ U / ∂ Y境界の一部に沿って、 ΓのMよう課すしたい、 ∂ uと−∇2u=f(x,y),inΩ−∇2u=f(x,y),inΩ -\nabla^2 u = f(x,y), \; in \; \Omega ∂u/∂x∂u/∂x\partial{u}/\partial{x}∂u/∂y∂u/∂y\partial{u}/\partial{y}ΓmΓm\Gamma_m あり、遠方界に伝播します。∂u∂xi0=gm,onΓm∂u∂xi0=gm,onΓm \frac{\partial{u}}{\partial{x_i}}_0 = g_m, \; on \; \Gamma_m 接線方向の傾き成分、、私は統合することができ、次いで、ディリクレ条件を介して強制よう ∫ΓM∂U∂あなたは∂バツ(t 、0 )∂u∂x(t,0)\frac{\partial{u}}{\partial{x}}_{(t,0)} 同時に法線成分を課すために、 ∂ U∫Γm∂あなたは∂バツ(t 、0 )ds = u0∫Γm∂u∂x(t,0)ds=u0 \int_{\Gamma_m}\frac{\partial{u}}{\partial{x}}_{(t,0)} \, ds = u_0 、私はラグランジュ乗数を経由する必要があります集まりました。∂あなたは∂バツ(n 、0 …

2
CVXOPTVS。OpenOpt
CVXOPT:http ://abel.ee.ucla.edu/cvxopt/index.html OpenOpt:http ://openopt.org/Welcome それらの間の関係は何ですか? それぞれの長所/短所は何ですか? ところで、Python / C ++用の高品質の汎用凸最適化ライブラリは他にありますか?

2
共有メモリ並列プログラミング向けのPythonガイド
共有メモリマシン用のOpenMPをコーディングして(CとFORTRANの両方で)行列加算、乗算などの単純なタスクを実行した経験があります(LAPACKと競合する方法を確認するだけです)。OpenMPは、ドキュメントを見なくても簡単なタスクを実行できるほど十分に知っています。 最近、私は自分のプロジェクトでPythonに移行しましたが、絶対的な基本を超えるPythonの経験はありません。 2つの質問があります。 Pythonの共有メモリパラレルコンピューティングについて説明するための優れたガイド(オンラインPDF)はありますか? それを達成する最良の方法は何ですか?私は少し見ましたがctypes、それが最良の方法であるかどうかはわかりません。(最良の意味で言うと、プログラマー時間とシステム時間の間に良いトレードオフがあるものを意味します。コーディングが面倒にならないようにし、実行が遅くならないようにしてください)


2
petsc4pyとc / c ++ / fortranの使用効率
petsc4pyとc / c ++ / fortranはどれくらい遅いですか? 実行されているコードに大きく依存することはわかっていますが、マトリックスベクトル製品のような単純なものはどうでしょうか。
11 petsc  python 


4
初期値と最終値の制約を持つ結合ODEを解く
私の質問の本質は次のとおりです。2つのODEのシステムがあります。1つには初期値制約があり、もう1つには最終値制約があります。これは、いくつかの変数に初期値制約があり、他の変数に最終値制約がある単一のシステムと考えることができます。 詳細は次のとおりです。 私は、線形動的システムを駆動するために、連続時間の有限水平LQRコントローラーを使用しようとしています。Pythonエコシステムを引き続き使用したいと思います。 システムは、形態であるに、被写体X (0 )= X 0バツ˙(t )= A x (t )+ B u (t )x˙(t)=Ax(t)+Bu(t)\dot{x}(t) = Ax(t) + Bu(t)x (0 )= x0x(0)=x0x(0)=x_0 LQRソリューションは、x (t )で線形の最適な制御入力u(t)がu (t )= K (t )x (t )であるような行列生成します。K(t )K(t)K(t)x (t )x(t)x(t)u (t )= K(t )x (t )u(t)=K(t)x(t)u(t) = K(t)x(t) ここで、K(t )= R− 1BTP(t )K(t)=R−1BTP(t)K(t) …

4
Runge-Kuttaとデータポイントの再利用
Pythonでd yの 1次ODEを解くために、4次のRunge-Kuttaメソッドを実装しようとしています。。私はこの方法の仕組みを理解していますが、f(x、y)の計算回数を最小限に抑える効率的なアルゴリズムを作成しようとしています。これは非常にコストがかかるためです。以前に計算されたデータポイントは、ステップを進めるごとに再利用できるが、その方法はわからない、と言われました。誰もこれを行う方法を知っていますか、それは不可能ですか?dydx=f(x,y)dydx=f(x,y)\frac{dy}{dx} = f(x,y)f(x,y)f(x,y)f(x,y)

2
Pandasの制限とPythonでの代替
Pandasが最初に金融の世界、特に自然科学(物理学、生物学など)向けに開発されなかったことをどこかで読んだことがあります。同様のデータ分析Pythonパッケージがより「自然科学指向」なものはありますか? 私はパンダの使用を開始したばかりで、他のパッケージまたは自家製のソリューションを使用しないと解決できない2つの問題がすでに発生しています。 不確実性を管理する方法は? データの単位を簡単に定義するにはどうすればよいですか? おそらく他の問題があるかもしれませんが、もっと正確には経験がありません。現時点では、最初の点を解決するための不確実性パッケージについて考えていますが、パンダで正常に動作し、計算速度が低下しないかどうかはわかりません。実際、私は不確実性を伴う計算方法を探しているのではなく、インポートしたデータと共に不確実性を保存する単純な方法を探しています。2番目の点については、DataFrameとは別に辞書を作成して、各データに関連付けられた単位を管理するよりも優れた解決策を見つけることができませんでした。 同じ問題を経験したことがある場合、どのようにそれを解決しましたか、または自然科学のPythonでのデータ操作/保存/分析にどのパッケージを使用しましたか?

2
小さなノルム調整の固有ベクトル
ゆっくりと変化するデータセットがあり、その共分散行列の固有ベクトル/固有値を追跡する必要があります。 私はを使用してきましたがscipy.linalg.eigh、高すぎるため、すでに少しだけ正しくない分解が既に存在しているという事実を使用していません。 誰もがこの問題に対処するためのより良いアプローチを提案できますか?

2
奇妙な結果を持つ3次対4次シンプレクティック積分器のテスト
では私の答えにMSEの質問 2D、ハミルトニアンの物理シミュレーションに関しては、私はより高次の使用を示唆しているシンプレクティック積分器を。 次に、さまざまな時間ステップがさまざまな次数のメソッドのグローバル精度に及ぼす影響を示すのは良い考えだと思い、その効果のためにPython / Pylabスクリプトを作成して実行しました。比較のために私が選んだもの: (leap2)Wikipediaの2次例 Iは、名前の下にそれを知っているが、私は、よく知っていると馬跳び、 (ruth3)ルースの3次シンプレクティック積分器、 (ruth4)Ruthの4次シンプレクティック積分器。 奇妙なことに、どのタイムステップを選択しても、テストでは、Ruthの3次法の方がRuthの4次法よりも1桁精度が高いようです。 したがって、私の質問は次のとおりです。詳細は以下。 これらの方法は、分離可能なハミルトニアン、つまりとして記述できる システムでその強さを展開します。 ここで、はすべての位置座標を含み、 は共役運動量を含み、 は運動論を表しますエネルギーとポテンシャルエネルギー。H(q、p )= T(p )+ V(q)H(q,p)=T(p)+V(q)H(q,p) = T(p) + V(q)qqqpppTTTVVV この設定では、力と運動量を、それらが適用される質量によって正規化できます。したがって、力は加速度に変わり、モーメンタは速度に変わります。 シンプレクティックインテグレーターには、特別な(与えられた定数)係数が付属しており、これにおよびラベルを付けます。これらの係数を使用すると、システムを時間 から時間に進化させるための1つのステップは次の形式になります。a1、… 、aんa1,…,ana_1,\ldots,a_nb1、… 、bんb1,…,bnb_1,\ldots,b_ntttt + δtt+δtt+\delta t 以下のために:i = 1 、… 、ni=1,…,ni=1,\ldots,n すべての位置のベクトルを指定して、すべての加速度のベクトルを計算しますgggqqq すべての速度のベクトルをvvvb私gδtbigδtb_i\,g\,\delta t すべての位置のベクトルをqqqa私vδtaivδta_i\,v\,\delta t 知恵は今係数にあります。これらは、 [a1b1a2b2][a1b1a2b2a3b3][a1b1a2b2a3b3a4b4]=[120121]=[23724−23341−124]=12−2–√3[1201−2√3211−2√32−2–√3121](leap2)(ruth3)(ruth4)[a1a2b1b2]=[121201](leap2)[a1a2a3b1b2b3]=[23−23172434−124](ruth3)[a1a2a3a4b1b2b3b4]=12−23[121−2321−2321201−231](ruth4)\begin{align} \begin{bmatrix} a_1 & a_2 \\ b_1 …

4
部分特異値分解(SVD)のメモリー効率の高い実装
モデルの縮小のために、行列の最大20の特異値に関連付けられた左特異ベクトルを計算したい A ∈ RN、kあ∈RN、kA \in \mathbb R^{N,k}、 どこ N≈ 106N≈106N\approx 10^6 そして K ≈ 103k≈103k\approx 10^3。残念ながら、私のマトリックスああA どんな構造もなしで密になります。 このサイズのランダムマトリックスに対してPython svdのnumpy.linalgモジュールからルーチンを呼び出すだけの場合、メモリエラーが発生します。これは、V∈ RN、NV∈RN、NV\in \mathbb R^{N,N} 分解のために A = VSUあ=VSUA = VSU。 この落とし穴を回避するアルゴリズムが周りにありますか?たとえば、非ゼロの特異値に関連付けられた特異ベクトルのみを設定します。 計算時間と精度をトレードする準備ができています。

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