2024年10月05日

一日一項目 gnuplotとmatplot++ で四苦八苦 でもないか

VScodeでg++を使って計算してグラフ出すのに popen()使ってgnuplotを呼び出して描画した。
それと同じ事が VisualStudio2022 Communityでmatplot++というライブラリを使うと出来ると知って試し。C++14では不可。ワタクシは C++20で使っておるおる。

#include <cmath>
#include <matplot/matplot.h> これね。
x,yのデータ集めて

plot(x,y) って感じで描画する。PythonのMatplotlibのような使い方が出来るのである。素晴らしいのである。簡単である。ちなみにプランクの黒体輻射の数式の計算であるぞの。ま~物理っぽいですねえ。

image

g++, gnuplotでの描画 x,yの範囲はともかく。
これは計算結果をtext fileにして gnuplotに食わせる形式。ま~それでも出来るのです。
image


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) | ソフト系雑学 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
コチラをクリックしてください