We use np.linalg.solve() to find the values of unknowns in a set of linear equations quickly and accurately.
np.linalg.solve() for linear systems in NumPy
Start learning this pattern below
Jump into concepts and practice - no test required
or
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Syntax
NumPy
np.linalg.solve(A, b)
A is a square matrix representing coefficients of variables.
b is a vector or matrix representing the constants on the right side of equations.
Examples
NumPy
import numpy as np A = np.array([[3,1],[1,2]]) b = np.array([9,8]) x = np.linalg.solve(A, b) print(x)
NumPy
import numpy as np A = np.array([[1,2,3],[0,1,4],[5,6,0]]) b = np.array([14,13,23]) x = np.linalg.solve(A, b) print(x)
Sample Program
This program solves two linear equations with two unknowns and prints the values of x and y.
NumPy
import numpy as np # Coefficients matrix for equations: # 2x + 3y = 8 # 5x + 4y = 13 A = np.array([[2, 3], [5, 4]]) # Constants vector b = np.array([8, 13]) # Solve for x and y solution = np.linalg.solve(A, b) print('Solution for x and y:', solution)
Important Notes
The matrix A must be square (same number of rows and columns).
If A is singular (no unique solution), np.linalg.solve() will raise an error.
Use this method instead of manual calculations for accuracy and speed.
Summary
np.linalg.solve() finds unknown values in linear equations.
It needs a square matrix of coefficients and a constants vector.
It returns the solution vector with values of the unknowns.
Practice
1. What does
np.linalg.solve(A, b) do in NumPy?easy
Solution
Step 1: Understand the function purpose
np.linalg.solve()is designed to find the vectorxthat satisfies the equationAx = b, whereAis a square matrix andbis a vector.Step 2: Differentiate from other matrix operations
Calculating determinant, inverse, or multiplication are different operations and use other functions likenp.linalg.det(),np.linalg.inv(), or@operator respectively.Final Answer:
Solves the system of linear equations Ax = b for x -> Option AQuick Check:
np.linalg.solve() = solve Ax=b [OK]
Hint: It finds x in Ax = b, not determinant or inverse [OK]
Common Mistakes:
- Confusing solve() with matrix inverse
- Using solve() for non-square matrices
- Thinking it multiplies matrices
2. Which of the following is the correct syntax to solve the system
Ax = b using NumPy?easy
Solution
Step 1: Recall correct function call
The correct function isnp.linalg.solve()with the first argument as matrixAand second as vectorb.Step 2: Check argument order and module
Arguments must be(A, b), not reversed. The function is insidenp.linalg, notnp.solve.Final Answer:
np.linalg.solve(A, b) -> Option CQuick Check:
Correct syntax = np.linalg.solve(A, b) [OK]
Hint: Remember: np.linalg.solve(matrix, vector) [OK]
Common Mistakes:
- Swapping A and b arguments
- Using wrong module or function name
- Missing np.linalg prefix
3. What is the output of this code?
import numpy as np A = np.array([[2, 1], [1, 3]]) b = np.array([10, 15]) x = np.linalg.solve(A, b) print(x)
medium
Solution
Step 1: Set up equations from matrix and vector
Matrix A and vector b represent:
2x + 1y = 10
1x + 3y = 15Step 2: Solve equations manually or trust np.linalg.solve
Solving:
From first: y = (10 - 2x)
Substitute in second: x + 3(10 - 2x) = 15
x + 30 - 6x = 15
-5x = -15
x = 3
y = 10 - 2*3 = 4
np.linalg.solve gives x = [3. 4.]Final Answer:
[3. 4.] -> Option DQuick Check:
np.linalg.solve(A,b) = [3. 4.] [OK]
Hint: Use np.linalg.solve to get exact solution vector [OK]
Common Mistakes:
- Mixing up order of variables in solution
- Incorrect manual calculation
- Confusing rows and columns in matrix
4. What error will this code produce?
import numpy as np A = np.array([[1, 2], [3, 4], [5, 6]]) b = np.array([7, 8]) x = np.linalg.solve(A, b)
medium
Solution
Step 1: Check matrix shape requirements
Matrix A must be square (same number of rows and columns) to usenp.linalg.solve(). Here, A is 3x2, not square.Step 2: Identify error raised by NumPy
NumPy raisesLinAlgErrorwith message about last 2 dimensions needing to be square.Final Answer:
LinAlgError: Last 2 dimensions of the array must be square -> Option BQuick Check:
Non-square A causes LinAlgError [OK]
Hint: Matrix A must be square for np.linalg.solve() [OK]
Common Mistakes:
- Using non-square matrix A
- Expecting multiplication instead of solve
- Ignoring error message details
5. You have the system:
Which code correctly solves for
3x + 2y - z = 1 2x - 2y + 4z = -2 -x + 0.5y - z = 0
Which code correctly solves for
x, y, z using np.linalg.solve()?hard
Solution
Step 1: Translate system to matrix and vector
Coefficients matrix A must match the system exactly:
Row 1: 3, 2, -1
Row 2: 2, -2, 4
Row 3: -1, 0.5, -1
Constants vector b is [1, -2, 0].Step 2: Check each option for correctness
A = np.array([[3, 2, -1], [2, -2, 4], [-1, 0.5, -1]]) b = np.array([1, -2, 0]) x = np.linalg.solve(A, b) matches coefficients and constants exactly.
A = np.array([[3, 2, 1], [2, -2, 4], [-1, 0.5, -1]]) b = np.array([1, -2, 0]) x = np.linalg.solve(A, b) has wrong sign in third element of first row.
A = np.array([[3, 2, -1], [2, -2, 4], [-1, 0.5, -1]]) b = np.array([1, 2, 0]) x = np.linalg.solve(A, b) has wrong second element in b.
A = np.array([[3, 2, -1], [2, -2, 4], [-1, 0.5, -1]]) b = np.array([1, -2, 0]) x = np.linalg.inv(A) @ b uses inverse multiplication which is less efficient and not recommended.Final Answer:
Option A code correctly solves the system -> Option AQuick Check:
Correct matrix and vector with np.linalg.solve() [OK]
Hint: Match coefficients and constants exactly; use np.linalg.solve() [OK]
Common Mistakes:
- Wrong signs in matrix or vector
- Using inverse instead of solve()
- Mixing up constants vector values
