%%% Preamble Requirements %%% % \usepackage{geometry} % \usepackage{amsfonts} % \usepackage{amsmath} % \usepackage{amssymb} % \usepackage{tikz} % Optional packages such as sfmath set through python interface % \usepackage{sfmath} % \usetikzlibrary{arrows,chains,positioning,scopes,shapes.geometric,shapes.misc,shadows} %%% End Preamble Requirements %%% \input{"/home/jav/.local/lib/python3.8/site-packages/pyxdsm/diagram_styles"} \begin{tikzpicture} \matrix[MatrixSetup]{ %Row 0 \node [DataIO] (output_theta) {$\begin{array}{c}\text{tracked state}$$\,(\vec{\beta})$$\end{array}$};& & & & & & \\ %Row 1 \node [Function] (theta) {$\begin{array}{c}$$ \boldsymbol \theta \, (\vec{\beta}) $$\end{array}$};& \node [DataInter] (theta-linear) {$\begin{array}{c}$$ \boldsymbol \theta \, (\vec{\beta}) $$\end{array}$};& \node [DataInter] (theta-pysindy) {$\begin{array}{c}$$ \boldsymbol \theta \, (\vec{\beta}) $$\end{array}$};& \node [DataInter] (theta-elastic) {$\begin{array}{c}$$ \boldsymbol \theta \, (\vec{\beta}) $$\end{array}$};& & & \\ %Row 2 & \node [Function] (linear) {$\begin{array}{c}\text{Linear}\end{array}$};& & & \node [DataInter] (linear-comp) {$\begin{array}{c}$$ md_{lin} $$\end{array}$};& & \\ %Row 3 & & \node [Function] (pysindy) {$\begin{array}{c}\text{pySindy}\end{array}$};& & \node [DataInter] (pysindy-comp) {$\begin{array}{c}$$ md_{pysind} $$\end{array}$};& & \\ %Row 4 & & & \node [Function] (elastic) {$\begin{array}{c}\text{Elastic net}\end{array}$};& \node [DataInter] (elastic-comp) {$\begin{array}{c}$$ md_{elast} $$\end{array}$};& & \\ %Row 5 & & & & \node [Function] (comp) {$\begin{array}{c}\text{compare}\end{array}$};& & \node [DataIO] (right_output_comp) {$\begin{array}{c}\text{save: best modesl}\end{array}$};\\ %Row 6 & & & & & & \\ }; % XDSM process chains { [start chain=process] \begin{pgfonlayer}{process} \chainin (theta); \chainin (linear) [join=by ProcessHVA]; \end{pgfonlayer} }{ [start chain=process] \begin{pgfonlayer}{process} \chainin (theta); \chainin (pysindy) [join=by ProcessHVA]; \end{pgfonlayer} }{ [start chain=process] \begin{pgfonlayer}{process} \chainin (theta); \chainin (elastic) [join=by ProcessHVA]; \end{pgfonlayer} }{ [start chain=process] \begin{pgfonlayer}{process} \chainin (elastic); \chainin (comp) [join=by ProcessHVA]; \end{pgfonlayer} }{ [start chain=process] \begin{pgfonlayer}{process} \chainin (linear); \chainin (comp) [join=by ProcessHVA]; \end{pgfonlayer} }{ [start chain=process] \begin{pgfonlayer}{process} \chainin (pysindy); \chainin (comp) [join=by ProcessHVA]; \end{pgfonlayer} } \begin{pgfonlayer}{data} \path % Horizontal edges (theta) edge [DataLine] (theta-linear) (theta) edge [DataLine] (theta-pysindy) (theta) edge [DataLine] (theta-elastic) (linear) edge [DataLine] (linear-comp) (pysindy) edge [DataLine] (pysindy-comp) (elastic) edge [DataLine] (elastic-comp) (comp) edge [DataLine] (right_output_comp) % Vertical edges (theta-linear) edge [DataLine] (linear) (theta-pysindy) edge [DataLine] (pysindy) (theta-elastic) edge [DataLine] (elastic) (linear-comp) edge [DataLine] (comp) (pysindy-comp) edge [DataLine] (comp) (elastic-comp) edge [DataLine] (comp) (theta) edge [DataLine] (output_theta); \end{pgfonlayer} \end{tikzpicture}