- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to solve a circulant matrix equation using Python SciPy?
The linear function named scipy.linalg.solveh_banded is used to solve the banded matrix equation. In the below given example we will be solving the circulant system Cx = b −
Example
from scipy.linalg import solve_circulant, solve, circulant, lstsq import numpy as np c = np.array([2, 2, 4]) b = np.array([1, 2, 3]) solve_circulant(c, b)
Output
array([ 0.75, -0.25, 0.25])
Example
Let’s see a singular example, it will raise an LinAlgError −
from scipy.linalg import solve_circulant, solve, circulant, lstsq import numpy as np c = np.array([1, 1, 0, 0]) b = np.array([1, 2, 3, 4]) solve_circulant(c, b)
Output
-------------------------------------------------------------------------- LinAlgError Traceback (most recent call last) <ipython-input-6-978604ed0a97> in <module> ----> 1 solve_circulant(c, b) ~\AppData\Roaming\Python\Python37\site-packages\scipy\linalg\basic.py in solve_circulant(c, b, singular, tol, caxis, baxis, outaxis) 865 if is_near_singular: 866 if singular == 'raise': --> 867 raise LinAlgError("near singular circulant matrix.") 868 else: 869 # Replace the small values with 1 to avoid errors in the LinAlgError: near singular circulant matrix.
Now, to remove this error we need to use the option singular = ‘lstsq’ as follows −
from scipy.linalg import solve_circulant, solve, circulant, lstsq import numpy as np c = np.array([1, 1, 0, 0]) b = np.array([1, 2, 3, 4]) solve_circulant(c, b, singular='lstsq')
Output
array([0.25, 1.25, 2.25, 1.25])
Advertisements