はじめに
自分は大学生のときは実験しかやってこず、授業を含めプログラミングには触れてこなかった。実験データの整理はエクセルで事足りたからだ。keyenceのデータロガーを使ってデータ収録をしていたが、この経験は結構役に立った。熱電対の原理などに触れ。。というのは余談。。
先輩の代で数値解析をやっていたので、過去の卒論で少しプログラミングに触れた。当時2008年。fortranで書かれたプログラムだった。読んでいて、何となく何をしているか分かった気になっていたが、自分でコードを書いてといったことはしなかった。
触れてきたソフト、言語など
UWSC
社会人になり、入社2年目くらいで急に大量のPIVデータの処理をする必要が出てきた。手作業で一枚一枚ベクトル図を作ってもよかったが、ちょっと面倒になり、初めて自分でコーディングしたのが、「UWSC」。これは、ある動作を実際にしてみると、コードを作ってくれる。なので他のソフトとの連携が比較的容易だと思う。あとはforループで回すだけだった。名前は末尾がナンバリングされているから文字列をナンバーごとに加算すればうまく回ってくれた。西華産業PIVソフトを操作できた。初めてやったとき、大量のファイルが自動で処理されたことに感動を覚えた。。
エクセルのvba
社会人3年目くらいのこと。先人が残したエクセルに、反復計算を手作業でやるような処理があり、面倒なのでマクロを使ってみた。使おうと思ったきっかけは、会社の上司に本Excelで操る! ここまでできる科学技術計算を勧められ、事前に勉強していたこと。マクロ、微分方程式の計算などが学べるのでお勧め。機械系のエンジニアは目を通しておいて損はない。多少知識はあったのでとっかかりやすかった。ちなみにやったのは、自然循環系の温度-密度-圧力損失のバランス計算を反復処理し、流量を出すこと。
scilab
社会人4年目くらいのこと。社歴がここまでくると、色々な知識が身についてくる。ヒートパイプの並列間の流量配分のモデルを作るタスクが落ちてき、matlabのsimulinkのようなブロック線図を使ったら、かっこよくできないかと思い、scilabのxcosを使おうとした。が、ブロック線図では自分がやりたいこと(実験結果の再現など)が上手くできなかったので断念。式が込み入っていたので、ブロック線図上に表すのが上手くできなかった。(やりようはありそうだが、断念)
普通にscilabでコーディング。matlabライクのソフトのため、配列の扱いは容易だったと今は思う。当時は自宅PCでこっそりコーディングして会社にコードをメールすることができたので、フリーソフトであるということもありがたかった。会社でもこのソフトを使えたので良かった。
xcos
社会人5~6年目で転職。。色々合って。。転職先は自動車業界。少しでも予習しようと思い、自動車業界MBDエンジニアのためのSimulink入門を購入。ここには車両モデルとしてsimulinkが容易され、加速度などを計算する実習がついている。simulinkのような高尚なものは個人で用意できないため、xcosで代用。ここでの予習は後々ちょっとは役に立ったと思う。
matlab
社会人5~6年目。転職先ではsimulationのタスクがあり、simulinkと機構解析の連成することがあり、少しお勉強。ちょっと思ったのが、matlabは公式のhpで情報は公開されているものの、ちょっとわかりにくい。大した計算はしていない。。職種が変わったこともあり、モデルを作る機会がなくなった。
kotlin
社会人8年目。不景気のため、副業を始めなくてはという意識が強くなる。個人で副業といえば、アプリ開発かと思い立ち、kotlinに手を出す。他の言語との違いとしては、クラスの扱い。慣れが必要だが、どうにかアプリを作ることができた。作ったのは、「お買い物リスト」「g-simulator」。今後色々作りたい。
python
社会人9年目。matlabはライセンスの制限があり、一般人には手が出ない。。会社の同僚がpythonを使ってデータ処理しているという話を聞き、っえ、勝手に会社PCにpython入れていいの?っておもったけど、会社の教育一覧を見ているとpython押しが凄かったので、anacondaというpythonの解析環境を導入。一般人が使える、というのがよい。大量のデータ処理をする必要があり、元々matlabで組まれていたものがあったので、pythonに換装。中身も変えたかったので、換装してよかった。ファイル操作も絡むので、エクセルだとやりづらい(かな?)。フリーソフトのため、情報が豊富。家でお試しできる。在宅のため、会社PCが自宅にあり、トライアルできるのがよかった。コーディングはとにかく時間がかかるため(個人の所感)、会社の就業時間でやってもアウトプットがちゃんと出る自信がなく、就業時間外にトライアル。
本の紹介。学習の順番。
色々経験したが、部下がいたら↓をおすすめしたい。
(自分はペイペイ。。転職しなかったら部下がいたのになあ。あと祝日も休みなのに)
VBA
これらの本で一通りの数値解析の基礎&プログラミングの基礎を身に着けたい。
エクセルのため、敷居が低いと思う。
Excelで気軽に化学工学
scilab
そのあとは、こちらをかじると応用が利くと思う。matlabの下位互換のため。
「Maxima」と「Scilab」で学ぶ古典制御 (I・O BOOKS)
制御も学べる。同時にmaximaも学べる。mathmaticaの下位互換としての要素もある。PID制御といった古典制御。技術屋の基礎知識?
Scilabプログラミング入門
こちらは辞書的に使用
自動車業界MBDエンジニアのためのSimulink入門[第2版]-4週間で学ぶSimulink実践トレーニング- (MBD Lab Series)
車両挙動の知識がつく (おまけ)
python
上2つの基礎が身についたら、基本ネット検索でコーディングできると思う。
とっかかりがちょっと(何をインストールする?)、、のため、別記事で解説。
Pythonデータ分析ライブラリPandas速習入門: python3系(Ver3.6.5対応)
kindle版しかない。データ処理としてpythonのpandasというライブラリを使う。この本に至るまでに基礎はついているはず。知らないことはネットで調べればよいが、一通り見ておくと、ネットの情報の理解が進む。
その他
今の時代、fortran,cなどから入るのは??と個人的には思う。実行結果がすぐに見え、ライブラリも豊富な、pythonやscilabといったスクリプト言語はコーディングが容易。
