0% found this document useful (0 votes)
25 views

Matlab 6

The document contains summaries of various numerical methods for solving equations including: - Linear combination - Finding scalars that define a linear combination of vectors that equals another vector - Linear dependence/independence - Checking if vectors are linearly dependent or independent - Linear transformations - Checking if an operation on vectors satisfies properties to be a linear transformation
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

Matlab 6

The document contains summaries of various numerical methods for solving equations including: - Linear combination - Finding scalars that define a linear combination of vectors that equals another vector - Linear dependence/independence - Checking if vectors are linearly dependent or independent - Linear transformations - Checking if an operation on vectors satisfies properties to be a linear transformation
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

25/10/2023, 21:11 Untitled29 - Jupyter Notebook

linear combination
In [1]: import numpy as np
x=np.array([[1,0,0],[0,1,0],[0,0,1]])
y=([2,3,4])
scalars=np.linalg.solve(x.T,y)
print(scalars)
print(y,"=",scalars[0],"*",x[0],"+",scalars[1],"*",x[1],"+",scalars[2],"*",

[2. 3. 4.]
[2, 3, 4] = 2.0 * [1 0 0] + 3.0 * [0 1 0] + 4.0 * [0 0 1]

In [ ]: ​

linear dependence and independence


In [18]: from sympy import*
import numpy as np
m=np.array([[1,0,0],[2,0,0],[0,1,1]])
m_sympy = Matrix(m)
_, inds=m_sympy.T.rref()
print(inds)
if len(inds)==3:
print("independent")
else:
print("dependent")

(0, 2)
dependent

In [15]: from sympy import *


import numpy as np

m = np.array([[1, 0, 0], [2, 0, 0], [0, 1, 1]])

# Use sympy's Matrix for symbolic manipulation
m_sympy = Matrix(m)
_, inds = m_sympy.T.rref()
print(inds)

if len(inds) == 3:
print("Independent")
else:
print("Dependent")

(0, 2)
Dependent

linear transformation

localhost:8888/notebooks/Untitled29.ipynb 1/7
25/10/2023, 21:11 Untitled29 - Jupyter Notebook

In [ ]: from sympy import*


from operator import add
var('x y')
var('x1, x2, y1, y2, c')
T= lambda X: [X[0]+X[1],X[1]]
X=[x,y]
print("given transformation T(x,y)=",T(X))
x=[x1,y1]
y=[x2,y2]
l1=T(list(map(add, x,y)))
r1=list(map(add,T(x),T(y)))
l2=T(list(map(lambda x: c*x,x)))
r2=list(map(lambda x: expand(c*x),T(x)))
if l1==r1 and l2==r2:
print("T is linear transformation")
else:
print("not LT")

matrix of LT
In [ ]: from sympy import *
var('x,y,a,b')
T=lambda x:[2*x[0]+3*x[1],4*x[0]-5*x[1]]
X=[x,y]
print("Given Transformation T(x,y)= ",T(X))
u1=[1,0];u2=[0,1]
v1=[1,0];v2=[0,1]
B1=[u1,u2]
B2=[v1,v2]
m=n=2
A=zeros(n,m)
for i in range(0,m):
eq=Matrix([v1,v2,T(B1[i])]).T
soln=solve_linear_system(eq,a,b)
A[:,i]=Matrix([soln[a],soln[b]])
print("\n Associated Matrix of Linear Transformation:")
pprint(A)

In [ ]: ​

basis and dimensions

localhost:8888/notebooks/Untitled29.ipynb 2/7
25/10/2023, 21:11 Untitled29 - Jupyter Notebook

In [ ]: from sympy import*


A=Matrix([[1,1,1],[1,2,3],[-1,0,1]])
D=A.det()
if D==0:
print("linearly dependent hence not basis")
else:
print("linearly independent hence forms basis")
B=A.echelon_form()
r=A.rank()
print("basis of subspace generated by given vector: ")
for i in range(0,r):
print(B.row(i))
print("dimensions of subspace:",r)

In [ ]: ​

rank-nullity theorem
In [ ]: import numpy as np
from scipy.linalg import null_space
A=np.array([[1,2,3],[4,5,6],[7,8,9]])
rank=np.linalg.matrix_rank(A)
print("Rank=",rank)
ns=null_space(A.T)
print("Nullspace=",ns)
nullity=ns.shape[1]
print("nullity=",nullity)
if rank + nullity == A.shape[0]:
print("verified")
else:
print("not verified")

In [ ]: #alternate method

localhost:8888/notebooks/Untitled29.ipynb 3/7
25/10/2023, 21:11 Untitled29 - Jupyter Notebook

In [ ]: from sympy import *


var('x,y,z,a,b')
T=lambda x: [x[1]-x[0],x[1]-x[2]]
X=[x,y,z]
print("Given transformation T(x,y,z)=",T(X))
u1=[1,0,0];u2=[0,1,0];u3=[0,0,1]
v1=[1,0];v2=[0,1]
B1=[u1,u2,u3]
B2=[v1,v2]
m=3
n=2
A=Matrix([T(u1),T(u2),T(u3)])
r=A.rank()
B=A.echelon_form()
print("R(T) is generated by:")
for i in range(0,r):
pprint(B[i,:])
print("rank=",r)
A=zeros(n,m)
for i in range(0,m):
eq=Matrix([v1,v2,T(B1[i])]).T
soln=solve_linear_system(eq,a,b)
A[:,i]=Matrix([soln[a],soln[b]])
K=A.nullspace()
print("Null space generated by : ",*K)
n=Matrix(K).shape[1]
print("Nullity=",n)
if m==(r+n):
print("Rank nullity theorem verified")
else:
print("Rank nullity theorem is not verified")

In [ ]: ​

bisection method

localhost:8888/notebooks/Untitled29.ipynb 4/7
25/10/2023, 21:11 Untitled29 - Jupyter Notebook

In [ ]: from sympy import*


def f(x):
return x**3-4*x-9
a=float(input("a="))
b=float(input("b="))
if f(a)*f(b)>0.0:
print("bye")
else:
print("root lies btw a and b")
i=int(input("i="))
step=1
while (step<=i):
x=(a+b)/2
print('Iteration: %d, x=%0.6f and f(x)=%0.6f'%(step,x,f(x)))
if f(a)*f(x)<0:
b=x
else:
a=x
step= step+1
print("required root is %0.6f"%x)

In [ ]: ​

newton raphson
In [ ]: from sympy import*
def f(x):
return x**3-2*x-5
def g(x):
return 3*x**2-2
x0=float(input("x0="))
x1=float(input("x1="))
if f(x0)*f(x1)>0.0:
print("bye")
else:
print("root lies btw a and b")
i=int(input("i="))
step=1
while (step<=i):
if g(x0)==0.0:
break
x=x0-(f(x0)/g(x0))
print('Iteration: %d, x=%0.6f and f(x)=%0.6f'%(step,x,f(x)))
x0=x
step= step+1
print("required root is %0.6f"%x)

In [ ]: ​

Regular falsi

localhost:8888/notebooks/Untitled29.ipynb 5/7
25/10/2023, 21:11 Untitled29 - Jupyter Notebook

In [ ]: from sympy import*


def f(x):
return (cos(x)+1-3*x)
a=float(input("a="))
b=float(input("b="))
if f(a)*f(b)>0.0:
print("bye")
else:
print("root lies btw a and b")
i=int(input("i="))
step=1
while (step<=i):
x=(a*f(b)-b*f(a))/(f(b)-f(a))
print('Iteration: %d, x=%0.6f and f(x)=%0.6f'%(step,x,f(x)))
if f(a)*f(x)<0:
b=x
else:
a=x
step= step+1
print("required root is %0.6f"%x)

In [ ]: ​

runge-kutta

localhost:8888/notebooks/Untitled29.ipynb 6/7
25/10/2023, 21:11 Untitled29 - Jupyter Notebook

In [13]: from sympy import*


def f(x,y):
return x+y**2
x0=float(input("x0="))
y0=float(input("y0="))
xn=float(input("xn="))
h=float(input("h="))
step=int(input("steps="))
def rk4(x0,y0,xn,n):
print('xo \t y0 \t k1 \t k2 \t k3 \t k4 \t yn')
for i in range(n):
k1=h*(f(x0,y0))
k2=h*(f(((x0+h)/2),(y0+k1/2)))
k3=h*(f(((x0+h)/2),(y0+k2/2)))
k4=h*(f((x0+h),(y0+k3)))
k=(k1+2*k2+2*k3+k4)/6
yn=y0+k
print(' %.4f\t%.4f\t%.4f\t%.4f\t%.4f\t%.4f\t%.4f'%(x0,y0,k1,k2,k3,k
y0=yn
x0=x0+h
print(' x=%.4f,y=%.4f'%(xn,yn))
rk4(x0,y0,xn,step)

x0=0
y0=1
xn=0.4
h=0.2
steps=2
xo y0 k1 k2 k3 k4 yn
0.0000 1.0000 0.2000 0.2620 0.2758 0.3655 1.2735
0.2000 1.2735 0.3644 0.4638 0.4933 0.7043 1.7707
x=0.4000,y=1.7707

In [ ]: ​

localhost:8888/notebooks/Untitled29.ipynb 7/7

You might also like