Community Tip - Did you get an answer that solved your problem? Please mark it as an Accepted Solution so others with the same problem can find the answer easily. X
The calculation result obtained in the following program is defined in one variable.
↑Program
↑New definition
This calculation takes a long time, is there a way to speed it up?
----------------------------------------------------------------------
Translated the topic from Japanese to English using google translate
Subject - 計算を早くする方法を探しています
Body - 以下のプログラムで得た計算結果を一つの変数で定義しています。
↑プログラム
↑新しく定義する
この計算にとても時間がかかるのですが、計算時間を短縮する方法はありますか?
- By Community Moderation Team
----------------------------------------------------------------------
手伝いたい人が入力する手間が省けるようにシートをアップロードしてください
復路のSPM後の分散補償あり(20231217上島)
SPM後の分散補償なしバージョン
(* 1218 稲葉改良ver)
There are three versions of this function with the same name and parameters. Prime will be confused which one to use. Which one do we use?
この関数には、同じ名前とパラメータを持つ 3 つのバージョンがあります。Prime はどれを使用するか混乱します。どれを使用すればよいでしょうか?
背景が緑色のプログラムは主に使用します。
可能でしたらまず分散補償なしバージョンをお願いします
OK
計算を高速化する方法の 1 つがあります。
ymax=0
RT = 5000
1 回実行される y=0..ymax という 2 つのネストされたループがあります
内側のループは x=0..RT-1 で、5000 回実行されます。
この内側のループの最後の実行では、x = RT-1 の場合、追加のステートメントが「IF」ステートメントによって実行されます
つまり、最初の 4999 回は「if」ステートメントをテストする必要があり、時間がかかります。
したがって、「if」ステートメントのないループ x=0..RT-2 を使用するのが最善です
次に、x = RT-1 に設定し、「if」ステートメントのないステートメントをさらに含めます。
記述されたプログラムは長くなりますが、「if」ステートメントがなくなったため、実行速度が速くなります。
朝までにこれを実行します。
乾杯
Terry
ワークシートに変更を加える前に、「if」ステートメントを削除しても機能するかどうかをテストしました。
速度はわずか 0.002 秒しか上がりません。
そのため、速度を上げる他の方法を探しています。
新しい dft/idft 関数は、廃止された cfft/icfft および CFFT/ICFFT 関数の機能を置き換え、特に大規模なデータ セットやサイズが 2 の累乗ではない場合に大幅なパフォーマンスの向上をもたらします
https://community.ptc.com/t5/Mathcad/To-speed-up-the-calculation/m-p/988636/highlight/true#M215385
dft/idft already mentioned.
Stuart
Have substituted all instances of CFFT and ICFFT with dft and idft and no time difference on execution.
CFFT と ICFFT のすべてのインスタンスを dft と idft に置き換えましたが、実行時に時間差はありません
ありがとうございます。
dftを使用しても計算速度に影響がなく、スケールが違うので計算結果も変わってしまうことが分かりました。
話が変わりますが、PTCの技術者に直接計算速度を早くする対処法を問い合わせたいのですが、連絡の方法が分かりません。
直接連絡を取る方法がわかるなら教えてほしいです。
Hi,
Did not want to promise this until software on my machine was ready. fftw3 is a C++ fft library. I got it compiled.
It is possible to write a custom Prime C++ Prime Application Programming Interface (API) function that mimics any function written in Mathcad. Speed can be drastically increased by this method. Once sped up a text processing function that took 28 minutes in Prime to a few seconds in C++. The sped up function can be used in Mathcad Prime.
It will take me more than three days to write this so want to be sure you want it. Please let me know.
Cheers
------------------------
こんにちは、
私のマシンのソフトウェアが準備できるまで、これを約束したくありませんでした。fftw3 は C++ fft ライブラリです。コンパイルしました。
Mathcad で記述された関数を模倣するカスタム Prime C++ Prime アプリケーション プログラミング インターフェイス (API) 関数を記述できます。この方法により、速度を大幅に向上できます。Prime で 28 分かかっていたテキスト処理関数を、C++ では数秒に高速化しました。高速化された関数は、Mathcad Prime で使用できます。
これを書くのに 3 日以上かかるので、必要なことを確認したいと思います。お知らせください。
よろしくお願いします
Terry
Terry
お返事遅くなりました。
計算時間を短縮することが大きな課題になります。
このことから高速化された関数を作成してほしいです。
また、計算時間を短縮するための解決策の1つとして、c言語でプログラムを作成しようと思います。
何かアドバイスはありますか?