記事一覧
Interface2022年9月号
ようやく入手できました。
20年近くMATLAB使ってますが、費用が高いのであれもこれもライセンスを持てるはずもなく、AIに関して言えば
PythonとMATLAB連携すればいいや!
ってな感じでPython使い始めましたが、せっかくInterfaceの企画ものでMATLABライセンスが6か月、しかもAI関係も扱えるということでこの際試してみようと思い、8月下旬ごろ買えばいいやと思いつつ、工学
0.1+0.2=0.3じゃない
プログラムあるある。
$${sin(0)=0}$$だけど$${sin(\pi)\ne0}$$って話が前回で、理由があって特に$${sin(\pi)=0}$$として扱いたい時に困るってことです。
そもそもコンピュータって丸め誤差あるから小数点計算すると$${0.1+0.2=0.3000}$$とかになるけど$${0.1+0.2==0.3000 \to FALSE}$$です。
結論言えば
・整数とし
三角関数の非ゼロ問題
Matlabだけでなく他の言語でもよくある話。
三角関数たとえばsin.cosを扱うときに数式の上では$${sin(0),sin(\pi),sin(2\pi),cos(0),cos(\pi),cos(2\pi)}$$
だと、手計算だと
$${sin(0)=0,sin(\pi)=0,sin(2\pi)=0}$$
$${cos(0)=1,cos(\pi)=-1,cos(2\pi)=1}$$
と結果が
Matlab:Simple Function Generator
Matlab File Exchangeに10年かそれ以上前に投稿したものです。
電子回路の性能やフィルター特性を評価するのにファンクションジェネレーターをよく使います。単純にFGと書いたりもしますが日本語にすると”関数発信器”になるでしょうか。
Matlabの場合確かファンクションジェネレーターについてはシグナルプロセッシングtoolboxが必要となりますが、本機能だけであればこのtoolbox
MatlabとPythonの連携pyrunfile
Matlabは導入だけでなく維持にも結構な費用がかかります。仕事でダイナミックシミュレーションをメインで、機械学習とかpythonの得意そうな部分だけ連携して使いたいってパターン結構あると思います。
これはpythonに限らずC言語でも同じですが、C言語の場合もともとC言語のプログラムを流用したい。あるいは、取引先との協業で使うのだけれどもソースコードを秘匿化したいってパターンが多いかと思います