連立微分方程式のPade近似
電気工学科の卒業研究の題材が、連立微分方程式のPade近似で、Fortranで当時最早で最速の設計を行いました。
課題としては、空間の再利用を行ってしまい、コンパイラの最適化を設定すると結果が違うことになってしまったことです。
事前にコンパイラの最適化処理を調べなかったことが課題でした。
単精度と倍精度の両方で作り、試験を行いました。
仕事で計算機関係の仕事について、計算機が自由に使えたので、
4倍精度で計算して、誤差評価をしようとしました。
計算が終わるのに3年かかることがわかりました。
34年前のことです。現在のPCのCPUなら1日で終わるかもしれません。
現在では、Matlabなどになっているシステムのライブラリを作る作業の一貫でした。全体の仕様をはっきりとは分かっておらず、全体像を見ずに部品だけを作るような関係でした。
連立微分方程式のPade近似解法 Fortran手による最適化とコンパイラの最適化、誤差の評価
Reduceを購入し、数式処理を少ししました。C言語が急速に立ち上がってきたのでCコンパイラに焦点を移しました。
Padé Approximants (Encyclopedia of Mathematics and its Applications, Series Number 59
Padé approximant
Padé Approximant
Padé approximation of models with time delay
Padé Approximations
行列指数関数の近似計算精度
python-control を用いたfeedback制御の基礎
Cコンパイラ
電総研(現在の産総研)の研修生で3ヶ月常駐した際に、OBJという抽象データ型に対応した言語の論文への意見を求められました。
1ヶ月目は、Small Cコンパイラのソースコードを入力してコンパイラの作りを学び、2ヶ月目はPascalで書かれたコンパイラのソースコードを読みながらC言語に移植しながら、コンパイラの作りを学び、3ヶ月目にOCJのシンタックスチェッカを作りながらOBJの言語仕様を確認しました。
この時の知見は、型を継承する方法がいくつかあるが、どの方法を使うとよいかを先験的に決める方法がないこと、実際の問題を解くために型を継承したとしても、その方法が最適化どうかを先験的に決める方法がないことなどである。
これは、のちにEvent-Bでモデルを記述する場合にも同様の課題として残っていることがわかり、言語機能で継承方法を自動検査したり、自動構築したりする背景理論の整理方法がみつからないかなって思っています。
この作業後に、Portable C Compilerの作者Stephen C. Johnsonが、MatLabのコンパイラを書いたり、Mathworksに転職したことを長らく知らずにきました。
A history of MATLAB
https://dl.acm.org/doi/10.1145/3386331
Stephen C. Johnson and Cleve Moler. 1994. Compiling MATLAB. In Proceedings of the USENIX Symposium on Very High Level Languages (VHLL). USENIX Association, Berkeley, California, USA (Oct.), 119–127. https://www.usenix.org/legacy/publications/library/proceedings/vhll/index.html
https://www.usenix.org/legacy/publications/library/proceedings/vhll/full_papers/vhll94_paper_johnson.pdf
プログラミング言語教育のXYZ 仮説(52)
https://qiita.com/kaizen_nagoya/items/1950c5810fb5c0b07be4
コンパイラを書くのは難しいか 仮説(175)
https://qiita.com/kaizen_nagoya/items/a87c65d487bc7a67da11
C言語(C++)に対する誤解、曲解、無理解、爽快。仮説(173)
https://qiita.com/kaizen_nagoya/items/3f3992c9722c1cee2e3a
C++/C コンパイルエラーを記録するとよい理由7つ
https://qiita.com/kaizen_nagoya/items/85c0e92b206883140e89
MISRA C まとめ #include
https://qiita.com/kaizen_nagoya/items/f1a79a7cbd281607c7c9
Autosar Guidelines C++14 example code compile list(1-169)
https://qiita.com/kaizen_nagoya/items/8ccbf6675c3494d57a76
C言語C++とC# 未来短歌会 2018年8月号
https://qiita.com/kaizen_nagoya/items/0655cd600514330ab861
モデル設計
モデルを記述し、制御プログラムを自動生成する仕組みとして、代表的なソフトウェアにMatlab/Simlinkがある。
自動車業界におけるAUTOSARという企画は、自動制御のアナログのモデルとOS、通信のデジタルモデルを継ぎ目なく自動生成するものである。
現在時点でまだ十分な道具類の整備が進んでいない。
模型駆動開発(Model Driven Design)への道
https://qiita.com/kaizen_nagoya/items/bb4d73bfb3cbba88727f
(5)第三回(2013)アプリケーション開発部門銅賞 Toppers_JSPとScicos_lab(Scilabでも可)による組込みメカトロニクス制御シミュレーション 塩出 武(個人)
https://qiita.com/kaizen_nagoya/items/2aa0454c7bde7058e3f1
TOPPERSコンテスト受賞作品紹介(9)第四回(2014)アプリケーション開発部門 金賞Toppers_ASPカーネルとScilab による組込みメカトロニクス制御シミュレーション 塩出武 (個人)
https://qiita.com/kaizen_nagoya/items/fe398eb623889f587bba
模型駆動開発(Model Driven Design)への道
https://qiita.com/kaizen_nagoya/items/bb4d73bfb3cbba88727f
電動機制御算譜(プログラム)設計における3つの罠6つの教訓(実機)
https://qiita.com/kaizen_nagoya/items/b39b6b7ba0d90dff471d
TOPPERS のAUTOSARへの貢献(更新中)
https://qiita.com/kaizen_nagoya/items/d363cf06e2176207b391
自動制御、制御工学一覧(0)
https://qiita.com/kaizen_nagoya/items/7767a4e19a6ae1479e6b
一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39
<この項は書きかけです。順次追記します。>
書きかけで計上してごめんなさい。
最後に記載したURLは、Portable C Compilerの作者がMatlabのCompilerに貢献していることを知って整理を始めた資料です。この中身の更新とこの記事の更新を順次行う予定です。
ご指導、ご鞭撻のほどお願いいたします。
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
文書履歴(document history)
ver. 0.01 初稿 20201230
ver. 0.02 ありがとう追記 20230312
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.