VScodeでg++を使って計算してグラフ出すのに popen()使ってgnuplotを呼び出して描画した。
それと同じ事が VisualStudio2022 Communityでmatplot++というライブラリを使うと出来ると知って試し。C++14では不可。ワタクシは C++20で使っておるおる。
#include <cmath>
#include <matplot/matplot.h> これね。
x,yのデータ集めて
plot(x,y) って感じで描画する。PythonのMatplotlibのような使い方が出来るのである。素晴らしいのである。簡単である。ちなみにプランクの黒体輻射の数式の計算であるぞの。ま~物理っぽいですねえ。
g++, gnuplotでの描画 x,yの範囲はともかく。
これは計算結果をtext fileにして gnuplotに食わせる形式。ま~それでも出来るのです。
matplot++はPython matplotlibのような使い方が出来るので便利であるぞの。よってにgnuplotを呼び出す方式は放棄である。どや。
えーと、matplotcpp-h というヘッダーオンリーライブラリというのもある。それはmatplot++とは別物なのであるぞの。それもPython matplotlib風に記述出来るのである。
が、ワタクシはmatplot++を使うことにする。ちなみにVisualStudio2022 Communityで使うのであり、matplot++のインストールは VCpkgというMicrosoftのパッケージ管理ツールを使うと楽である。そういうのも今年知って試しておるおるおーーるず。
蛇足だが g++で popen()の記述。それはVisualStudio2022 Communityではエラーになったのである。Copilot先生に訊いたら、popen()ではなく _popen()にしろというのである。ここら方言か。知らんけど。ま~ popen()は放棄だからえーけどな。
つーわけで計算してグラフ化というのはワタクシとしては
wxMaxima
Python + matplotlib
VisualStudio2022 Communityで matplot++を使う
というように3種類のツールを持つのである。どや。ま~wxMaximaが手軽。大量の計算をするならばVisualStudio2022 Communityということに。c++は速いですわ、Pythonよりも。
Python高速化は@jitを使えばいいのだが、それでもc++より遅いのでした。@jitはNumbaというモジュール使って JITコンパイラを利用するのですねえ。
で、何の計算するの? ・・・・・・ うーーむ。知らん。
∑(1/n) n = 1 ~ 100兆 までの計算をDELL OPTIPLEX 7010SFF Win 11 23H2(非推奨PC)で試したら10時間を軽く超えましたのでもうやりません。g++ですね。
これも高速化の方法としては OpenMPも試したぞの。確かに高速化しますわ。
てなわけで、もう計算するのがなくなった。。。。。愚脳の悲しさですねえ。
だいたいワタクシは電卓で十分なのだよ。なにを!
posted by toinohni at 10:37| 東京 🌁|
Comment(0)
|
ソフト系雑学
|
|