The very first time I was taken aback when I typed in the following code I was surprised I got the following results in python inorder to solve the linear equation ax=b

#The code to solve a linear equation in python

import numpy as np

a=np.array([[1,1],[1.5,4])

b=np.array([2200,5050])

#Using the solve function in numpy

x=np.solve(a,b)

#Using the inverse of a

v=np.linalg.inv(a).dot(b)

#Now when you check both x and v values are same but when you perform x==v you will get an entirely different value

In [24]: v

Out[24]: array([ 1500., 700.])

In [25]: x

Out[25]: array([ 1500., 700.])

x==v

#The result is

array([ True, False], dtype=bool)

which is not expected as both values shown were same

what happened may be realised if you check the element values individually

In [31]: x[1]

Out[31]: 700.0

In [32]: v[1]

Out[32]: 699.99999999999977

i.e, the value of v[1] was actually only 699.99999999999977 no 700 and hence not equal. The correct answer corresponding to our linear equation is x and not v.

This is why built in functions are preferred most of the times over our own algorithms as appearances can be deceptive

#The code to solve a linear equation in python

import numpy as np

a=np.array([[1,1],[1.5,4])

b=np.array([2200,5050])

#Using the solve function in numpy

x=np.solve(a,b)

#Using the inverse of a

v=np.linalg.inv(a).dot(b)

#Now when you check both x and v values are same but when you perform x==v you will get an entirely different value

In [24]: v

Out[24]: array([ 1500., 700.])

In [25]: x

Out[25]: array([ 1500., 700.])

x==v

#The result is

array([ True, False], dtype=bool)

which is not expected as both values shown were same

what happened may be realised if you check the element values individually

In [31]: x[1]

Out[31]: 700.0

In [32]: v[1]

Out[32]: 699.99999999999977

i.e, the value of v[1] was actually only 699.99999999999977 no 700 and hence not equal. The correct answer corresponding to our linear equation is x and not v.

This is why built in functions are preferred most of the times over our own algorithms as appearances can be deceptive

Last edited: