This repository contains the source code and analysis for comparing open-source and proprietary software environments in solving a common problem. The main objective of this project is to derive valuable insights and considerations by comparing the implementation and functionality of the Cholesky method for solving linear systems with sparse, symmetric, and positive definite matrices across different programming environments and operating systems.
The focus of this project is to examine and compare the implementation and performance of the Cholesky method in MATLAB, a closed-source language requiring a license, and Python, an open-source language with a rich ecosystem of libraries for solving a wide range of problems. Additionally, the project will contrast the execution of the method in both Windows and Linux operating systems.
The goal of this project is to provide a comprehensive analysis that goes beyond technical aspects and considers trade-offs, performance, effectiveness, managerial considerations, costs, and repercussions associated with choosing one environment over the other. The intention is to simulate a real-world decision-making context and facilitate an informed choice.
- Python: https://matplotlib.org/
Drive: https://drive.google.com/drive/folders/1fA6B7xLlRSZmUeHtPEsXHVTkyQcFPmdT?usp=sharing
The symmetric and positive definite matrices that will be analyzed are as follows:
- Flan 1565: https://sparse.tamu.edu/Janna/Flan_1565
- StocF-1465: https://sparse.tamu.edu/Janna/StocF-1465
- cfd2: https://sparse.tamu.edu/Rothberg/cfd2
- cfd1: https://sparse.tamu.edu/Rothberg/cfd1
- G3 circuit: https://sparse.tamu.edu/AMD/G3_circuit
- parabolic fem: https://sparse.tamu.edu/Wissgott/parabolic_fem
- apache2: https://sparse.tamu.edu/GHS_psdef/apache2
- shallow water1: https://sparse.tamu.edu/MaxPlanck/shallow_water1
- ex15: https://sparse.tamu.edu/FIDAP/ex15
Link: https://it.overleaf.com/6993789178xtxsqsfnxnbk
The repository contains the following files:
- Analysis/: Directory to store the results of the analysis.
- DOC/: Directory to store the documentation files.
- MATLAB/: Directory containing the MATLAB implementation of the Cholesky method.
- PyProject/: Directory containing the Python implementation of the Cholesky method.
- README.md: This file, providing an overview of the project and repository.
To get started with this project, please follow these steps:
-
Clone the repository to your local machine using the command:
git clone https://github.com/your-username/repository-name.git
-
Ensure you have MATLAB and Python installed on your system.
-
Navigate to the project directory:
cd repository-name
-
Explore the implementation files (
cholesky.m
andcholesky.py
) to understand the Cholesky method in both languages. -
Run the implementations on your preferred operating system, following the instructions provided within each file.
-
Analyze the results and consider the trade-offs, performance, and managerial implications in the context of your specific use case.
If you would like to contribute to this project, please follow these guidelines:
-
Fork the repository to your GitHub account.
-
Create a new branch for your contribution:
git checkout -b new-branch-name
-
Make your modifications and enhancements.
-
Commit and push your changes to your forked repository.
-
Submit a pull request, explaining the purpose and changes of your contribution.
This project is licensed under the MIT License. Feel free to use, modify, and distribute the code for your purposes.
For any questions or inquiries regarding this project, please contact [email protected].