Exploring Python’s Computer Algebra System for Effective training in Structural Analysis
Exploring Python’s Computer Algebra System for Effective training in Structural Analysis
HP Journal of Scientific Development Research JSDR2023 [E-ISSN 3026-9989 P-ISSN 3027-0219] Vol. 2
Journal of Scientific Development Research
www.hummingbirdjournals.com
2023
Vol. 2 No. 2
JSDR2023
Keywords: Python,
CAS, SymPy, Abstract
structural analysis, This paper explores the benefits of using Python’s
jupyter notebook. Computer Algebra System (CAS) to provide effective
training in structural analysis. The authors argue that by
introducing a comprehensive and flexible platform for
performing symbolic manipulation of equations and
equations systems, CAS will allow students to have greater
understanding of structural analysis principles. The paper
also discusses how this system can provide computer-
assisted teaching tools to facilitate learning in the
classroom. Structural analysis is a challenging area to teach,
as it requires intimate understanding of physical principles
and their application. The paper begins with an overview of
the fundamental concepts of structural analysis, as well as
the basics of Python and SymPy. This is followed by a
detailed description of sample problems adapted for SymPy
. The results of the exercises and experiments with SymPy
was discussed, focussing on the impact of the learning
process on the use of the library. Findings reveal that
SymPy is a powerful aid in teaching structural analysis,
especially when used with Jupyter Notebook.. Students can
use it to visualize and solve problems in a fraction of the
time required with traditional methods. It is believed that
SymPy’s intuitive approach together with Jupyter Notebook
will assist the students gain a deeper understanding of
theoretical and analytical concepts, which will be helpful on
Introduction
Computer Algebra Systems (CAS) are software packages used in the manipulation of
mathematical formulae in order to automate tedious and sometimes difficult algebraic
tasks. The principal difference between a CAS and a traditional calculator is the ability
of the CAS to deal with equations symbolically rather than numerically. Baduge et al.
(2022) stated that, Building and construction industry is slowly but constantly evolving
and embracing new technologies such as Building Information Modelling (BIM),
Artificial Intelligence (AI), Internet of Things (IoTs) and Smart Vision (SV) to further
enhance the efficiency, productivity, accuracy, and safety of the built environments.
According to Quraishi & Dhapekar (2021), Python is an advanced open source
programming language which is widely utilized by software engineers across the
world for different applications. It is accessible for free and can work effectively on
PCs and can be setup with little or no configuration. Commercial software have been
utilized in the analysis and design of reinforced concrete and other Building and Civil
Engineering structures. The cost of the commercial software hinders their wider
applications, as most organisations acquire only a limited quantity for a few staff of
the organisation. Individuals with little or no programming background can easily
understand and immediately commence utilizing Python in their projects.
SymPy stands for Symbolic Python, that allows the symbolic manipulation of data.
Symbolic computation deals with the computation of mathematical objects
symbolically. This means that the mathematical objects are represented exactly, not
approximately, and mathematical expressions with unevaluated variables are left in
symbolic form. SymPy is a full featured computer algebra system (CAS) written in the
Python programming language. It is free and open source Python package. (Sympy
Development Team, 2022; Cywiak & Cywiak, 2021; Meurer et al., 2017; Stewart,
2017; Stewart & Mommert, 2023)
Research Questions
• Can training content delivery in structural analysis be documented for digital
transformation?
• Does the use of CAS accurately present the training content delivery in
structural analysis?
• Is it possible to generate independent training module with study materials ins
structural analysis?
• Does Jupyter Notebook accurately present the training module as CAS?
SymPy
Katayama & Ohtsuka (2020) used SymPy for the symbolic computation and
automatic C++ code. According to Hua & Leu (2023) and Kopei et al. (2019)
variables must be declared as symbols in Sympy be usage. SymPy is very rich when
Jupyter Notebook
Jupyter Notebook is recommended to be use as the IDE for the development. The
output from Jupyter Notebook is beautiful and natural. jupyter.org (2023) described
the Jupyter Notebook as the original web application for creating and sharing
computational documents. It offers a simple, streamlined, document-centric
experience. Emeritus (2023) mentioned that the ambition to make a computer-algebra
system the - tool of first recourse for teaching, learning, and doing mathematics - was
expressed in the 1987 National Science Foundation (NSF) grant that funded the first
step in bringing computers into the classroom. According to Jupyter Team (2015), a
notebook is a shareable document that combines computer code, plain language
descriptions, data, rich visualizations like 3D models, charts, graphs and figures, and
interactive controls. A notebook, along with an editor (like JupyterLab), provides a
fast interactive environment for prototyping and explaining code, exploring and
visualizing data, and sharing ideas with others.
Page 13 JSDR Vol. 2 (2) 2023 E-ISSN 3026-9989 P-ISSN 3027-0219
Journal of Scientific Development Research JSDR2023 [E-ISSN 3026-9989 P-ISSN 3027-0219] Vol. 2
Real-world concepts and applications are associated in ways that encourage students
to apply them whenever possible to their learning processes. In this context, Jupyter
Notebooks and their highly innovative tools offer transparency for scientific research
and the reproductibility of new findings. These virtual notebooks can be used to
display text, video, and embedded interactive graphics. Jupyter installation is easy. It
can be installed using using this command – pip install notebook – Running the
notebook by this command – jupyter notebook – . Jupyter Notebook runs in a web
browser. (Bascuñana et al., 2023; Brown, 2018; Castilla & Peña, 2023; Colonnelli et
al., 2022; Hamrick, 2016; Ipython & Team, 2011; Ketcheson, 2014; Pérez & Granger,
2007; Seddighi et al., 2020; Suárez-García et al., 2021; Thomas & Cholia, 2021)
Structural Analysis
Structural analysis involves the assessment of structures under loads application. In
this paper, only force method of analysing statically indeterminate structures is
considered, i.e. structures where equilibrium equations are insufficient for their
complete analysis.
Force Method
This method involves releasing the redundants from an indeterminate structure and
ensuring conpatibity of the released structure with redundants acting separately as the
only loads on the structure. This will result in equations with the redundants as
unknowns. When the equations are solved and the rendundants determined, the
structure can be fully analysed using equilibrium equations. (Aslam Kassimali, 2012;
Connor & Faraji, 2016; Ghali et al., 2017; Hibbeler, 2017)
A B C D E F
4m 2m 4m 3m 3m 2m 3m 5m
Figure 1
import sympy as sp
from IPython.display import Math
from sympy import latex
sp.init_printing()
display(Math(rf'\text{{FORCE METHOD}}'))
display(Math(rf'\text{{This is a method of analysing statically indeterminate structure.
The degree of redundancy is first determined.}}'))
display(Math(rf'\text{{Decision is taking on the forces or reactions to be considered
as redundants. The redundants are released, so the resultant released structure}}'))
display(Math(rf'\text{{is statically determinate. The redundants are considered
separately as the only loads on the structure. For example, figure 1 is a}}'))
display(Math(rf'\text{{statically indeterminate structure. The structure has 4 degrees
of redundancy. The four internal reactions are considered as the redundants and,}}'))
display(Math(rf'\text{{ therefore, released. Figure 2 is the released strucute and figure
3 the redundant loads.}}'))
display(Math(rf'\text{{To determine the values of the redundant forces, compatibility
of displacements are established at the released}}'))
display(Math(rf'\text{{redundant points. Displamenets are determined at the released
points from the released structure and the redundant loads,}}'))
display(Math(rf'\text{{ and compability are ensured with the original structure, before
releasing the redundants.}}'))
# Function for dealing with Macaulay brackets
def macaulay(x, a):
v=x-a
if v < 0:
return 0
return v
display(Math(rf'\text{{Calculating deflections at points of redundant}}'))
display(Math(rf'\text{{The released strucuture is a simply supply supported beam
suppoting both UDL and Point Loads}}'))
display(Math(rf'\text{{We need to generate deflection equations for simply supported
beam separately supporting uniformly distributed load and separately supporting point
loads}}'))
# We now define symbols
x, y, M, P, w, L, a, b, C1, C2, mac, eq, eq1, eq2, EI= sp.symbols('x y M P w L a b C1
C2 [x-a] eq eq1 eq2 EI')
yB1, yB2, yC1, yC2, yD1, yD2, yE1, yE2 = sp.symbols('yB1 yB2 yC1 yC2 yD1 yD2
yE1 yE2')
Displamenets are determined at the released points from the released structure and the
redundant loads,redundant points. Displamenets are determined at the released points
from the released structure and the redundant loads, and compability are ensured with
the original structure, before releasing the redundants. and compability are ensured
with the original structure, before releasing the redundants. Calculating deflections at
points of redundant Calculating deflections at points of redundant The released
strucuture is a simply supply supported beam suppoting both UDL and Point LoadsThe
released strucuture is a simply supply supported beam suppoting both UDL and Point
Loads.
We need to generate deflection equations for simply supported beam separately
supporting uniformly distributed load and separately supporting point loadsWe need
to generate deflection equations for simply supported beam separately supporting
uniformly distributed load and separately supporting point loads.
5600𝑅𝐷 11900𝑅𝐷
𝑎𝑡 𝑥 = 4𝑚, 𝑦𝑅3𝐵 = − , 𝑎𝑡 𝑥 = 10𝑚, 𝑦𝑅3𝐶 = −
39𝐸𝐼 39𝐸𝐼
12800𝑅𝐷 7900𝑅𝐷
𝑎𝑡 𝑥 = 16𝑚, 𝑦𝑅3𝐷 = − 𝑎𝑡 𝑥 = 21𝑚, 𝑦𝑅3𝐸 = −
39𝐸𝐼 39𝐸𝐼
with 𝑅E as the redundant load
3175𝑅𝐸 13775𝑅𝐸
𝑎𝑡 𝑥 = 4𝑚, 𝑦𝑅4𝐵 = − , 𝑎𝑡 𝑥 = 10𝑚, 𝑦𝑅4𝐶 = −
39𝐸𝐼 78𝐸𝐼
7900𝑅𝐸 3675𝑅𝐸
𝑎𝑡 𝑥 = 16𝑚, 𝑦𝑅4𝐷 = − , 𝑎𝑡 𝑥 = 21𝑚, 𝑦𝑅4𝐸 = −
39𝐸𝐼 26𝐸𝐼
Deflections at Redundant Points for the redundant loads is obtained by adding the
deflections at redundant points
𝑦𝐵2 = 𝑦𝑅1𝐵 + 𝑦𝑅2𝐵 + 𝑦𝑅3𝐵 + 𝑦𝑅4𝐵
3872𝑅𝐵 6464𝑅𝐶 5600𝑅𝐷 3175𝑅𝐸
𝑦𝐵2 = − − − −
39𝐸𝐼 39𝐸𝐼 39𝐸𝐼 39𝐸𝐼
𝑦𝐶2 = 𝑦𝑅1𝐶 + 𝑦𝑅2𝐶 + 𝑦𝑅3𝐶 + 𝑦𝑅4𝐶
6464𝑅𝐵 12800𝑅𝐶 11900𝑅𝐷 13775𝑅𝐸
𝑦𝐶2 = − − − −
39𝐸𝐼 39𝐸𝐼 39𝐸𝐼 78𝐸𝐼
𝑦𝐷2 = 𝑦𝑅1𝐷 + 𝑦𝑅2𝐷 + 𝑦𝑅3𝐷 + 𝑦𝑅4𝐷
5600𝑅𝐵 11900𝑅𝐶 12800𝑅𝐷 7900𝑅𝐸
𝑦𝐷2 = − − − −
39𝐸𝐼 39𝐸𝐼 39𝐸𝐼 39𝐸𝐼
𝑦𝐸2 = 𝑦𝑅1𝐸 + 𝑦𝑅2𝐸 + 𝑦𝑅3𝐸 + 𝑦𝑅4𝐸
3175𝑅𝐵 13775𝑅𝐶 7900𝑅𝐷 3675𝑅𝐸
𝑦𝐸2 = − − − −
39𝐸𝐼 78𝐸𝐼 39𝐸𝐼 26𝐸𝐼
Compatibility EquationsCompatibility Equations
𝑦𝐵1 + 𝑦𝐵2 = 0, 𝑦𝐶1 + 𝑦𝐶2 = 0, 𝑦𝐷1 + 𝑦𝐷2 = 0, 𝑦𝐸1 + 𝑦𝐸2 = 0
3872𝑅𝐵 6464𝑅𝐶 5600𝑅𝐷 3175𝑅𝐸 759178
𝐸𝑞𝑢𝑎𝑡𝑖𝑜𝑛 1: − − − − + =0
39𝐸𝐼 39𝐸𝐼 39𝐸𝐼 39𝐸𝐼 13𝐸𝐼
6464𝑅𝐵 12800𝑅𝐶 11900𝑅𝐷 13775𝑅𝐸 116303
𝐸𝑞𝑢𝑎𝑡𝑖𝑜𝑛 2: − − − − + =0
39𝐸𝐼 39𝐸𝐼 39𝐸𝐼 78𝐸𝐼 𝐸𝐼
5600𝑅𝐵 11900𝑅𝐶 12800𝑅𝐷 7900𝑅𝐸 116519
𝐸𝑞𝑢𝑎𝑡𝑖𝑜𝑛 3: − − − − + =0
39𝐸𝐼 39𝐸𝐼 39𝐸𝐼 39𝐸𝐼 𝐸𝐼
3175𝑅𝐵 13775𝑅𝐶 7900𝑅𝐷 3675𝑅𝐸 7415285
𝐸𝑞𝑢𝑎𝑡𝑖𝑜𝑛 4: − − − − + =0
39𝐸𝐼 78𝐸𝐼 39𝐸𝐼 26𝐸𝐼 104𝐸𝐼
Solving the simultaneous equations
11785243 12431641 819435343 35766798
{𝑅𝐵 : , 𝑅𝐶 : , 𝑅𝐷 : , 𝑅𝐸 : }
101916 101916 6369750 353875
The values for the redundants are as follows:
11785243
𝑅𝐵 = 𝑘𝑁 = 115.63682836846kN , 𝑅𝐶
101916
12431641
= 𝑘𝑁 =121.979286863692kN
101916
Page 24 JSDR Vol. 2 (2) 2023 E-ISSN 3026-9989 P-ISSN 3027-0219
Journal of Scientific Development Research JSDR2023 [E-ISSN 3026-9989 P-ISSN 3027-0219] Vol. 2
819435343
𝑅𝐷 = 𝑘𝑁 = 128.644820126379kN, 𝑅𝐸
6369750
35766798
= 𝑘𝑁 = 101.071841752031kN
353875
Discussion of Results
The result has shown that training content delivery in structural analysis can be
documented for digital transformation. It has been digitally transformed. Not only was
the digital transformation possible, but the training content was accurately presented
by the CAS program and an independent training module has been produced with
study materials, which has been accurately presented by the Jupyter Notebool. SymPy
together with Jupyter Notebook provides a powerful tool and platform for training and
teaching delivery. The output from the use of the duo, is natural and elegant. SymPy
has proven to be powerful in terms of performing analysis symbolically. In this work,
SymPy produces accurate results in the treatment of differential equations as well as
solution to series of simultaneous equations. Sympy produces results of symbolic
analysis in fraction, rather than decimal, thereby, ensuring accuracy of results. Jupyter
Notebook has been used as a training platform and works well with SymPy, by
producing the output of symbolic results in their natural form. Combination of SymPy
and Jupyter Notebook, shows that, CAS can be utilized by all professionals.
Conclusion
A module in structural analysis, that depend not only on solution to simultaneous
equation, but differential equations as well, was implement using SymPy and Jupyter
Notebook. SymPy has proven itself as a powerful tool when it comes to computer
algebra system and a readily available platform for the development of teaching and
learning aid in structural analysis. SymPy libraries made provision for handling
problems associated with various aspects of structural analysis. It has successfully
symbolically solved differential equations associated with deflections and
simultaneous equations resulting from analysis. Its flexibility for allowing users to
define symbols make the process natural and the output from Jupyter Notebook, in
conformity with expectations. The use and application of SymPy is easy and
straightforward. SymPy is self-contained, the teaching-aid was implemented largely,
using SymPy. Jupyter Note provides the platform for the natural and well acceptable
output of the CAS.
Recommendations
The following are offered as recommendations:
• Structural trainers to invest in the use CAS for training content delivery.
Page 25 JSDR Vol. 2 (2) 2023 E-ISSN 3026-9989 P-ISSN 3027-0219
Journal of Scientific Development Research JSDR2023 [E-ISSN 3026-9989 P-ISSN 3027-0219] Vol. 2
References
Aslam Kassimali. (2012). Structural Analysis Fourth Edition. In Southern Illinois University—Carbondale (Vol. 53, Issue 9).
Baduge, S. K., Thilakarathna, S., Perera, J. S., Arashpour, M., Sharafi, P., Teodosio, B., Shringi, A., & Mendis, P. (2022).
Artificial intelligence and smart vision for building and construction 4.0: Machine and deep learning methods and
applications. In Automation in Construction (Vol. 141). https://doi.org/10.1016/j.autcon.2022.104440
Bascuñana, J., León, S., González-Miquel, M., González, E. J., & Ramírez, J. (2023). Impact of Jupyter Notebook as a tool to
enhance the learning process in chemical engineering modules. Education for Chemical Engineers, 44.
https://doi.org/10.1016/j.ece.2023.06.001
Brown, J. (2018). Using Jupyterhub in the Classroom : Setup and Lessons Learned. International Journal of Software Engineering
& Applications, 9(2). https://doi.org/10.5121/ijsea.2018.9201
Castilla, R., & Peña, M. (2023). Jupyter Notebooks for the study of advanced topics in Fluid Mechanics. Computer Applications
in Engineering Education, 31(4). https://doi.org/10.1002/cae.22619
Colonnelli, I., Aldinucci, M., Cantalupo, B., Padovani, L., Rabellino, S., Spampinato, C., Morelli, R., Di Carlo, R., Magini, N.,
& Cavazzoni, C. (2022). Distributed workflows with Jupyter. Future Generation Computer Systems, 128.
https://doi.org/10.1016/j.future.2021.10.007
Connor, J. J., & Faraji, S. (2016). Fundamentals of structural engineering: Second edition. In Fundamentals of Structural
Engineering: Second Edition. https://doi.org/10.1007/978-3-319-24331-3
Cywiak, M., & Cywiak, D. (2021). SymPy. In Multi-Platform Graphics Programming with Kivy. https://doi.org/10.1007/978-1-
4842-7113-1_11
Galán–García, J. L., Rodríguez–Cielos, P., Galán–García, M. Á., le Goff, M., Padilla–Domínguez, Y., Rodríguez-Padilla, P.,
Atencia, I., & Aguilera–Venegas, G. (2023). SODES: Solving ordinary differential equations step by step. Journal of
Computational and Applied Mathematics, 428. https://doi.org/10.1016/j.cam.2023.115127
Ghali, A., Neville, A. M., & Brown, T. G. (2017). Structural Analysis: A unified classical and matrix approach, Sixth edition. In
Structural Analysis: A Unified Classical and Matrix Approach, Sixth Edition. https://doi.org/10.1201/9781315273006
Hamrick, J. B. (2016). Creating and Grading IPython/Jupyter Notebook Assignments with NbGrader.
https://doi.org/10.1145/2839509.2850507
Hibbeler, R. (2017). Structural Analysis Tenth Edition. Pearson.
Ipython, T., & Team, D. (2011). IPython Documentation. Development, 3.
Kamalov, F., Santandreu, D., Leung, H. H., Johnson, J., & El Khatib, Z. (2023). Leveraging computer algebra systems in calculus:
A case study with SymPy. IEEE Global Engineering Education Conference, EDUCON, 2023-May.
https://doi.org/10.1109/EDUCON54358.2023.10125196
Karjanto, N., & Husain, H. S. (2021). Not another computer algebra system: Highlighting wxmaxima in calculus. Mathematics,
9(12). https://doi.org/10.3390/math9121317
Katayama, S., & Ohtsuka, T. (2020). Automatic code generation tool for nonlinear model predictive control with Jupyter. IFAC-
PapersOnLine, 53(2). https://doi.org/10.1016/j.ifacol.2020.12.447
Kaufmann, J., & Held, K. (2023). ana_cont: Python package for analytic continuation. Computer Physics Communications, 282.
https://doi.org/10.1016/j.cpc.2022.108519
Ketcheson, D. (2014). Teaching numerical methods with IPython notebooks and inquiry-based learning. Proceedings of the 13th
Python in Science Conference. https://doi.org/10.25080/majora-14bd3278-004
Kim, E., & Duggirala, P. S. (2020). Kaa: A python implementation of reachable set computation using bernstein polynomials.
EPiC Series in Computing, 74. https://doi.org/10.29007/rs5n
Kopei, V. B., Onysko, O. R., & Panchuk, V. G. (2019). Component-oriented acausal modeling of the dynamical systems in
Python language on the example of the model of the sucker rod string. PeerJ Computer Science, 2019(10).
https://doi.org/10.7717/peerj-cs.227
Kuhlman, D. (2013). A Python Book: Beginning Python, Advanced Python, and Python Exercises. A Python Book.
Mehare, H. Bin, Anilkumar, J. P., & Usmani, N. A. (2023). The Python Programming Language. In A Guide to Applied Machine
Learning for Biologists. https://doi.org/10.1007/978-3-031-22206-1_2
Meurer, A., Smith, C. P., Paprocki, M., Čertík, O., Kirpichev, S. B., Rocklin, M., Kumar, A., Ivanov, S., Moore, J. K., Singh, S.,
Rathnayake, T., Vig, S., Granger, B. E., Muller, R. P., Bonazzi, F., Gupta, H., Vats, S., Johansson, F., Pedregosa, F., …
Scopatz, A. (2017a). SymPy: Symbolic computing in python. PeerJ, 3. https://doi.org/10.7287/peerj.preprints.2083
Meurer, A., Smith, C. P., Paprocki, M., Čertík, O., Kirpichev, S. B., Rocklin, M., Kumar, Am. T., Ivanov, S., Moore, J. K., Singh,
S., Rathnayake, T., Vig, S., Granger, B. E., Muller, R. P., Bonazzi, F., Gupta, H., Vats, S., Johansson, F., Pedregosa, F., …
Scopatz, A. (2017b). SymPy: Symbolic computing in python. PeerJ Computer Science, 2017(1).
https://doi.org/10.7717/peerj-cs.103
Mezhennaya, N. M., & Pugachev, O. V. (2019). On perception of computer algebra systems and microsoft excel by engineering
students. Problems of Education in the 21st Century, 77(3). https://doi.org/10.33225/pec/19.77.379
Paffenroth, R., & Kong, X. (2015). Python in Data Science Research and Education. Proceedings of the 14th Python in Science
Conference. https://doi.org/10.25080/majora-7b98e3ed-019
Pawlik, A., Segal, J., Sharp, H., & Petre, M. (2015). Crowdsourcing scientific software documentation: A case study of the
NumPy documentation project. Computing in Science and Engineering, 17(1). https://doi.org/10.1109/MCSE.2014.93
Pérez, F., & Granger, B. E. (2007). IPython: A system for interactive scientific computing. Computing in Science and
Engineering, 9(3). https://doi.org/10.1109/MCSE.2007.53
Quraishi, M. A., & Dhapekar, M. N. K. (2021). Applicability of Python in Civil Engineering: Review. International Research
Journal of Engineering and Technology, 8(1).
Rule, A., Birmingham, A., Zuniga, C., Altintas, I., Huang, S. C., Knight, R., Moshiri, N., Nguyen, M. H., Rosenthal, S. B., Pérez,
F., & Rose, P. W. (2019). Ten simple rules for writing and sharing computational analyses in Jupyter Notebooks. In PLoS
Computational Biology (Vol. 15, Issue 7). https://doi.org/10.1371/journal.pcbi.1007007
Seddighi, M., Allanson, D., Rothwell, G., & Takrouri, K. (2020). Study on the use of a combination of IPython Notebook and an
industry-standard package in educating a CFD course. Computer Applications in Engineering Education, 28(4).
https://doi.org/10.1002/cae.22273
Stewart, J. M. (2017). SymPy: A Computer Algebra System. In Python for Scientists. https://doi.org/10.1017/9781108120241.009
Stewart, J. M., & Mommert, M. (2023a). About Python. In Python for Scientists. https://doi.org/10.1017/9781009029728.003
Stewart, J. M., & Mommert, M. (2023b). SymPy: Symbolic Math. In Python for Scientists.
https://doi.org/10.1017/9781009029728.008
Suárez-García, A., Arce-Fariña, E., Álvarez Hernández, M., & Fernández-Gavilanes, M. (2021). Teaching structural analysis
theory with Jupyter Notebooks. Computer Applications in Engineering Education, 29(5). https://doi.org/10.1002/cae.22383
Thomas, R., & Cholia, S. (2021). Interactive Supercomputing with Jupyter. Computing in Science and Engineering, 23(2).
https://doi.org/10.1109/MCSE.2021.3059037
Wang, J., & Wang, A. (2023). Python Tutorial. https://doi.org/10.1007/978-3-031-17646-3_2
Zemkoho, A. (2023). A Basic Time Series Forecasting Course with Python. Operations Research Forum, 4(1).
https://doi.org/10.1007/s43069-022-00179-z