問題タブ [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.
numpy - scipy を使用したローパス モミ フィルターのパラメーター
scipy を使用して単純なローパス フィルターを作成しようとしていますが、パラメーターの定義に助けが必要です。
フィルター処理が必要な時系列データに 350 万件のレコードがあり、データは 1000 Hz でサンプリングされています。
scipy ライブラリの signal.firwin と signal.lfilter を使用しています。
以下のコードで選択しているパラメーターは、データをまったくフィルタリングしません。代わりに、以下のコードは、グラフを 1000 データ ポイント (1 秒) 弱だけ右にシフトする時間位相の歪みを除いて、グラフィック的にはまったく同じデータのように見えるものを単純に生成します。
別のソフトウェア プログラムでは、グラフィカル ユーザー インターフェイス コマンドを介してローパス モミ フィルターを実行すると、10 秒 (10,000 データ ポイント) セグメントごとに同様の平均値を持つ出力が生成されますが、標準偏差が大幅に低下するため、この特定のノイズが本質的に失われます。より高い周波数のノイズによって汚染されていない長期的な傾向を示しながら、平均値を保持するものに置き換えます。他のソフトウェアのパラメーター ダイアログ ボックスには、「サンプル サイズとサンプリング周波数に基づいて最適化する」ように係数の数を選択できるチェック ボックスが含まれています。(私のものは 1000 Hz で収集された 350 万のサンプルですが、これらの入力を変数として使用する関数が必要です。)
* 0.05 Hz を超えるすべての周波数を削除するように、以下のコードを調整する方法を誰か教えてもらえますか? * 以下のコードから取得している同じ同一のグラフの時間の歪みだけでなく、グラフで滑らかな波を見たいです。
optimization - 整数上の線形代数パッケージ
私は最近、次の問題に遭遇しました。ベクトルのリスト(ここではタプルを意味します)がすべて整数のエントリを持つ場合、別の整数ベクトルがいつ入っているかを非常に迅速に判断するためのパッケージがありますか(言語はそれほど問題ではなく、速いほど良いので、Cを推測します)元のリストのスパン?整数に対してこの算術演算を行う必要があります (除算なし)。あると確信していますが、長い文献レビューを回避したかったのです。
c++ - CUDA での行列計算にはどのライブラリを使用していますか?
CUDA での行列計算にはどのライブラリを使用していますか? それともありますか?これはみんな自分で書いているようです。
通常のプロセッサでは、Eigenを使用します。GPUはどうですか?
python - Python の警告/エラーを numpy と scipy の行番号まで追跡する
エラーが発生しています:
Pythonから、numpy(バージョン1.5.0を使用)によってエラーがスローされると思います。しかし、いくつかの場所で「ログ」関数を呼び出しているため、エラーがどこから発生しているのかわかりません。このエラーを生成した行番号を出力するために numpy を取得する方法はありますか?
警告は、0 以下 (負) に丸めるのに十分小さい数のログを取ることによって引き起こされると思います。そうですか?これらの警告の通常の原因は何ですか?
macos - Mac OSXで速度を上げるために数学を多用するC++アプリケーションをプロファイリングする最も簡単で最良の方法は何ですか?
私はMacOSXでコンソールの数学を多用するアプリケーションを開発しています。これはC++で実装されており、特別なIDEは使用せず、プレーンテキストエディターとGCCをコンパイルに使用しています。
現在、私のデータの実装はかなり遅いです。最適化するパーツを知るためにプロファイルを作成する最も簡単で最良の方法は何ですか?
非常に基本的なレベルでvalgrindを使用して、メモリリークをチェックします。ただし、速度プロファイリングの計算に使用したことはありません(callgrind)。どうすればいいですか?callgrindのドキュメントは少しわかりにくい/初心者にはあまりわかりません。Macに相当するkcachegrindはありますか?私の知る限り、Maccachegrindはxdebug出力でのみ機能し、callgrind3.6.0出力では機能しません。
プロファイリングにvalgrindまたはgprofを使用する方が良いですか?私はどちらにも精通していません。
ありがとう。
python - Pythonでの物理量の命名
シミュレーション コードで使用される物理/数学量の適切な命名スキームを確立したいと考えています。次の例を検討してください。
読みやすさと簡潔な表記(数式は比較的短いままにする) のバランスをとるために、物理プロパティ (プロパティ、関数の引数など) に対してどのような一貫した命名スキームを提案しますか? 上記の例を改良していただけますか。それとも、より良いスキームを提案しますか?
「愚かな一貫性は小さな心のホブゴブリンである」ことを思い出して、 PEP8のガイドラインに従うとよいでしょう。行の長さの従来の 80 文字の制限に従いながら、わかりやすい名前に固執するのは難しいようです。
前もって感謝します!
python - 複数変数のグローバル最適化のための Python モジュール
グローバル最適化 (N 次元で関数のグローバル最小値を見つける) の一般的な手法を実装する python モジュールを探していましたが、成功しませんでした。
Python でシミュレートされたアニーリングまたは遺伝的アルゴリズムの実装について聞いた場合は、共有してください。
c++ - (再) C++ から始める (科学計算用)
私はさまざまな言語でのプログラミングにかなりのコツがあります。私は MATLAB を使用して (過去数か月間) 研究用にコードを実装してきましたが、MATLAB v$ C の実行速度の違いに初めて気付きました (非常に高速なプロトタイピング機能が気に入っています) 。
私は C++ を手に入れて、自分の研究で使い始めたいと思っています。私は OOP を認識しており、かなりの量の Java (比較的前) と C++ (さらに前) をプログラミングしました。私は本当にC++に深く入りたいと思っているので、同じリソースの提案が必要です:
- C++ を本当に有効に活用するには、どの C++ のもの (STL と.) を習得する必要がありますか?
- 始めるのに適したチュートリアル/マニュアルは何ですか?
- C++ の数値/科学ライブラリは何ですか? GSL? C++ の Scipy/Numpy に相当する (機能) はありますか?
Linux でプログラミングするので、 g++ を使用します。
以前の SO の質問へのポインタも高く評価されます。
python - scipy、numpy、pythonなどのシグモイド回帰
互いにシグモイド関係にある2つの変数(xとy)があり、xの値が与えられた場合に、yの値を予測できるような予測式を見つける必要があります。私の予測式は、2つの変数間のややシグモイド関係を示す必要があります。したがって、線を生成する線形回帰方程式を決定することはできません。2つの変数のグラフの左右両方で発生する、勾配の緩やかな曲線変化を確認する必要があります。
曲線回帰とPythonをグーグルで調べた後、numpy.polyfitを使い始めましたが、以下のコードを実行すると、ひどい結果が得られました。 誰かが私が望むタイプのシグモイド回帰方程式を得るために以下のコードを書き直す方法を教えてもらえますか?
以下のコードを実行すると、下向きの放物線が表示されることがわかります。これは、変数間の関係がどのようになるかとは異なります。代わりに、2つの変数の間にシグモイド関係がもっとあるはずですが、以下のコードで使用しているデータと密接に適合しています。以下のコードのデータは、大規模なサンプルの調査研究からの平均であるため、5つのデータポイントが示唆するよりも多くの統計的検出力を備えています。大規模なサンプルの調査研究からの実際のデータはありませんが、以下の平均とそれらの標準偏差(表示していません)はあります。以下にリストされている平均データを使用して単純な関数をプロットすることをお勧めしますが、複雑さが大幅な改善をもたらす場合、コードはより複雑になる可能性があります。
できればscipy、numpy、pythonを使用して、シグモイド関数に最適なものを表示するようにコードを変更するにはどうすればよいですか? これが私のコードの現在のバージョンであり、修正する必要があります。
以下の編集:(質問を再構成しました)
あなたの反応とそのスピードはとても印象的です。ありがとう、うんぶ。ただし、より有効な結果を生成するには、データ値を再構成する必要があります。これは、x値を最大x値のパーセンテージとして再キャストし、y値を元のデータのx値のパーセンテージとして再キャストすることを意味します。私はあなたのコードでこれをやろうとしました、そして次のことを思いつきました:
この改訂されたコードを修正する方法を教えていただけますか?
注:データを再キャストすることにより、基本的に2d(x、y)シグモイドをz軸を中心に180度回転させました。また、1.000は実際にはx値の最大値ではありません。代わりに、1.000は、最大テスト条件でのさまざまなテスト参加者からの値の範囲の平均です。
以下の2番目の編集:
ありがとう、ubuntu。私はあなたのコードを注意深く読み、scipyのドキュメントでその側面を調べました。あなたの名前はscipyドキュメントのライターとして表示されるようですので、次の質問に答えていただければ幸いです。
1.)leastsq()はresiduals()を呼び出しますか?これにより、入力yベクトルとsigmoid()関数によって返されるyベクトルの差が返されますか?もしそうなら、それは入力yベクトルとsigmoid()関数によって返されるyベクトルの長さの違いをどのように説明しますか?
2.)残余関数を介してその数学方程式にアクセスし、次に数学関数を呼び出す限り、任意の数学方程式に対してleastsq()を呼び出すことができるように見えます。これは本当ですか?
3.)また、p_guessにはpと同じ数の要素があることに気付きました。これは、p_guessの4つの要素が、x0、y0、c、およびkによって返される値とそれぞれ順番に対応していることを意味しますか?
4.)residuals()およびsigmoid()関数への引数として送信されるpは、leastsq()によって出力されるのと同じpであり、leastsq()関数はそのpを内部で使用してから返しますか?
5.)pの要素の数がp_guessの要素の数と等しい限り、モデルとして使用される方程式の複雑さに応じて、pとp_guessは任意の数の要素を持つことができますか?
python - 別のシグモイド回帰方程式の問題
昨日、このバージョンの以前のバージョンを投稿しましたが、誰かが編集のためにその投稿を閉じたように見えるため、このバージョンをその投稿に追加できないようです。新しい投稿の新しいバージョンを次に示します。
次のことを行うスクリプトを以下に示します
。1.) シグモイド データに最適な曲線をプロットします。
2.) x と y の新しい最大座標と最小座標に基づいてデータのサイズを変更します。
3.) サイズ変更されたデータの新しい最適曲線を計算してプロットします。
ステップ 1 と 2 は正常に機能しているように見えますが、ステップ 3 は機能しません。スクリプトを実行すると、サイズ変更されたデータに対して完全に無効な曲線がプロットされることがわかります。
サイズ変更されたデータに最適なシグモイド曲線を作成してプロットするように、以下のコードを修正する方法を誰か教えてもらえますか? これは、可能な最大値と最小値のスペクトル全体でサイズを変更したときに再現可能である必要があります。
次のコード行で定義されている New_p まで問題を追跡できるようです。
しかし、それ以上に問題を深く掘り下げる方法がわかりません。問題はグローバル変数とローカル変数の違いに関係しているのではないかと思いますが、おそらくそれは別のことです。
これが私の完全なコードの現在のドラフトです。