問題タブ [scientific-computing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4687 参照

python - scipy、python、numpy を使用した非線形 e^(-x) 回帰

以下のコードは、データに適合する e^(-x) のモデルに沿った素敵な曲線ではなく、最適な線の平坦な線を示しています。私のデータに合うように以下のコードを修正する方法を教えてもらえますか?

0 投票する
4 に答える
20467 参照

python - Python の離散ラプラシアン (del2 相当)

Matlab (Octave) の離散ラプラシアン演算子 (関数) del2() に相当する Python / Numpy が必要です。いくつかの Python ソリューションを試しましたが、どれも del2 の出力と一致しないようです。オクターブで私は持っています

これにより結果が得られます

私が試したPythonで

結果を与える

私も試しました

それは結果を与える

そのため、どの出力も互いに一致していないようです。オクターブ コード del2.m は、それがラプラシアン演算子であることを示唆しています。何か不足していますか?

0 投票する
1 に答える
494 参照

python - プロファイリング Python - ストリーミング オーディオとスペクトル

この例を変更しようとしています: https://svn.enthought.com/enthought/browser/Chaco/trunk/examples/advanced/spectrum.py。残念ながら、私はそれをスケールすることができませんでした。サンプリング レートを 2 倍にすると、グラフはサウンド入力から遅れます。コードのどの部分がボトルネックになっているのかを突き止めたいと思います。cProfile を使用しようとしましたが、あまり調査しませんでした。

0 投票する
1 に答える
5831 参照

python - 流体の流れ、熱伝達、Python

完全な編集:

問題全体についてもう少し情報を提供します。プロジェクトは初期段階にあり、私の質問は実際には物事のごく一部についてのみです。

最終的な目標:
私は現在、Pythonで硬い障害物の周りの熱気の流れをシミュレートしようとしています。私は安定した空気の流入を持っています、バルクの流れは一時的で乱流です。演習全体の目的は、
-空気の流れがどのように動作するか
-障害物が熱くなる
-空気が冷えて気圧が下がる方法を理解することです。

これまでに行われたこと:
それほど多くはありませんが、物事は初期段階にあります。2Dの長方形のドメインと円形の障害物があります。メッシュは、バルクと障害物の境界で細かくなります。これは、興味深いことが起こっている場所だからです。現在、私は気流のみを考慮しており、対流や熱伝達は考慮していません。FEniCSを使用していますナビエ・ストークス方程式を解くためのソフトウェアコレクション。Fenicsには、Chorin射影法を使用したNSソルバーの例が付属しています。この例を、自分の設定に適合させました。剛体を滑りのない境界条件のある領域としてモデル化します(つまり、気流の速度をゼロに設定します)。ソルバーは引き続きその領域のNS方程式を解きます。特に、障害物内の圧力は時間とともに変化します。おそらく、これを回避し、NSソルバーをバルクに制限することをお勧めします。しかし、現時点では、これが速度にあまり影響を与えるとは思いません。

問題:
物事は非常に遅くなります。最終的なシミュレーションに数日かかるかどうかは気になりませんが、現在は障害物の周りの2次元の流体の流れであり、メッシュは最終的に望むほど細かくありません。熱が作用するともっと複雑になるので、これがもっと速くなることを望みました。

私の質問:
それは1つの質問に要約されます:

Pythonでナビエ-ストークス方程式を解くための高速なアルゴリズムまたは方法は何ですか?

ソルバーを最初から作成することはまったく問題ありませんが、同じ問題が発生します。今朝、投影法はおそらく最悪のアイデアではないことに気づきました。圧力と速度のアップグレードを切り離すため、これを別のCPUカーネルに割り当てることができます。

0 投票する
3 に答える
4007 参照

ruby - Ruby による科学プログラミング

本当に素晴らしい関数とライブラリが手元にあるので、私は python または octave で数学的計算を行っていました。しかし、最近、私は Ruby に興味を持ち始めました。Python の numpy や scipy に相当する科学技術プログラミング用のものが Ruby にあるのではないかと考えています。具体的には、matplotlib のようにプロットを描画し、numpy や scipy のように数学的代数計算をすばやく実行できるものを探しています。

0 投票する
2 に答える
5696 参照

python - 熱方程式とクランクニコルソンの有限差分解における境界条件の適用

以下のコードは、初期条件10 * np.sin(np.pi * x)で両端がゼロ温度に保たれているロッドを表す1D熱方程式を解きます。

この計算では、ディリクレ境界条件(両端の温度がゼロ)はどのように機能しますか?行列Aの上下の行には、ゼロ以外の2つの要素が含まれており、欠落している3番目の要素ディリクレ条件であると言われました。しかし、この条件がどのメカニズムで計算に影響するのかわかりません。Aに要素がない場合、u_{0}またはu_{n}をゼロにするにはどうすればよいですか?

以下の有限差分法では、Crank-Nicholsonを使用しています。

0 投票する
1 に答える
1867 参照

python - Pythonで(特定の周波数での信号のパワー)と時間の関係を推定する方法

信号のパワー(通常は10 kHzでサンプリングされる)と1つの周波数(たとえば50 Hz)での時間の関係を推定するための良い方法を探しています。スペクトログラムを計算して、ターゲット周波数でスライスすることができます。ただし、これは非効率的なようです。なぜなら、私は1つの周波数と時間の電力しか気にしないからです。正確に1つの周波数での電力がゼロ(限界内)であることに気付きました。目標周波数の周りの小さな周波数間隔内の信号の電力を計算したいと思います。

私の現在の「解決策」は、電力の2d配列を返すMatplotlibのmlab.specgram()関数を使用することであり、それをスライスするだけです。異なる信号でスペクトログラムを計算するのに大幅に異なる時間がかかるため(同じ長さであっても)、mab.specgram()関数を完全に信頼していないため、これには満足していません。

0 投票する
1 に答える
1979 参照

.net - Direct Compute を学習するための優れた Web リソースはありますか?

Microsoft の Direct Compute フレームワークを使用した数値計算に手を染めることに興味があります。全体の概念は、かなり文書化されていないビジネスのようです。このフレームワークの使用方法を学べる We​​b チュートリアルや電子ブックなどの有用なリソースはありますか?

ありがとう!

0 投票する
1 に答える
1034 参照

fortran - Scientific Fortran コンパイル エラー

私は科学モデリングプログラムに取り組んでいますが、まだプログラムをコンパイルすることさえできていません。私の教授が以前に動作したと主張するコードには触れていません。メイクファイルだけです。多くの試みの後、私が得た最も遠いものはこのエラーでした:

私の教授は、これは単なるコンパイルの問題であり、これを修正するために使用できるグローバル変数を含むオプションが必要であると主張しています。私が見つけた最も近いのは、オプションを使用することです

しかし、正しい場所に置いているのか、それとも同じエラーが発生するため、違いが生じたのかはわかりません。

0 投票する
2 に答える
226 参照

libraries - 科学計算: 自己完結型と再利用のバランスを取る?

私は科学研究コード、特にバイオインフォマティクスを書いています。もちろん、科学では、結果は再現可能でなければなりません。定期的にプロジェクトに関与しておらず、インフラストラクチャを詳細に理解していない人は、正当に私のコードを見て結果を再現したいと思うかもしれません。問題は、そのような人に簡単に提供/説明できるようにコードを自己完結型にすることは、可能な再利用の量を大幅に制限するように思われることです。

  • いくつかの関連プロジェクトで使用されている機能を個人用ライブラリに分解するのは便利なことがよくありますが、何も持たない 5,000 行のコード (製品/リリースの品質を意図していないため、ドキュメントが不十分であることは確かです) を含むライブラリをダンプするのは便利ではありません。すぐに結果を再現したい人が直面している問題を処理します。

  • システムにいくつかの重要なライブラリのセットをインストールし、何も考えずにすぐに使用できるようにしておくと便利なことがよくありますが、プログラマーではなく主に科学者である人に、これらすべてをどのようにセットアップするかを説明するのは便利ではありません。これは、自分で詳細を覚えていない場合に特に当てはまります。(ただし、問題の詳細は科学とは何の関係もない技術的な細目であることに注意してください。)

  • 研究プロジェクトのいくつかの関連する側面のすべてのコードを、多数のオプションを備えた 1 つの大きなプログラムに保持する方が、わずかなバリエーションや試したことごとに完全に自己完結型のコードを記述するよりも便利な場合がよくありますが、繰り返しになりますが、すべてをダンプするのは便利ではありません。結果を再現したいだけの人に、これについて、またはこれらすべてを説明してください。

これらの問題に対処してコードを再利用できるようにする方法はありますか?ただし、結果を再現したい人が妥当な労力でコードを実行できるようにする方法はありますか? 私の質問の中心にあるのは、あまり成熟していないコードの再利用可能なライブラリを作成する可能性であることに注意してください。