システムとモデリング

modelica, Julia, Design Structure Matrix, SysML, 他モデリング全般について。

Julia言語

【プログラミング言語Julia】DifferentialEquations.jlでRLC回路の微分代数方程式(DAE)を解く

今回はJuliaの強力な微分方程式数値計算パッケージDifferentialEquations.jlを使用してRLC回路を解いていきます。 パッケージの詳細は以下です。 diffeq.sciml.ai また関連する記事は以下になります。 otepipi.hatenablog.com otepipi.hatenablog.com RLC回…

【プログラミング言語Julia】パッケージ[Symbolics.jl]で数式処理を組み合わせたニュートン法を実装する。

今回もJuliaの数式処理パッケージSymbolics.jlの事例紹介になります。 過去の記事は以下になります。 otepipi.hatenablog.com otepipi.hatenablog.com また、記事内容は以下書籍のプログラムを参考にしています。 MATLABとOctaveによる科学技術計算丸善出版A…

【Julia言語おすすめパッケージ】Juliaの数式処理システム[Symbolics.jl]で数学の問題を解いてみる

今回も前回に引き続き数式処理システムSymbolics.jlの解説です。今回はこのパッケージを用いて簡単な多変数最適化の文章題を解いてみたいと思います。 問題は以下書籍からそのまま抜き出しました。 数理モデリング入門 ―ファイブ・ステップ法― 原著第4版作者…

【Julia言語おすすめパッケージ】Symbolics.jlを試してみる

Juliaの数式処理パッケージSymbolics.jlを試してみます。 github.com ドキュメントは↓です symbolics.juliasymbolics.org パッケージの宣言 using Symbolics 変数の宣言 @variables x \begin{equation} \left[ \begin{array}{c} x \ \end{array} \right] \en…

【Julia言語入門】Juliaとmodelicaで倒立振子のアニメーション

今回もJuliaとmodelicaの連携記事になります。 関連記事は以下です。 otepipi.hatenablog.com otepipi.hatenablog.com 今回は制御工学の題材としてメジャーな倒立振子をmodelicaでモデリングし、Juliaでアニメーションを行います。 倒立振子のモデル 倒立振…

【Julia言語入門】Juliaとmodelicaで魚の体重をPI制御する

今回もこれまでに引き続いてJuliaとmodelicaの連携を実践してみます。 今回は「魚の体重」をJuliaとmodelicaを使ってPI制御してみます。 魚の体重の数理モデル 魚の体重の増加量を表す数理モデルとしてフォン・ベルタンフィーモデルが知られています。 ここ…

【Julia入門】modelicaとJuliaで水タンクをモデリングする

※今回の内容は以下論文を再現しただけになります https://www.researchgate.net/publication/330809787_OMJulia_An_OpenModelica_API_for_Julia-Modelica_Interactionwww.researchgate.net 前回に引き続きmodelicaとJuliaを繋ぐOMJulia関連の記事になります…

【Julia入門】JuliaでOpen Modelicaのパラメーターを最適化する

今回は久々にmodeica関連の記事になります。 JuliaでOpen Modelicaを操作するパッケージ「OMJulia」を用いてopen modelicaのモデルのパラメーターを最適化します。 関連する記事は以下になります。 otepipi.hatenablog.com 今回のモデル 今回モデリングする…

【Julia入門】Juliaで婚活アプリのシステムモデリング

2021年初投稿です。今回は婚活アプリのシステムモデリングをしてみましたが、Jupyterで作成したものをそのままブログに貼り付けてみました。こちらのほうが手数少なく記事が作成できそうですが、見栄えがどうでしょうか……? Jupyterからの投稿手順については…

セルオートマトンの分類

前回の続きでセルオートマトンについて書いていきます。 otepipi.hatenablog.com 今回はセルオートマトンの分類についてになります。 以下書籍を参考にしています。セルオートマトンに関する和書は数少ないですが、その中でも特に詳細に記述されている用に思…

【Julia入門】Juliaで一次元のセルオートマトンを描画する

今回はシステムの離散モデルの1種であるセルオートマトンをJuliaで描画してみたいと思います。 最近、『東京大学工学教程 システム工学』シリーズを読む機会がありました。 東京大学工学教程 システム工学 システム理論I作者:大橋 弘忠,古田 一雄発売日: 201…

【Julia入門】Juliaで計算モデルの解析:収束判定

今回も書籍『A Biologist's Guide to Mathematical Modeling in Ecology and Evolution』 で学んだ内容を復習します。内容としては、計算モデルの収束判定です。

【Juliaおすすめパッケージ】Interact.jlでプロットをgifにする

これまでいくつかの計算モデルを静的にプロットしてきました。 今回はJuliaのパッケージInteract.jlを使って プロットをgifにしてみます。

【Julia入門】JuliaでCobweb plotを作成する

今回も書籍『A Biologist's Guide to Mathematical Modeling in Ecology and Evolution』 から学習した内容の備忘録になります。 計算モデルを解析する際に使用されるCobweb Plotsを作成してみます。

DiscreteモデルとContinuousモデルの違い

今回も書籍『A Biologist's Guide to Mathematical Modeling in Ecology and Evolution』 から学習した内容の備忘録になります。 ネズミが生殖により増えたり、銀行に預けたお金が複利で増えたり、人気商品だということが広まるとさらに人気になったり…… 「…

【Julia入門】Juliaで分岐図を描画してカオスを感じる

今回はJuliaで分岐図を作成してみたいと思います。 分岐図についてですが例として以下のようなものになります。 これはロジスティック関数の分岐図でパラメーターrを増やしていくと値が発散してカオス減少が確認できるものになります。 ja.wikipedia.org 今…

【Julia入門】Juliaで信頼性工学:ワイブル分布のプロット

唐突ですがJuliaを使って信頼性工学の勉強をしていきます。 今回参考にした書籍は以下です。 入門 信頼性工学(第2版):確率・統計の信頼性への適用作者:福井 泰好発売日: 2016/07/30メディア: 単行本(ソフトカバー) ワイブル分布とは ワイブル分布は1939年…

Open ModelicaをJuliaで操作する

久々にOpen Modelicaに手を出してみました。 今回はJuliaを使ってOpen Modelicaを操作してシミュレーションする試みです。 今年になってOpen ModlicaのJulia APIが開発されために可能になりました。 www.openmodelica.org 手順 パッケージOMJuliaを使用しま…

Plotly で Design Structure Matrix を描画する。

久々にDesign Structure Matrixの記事になります。 今までDesign Structure Matrixの描画にはGadfly.jlパッケージのヒートマップ機能を使用していました。 例としては以下のようなものになります。 ただこの描画方法ですとDSMの要素の有無を色でしか表現でき…

Juliaパッケージ DesignStructureMatrix.jlを制作して公式パッケージにするまで

Design Structure Matrix ( DSM )関係の関数を集めたJuliaパッケージDesignStructureMatrix.jlを公開しました。 github.com 現時点の内容としては DSMの描画 DSMのシーケンシング DSMのクラスタリング が利用できます。詳細はREADMEを御覧ください。 今回、J…

Gadfly.jlでDesign Structure Matrixを描画する。

今まではDesign Structure Matrixの描画にSeaborn.jlを使用してきました。 otepipi.hatenablog.com ただSeaborn.jlはPython環境がないと使用できない点、日本語に対応していない点が不満でしたので、描画をGadfly.jlに乗り換えたいと思います。 Gadfly.jlで…

Juliaで可到達行列をレベル分けして並び替える

Design Structure Matrixのシーケンシング関連の記事です。今回の内容は以下の記事をJuliaで自動化したものになります。 otepipi.hatenablog.com 可到達行列を並び替えて下三角行列に近い形にします。 並べ替える前の可到達行列は以下のような形になります。…

Juliaで可到達行列を求める

DSM(DesignStructureMatrix)のシーケンシングに必要なDSMの可到達行列をJuliaのプログラムで求めてみます。 可到達行列とは 以下のスライドの説明がわかりやすいと思います。 http://ise.me.tut.ac.jp/lectures/decision-making/DSS12-2.pdf DSMの隣接行列A…

DSMをJuliaでクラスタリングし、自動で整列させる

前回の記事の続きです。 otepipi.hatenablog.com 前回はJuliaでDSMのクラスタリングのみしましたが、今回はそのクラスタリング結果に基づいてDSMを並べ替えるところまでやります。 実装 実装したコードは以下のようになりました。 using LinearAlgebra using…

DSMをJuliaのクラスタリングプログラムで整理する。

今回はDSM(Design Structure Matrix)のクラスタリングコードをJuliaで実装してみます。 クラスタリングアルゴリズムについては下記記事を参照してください。 otepipi.hatenablog.com 実際には以下の記事の擬似コードをJuliaで実装し直したものになります。 o…

DSMを置換行列で並べ替える

前回の記事で行列を並べ替える置換行列を勉強しましたが、これをDSM(Design Structure Matrix)に応用してみます。 otepipi.hatenablog.com 例題 以下のDSMを対角線上に非ゼロ要素が集まるように行列演算で並べ替えます。 また、今回のDSMの隣接行列は以下の…

Metis.jlでグラフを分割する

今回はJuliaのパッケージMetis.jlでグラフを分割してみます。 github.com 以下の隣接行列からなるグラフを2つに分割してみます。 A=[0 1 0 0 1 1 0; 0 0 0 1 0 0 1; 0 1 0 1 0 0 1; 0 1 1 0 1 0 1; 0 0 0 1 0 1 0; 1 0 0 0 1 0 0; 0 1 1 1 0 0 0] Metis.par…

Juliaでスケールフリー・ネットワークの生成と可視化

前々回Juliaでランダムネットワークを生成しましたが、今回はスケールフリー・ネットワークを生成してみます。 otepipi.hatenablog.com スケールフリーネットワークとは ノードの次数分布がべき則で近似できるネットワークのことです。 一方、以前紹介したラ…

Juliaでランダム・ネットワークを生成して可視化する

この記事は以下の大著を大いに参考にしています。 いつか書評記事を書きたいですね。 ネットワーク科学: ひと・もの・ことの関係性をデータから解き明かす新しいアプローチ作者: アルバート・ラズロバラバシ,Albert‐L´aszl´o Barab´asi,池田裕一,井上寛康,谷…

DSM-Design Structure MatrixをJulia言語のheatmap(by Seaborn)で描画&ネットワーク可視化(by GraphPlot)

前回はDSM(Design Structure Matrix)をMatlabのheatmapで描画し、さらにネットワーク可視化を行いましたが、今回はJulia言語でそれをやってみます。 前回の記事は以下 otepipi.hatenablog.com heatmapでDSMの可視化 wikipediaのDSM例を描画します。 今回、…