Aljabar Python
Python dapat mengoprasikan Aljabar dengan bantuan library numpy.
Sedikit operasi vektor dan matriks yang penting diketahui
import numpy as np
import math
Vektor¶
Penting :
Bedakan ketika menulis u=[1,2,3] dan u=np.array([1,2,3])
yang pertama adalah list, yang kedua adalah vektor
Tampilan vektor pada python selalu tertulis menyamping, walaupun kita tambahkan transpose, tampilan akan tetap menyamping. Hal ini sangat penting dan harus berhati-hati.
u=np.array([1,2,3]) artinya $\mathbb{u}=\begin{bmatrix}1\\2\\3\end{bmatrix}$, tampilan pada python u= [1 2 3]
np.transpose(u)=$\mathbb{u}^T=\begin{bmatrix}1&2&3\end{bmatrix}$, tampilan pada python u= [1 2 3]
u=[1,2,3] #ini adalah list, bukan vektor
v=[4,5,6] #ini adalah list, bukan vektor
print("List u=",u)
print("List v=",v)
print("Penjumlahan list : u+v =",u+v)
#print("Perkalian Hadamard Vektor : u*v =",u*v) #jika baris ini dijalankan, akan error
#print("Perkalian dot vektor : u@v =",u@v) #jika baris ini dijalankan, akan error
u=np.array([1,2,3]) #Ini adalah vektor
v=np.array([4,5,6]) #Ini adalah vektor
print("Vektor u=",u)
print("Vektor v=",v)
print("Penjumlahan vektor : u+v =",u+v)
print("Perkalian Hadamard Vektor : u*v =",u*v)
print("Perkalian dot vektor : u@v =",u@v)
print("Perkalian dot vektor : np.dot(u,v) =",np.dot(u,v))
Perkalian vektor pada python.
Misalkan $\mathbb{u}=\begin{bmatrix}u_1 \\u_2 \\\vdots\\u_n\end{bmatrix}$ dan $\mathbb{v}=\begin{bmatrix}v_1 \\v_2 \\\vdots\\v_n\end{bmatrix}$
Perkalian Hadamard dengan syntax $\mathbb{u}*\mathbb{v}$ akan menghasilkan $\mathbb{u}*\mathbb{v}=\begin{bmatrix}u_1v_1 \\u_2v_2 \\\vdots\\u_nv_n\end{bmatrix}$
Perkalian dot vektor syntax $\mathbb{u}$@$\mathbb{v}$ akan menghasilkan $\mathbb{u}$@$\mathbb{v}=u_1v_1+u_2v_2+...+u_nv_n$
Perkalian dot vektor syntax np.dot(u,v) akan menghasilkan np.dot(u,v)$=u_1v_1+u_2v_2+...+u_nv_n$
print("Panjang vektor u : |u|=",math.sqrt(u[0]**2+u[1]**2+u[2]**2))
print("Panjang vektor u : |u|=",math.sqrt(u@u))
print("Panjang vektor u : |u|=",np.linalg.norm(u))
w=np.cross(u,v)
print("Perkalian silang vektor : w=np.cross(u,v) =",w)
print("Cek ortogonal u@w =",u@w)
Matriks¶
A=np.array([[1,2,3],[4,5,6],[7,8,9]])
print("A =",A)
print("A^T =",np.transpose(A))
Perkalian matriks pada python.
Misalkan $\mathbb{u}=\begin{bmatrix}u_1 \\u_2 \\\vdots\\u_n\end{bmatrix}$ dan $\mathbb{A}=\begin{bmatrix}a_{1,1}&a_{1,2}&\cdots&a_{1,n}
\\a_{2,1}&a_{2,2}&\cdots&a_{2,n}
\\\vdots&\vdots&\ddots&\vdots
\\a_{n,1}&a_{n,2}&\cdots&a_{n,n}\end{bmatrix}$
Perkalian Hadamard dengan syntax $\mathbb{u}*\mathbb{A}$ atau $\mathbb{A}*\mathbb{u}$ akan menghasilkan $\mathbb{u}*\mathbb{A}=\mathbb{A}*\mathbb{u}=\begin{bmatrix}u_1a_{1,1}&u_1a_{1,2}&\cdots&u_1a_{1,n}
\\u_2a_{2,1}&u_2a_{2,2}&\cdots&u_2a_{2,n}
\\\vdots&\vdots&\ddots&\vdots
\\u_na_{n,1}&u_na_{n,2}&\cdots&u_na_{n,n}\end{bmatrix}$
Perkalian dot dengan syntax $\mathbb{u}$@$\mathbb{A}$ atau np.dot(u,A) yang artinya $\mathbb{u}^T\mathbb{A}$ akan menghasilkan
$\mathbb{u}$@$\mathbb{A}=$np.dot(u,A)$=\begin{bmatrix}u_1&u_2&\cdots&u_n\end{bmatrix}\begin{bmatrix}a_{1,1}&a_{1,2}&\cdots&a_{1,n} \\a_{2,1}&a_{2,2}&\cdots&a_{2,n} \\\vdots&\vdots&\ddots&\vdots \\a_{n,1}&a_{n,2}&\cdots&a_{n,n}\end{bmatrix}=\begin{bmatrix}u_1a_{1,1}+u_2a_{2,1}+\cdots+u_na_{n,1} &u_2a_{1,2}+u_2a_{2,2}+\cdots+u_na_{n,2} &\cdots &u_na_{1,n}+u_2a_{2,n}+\cdots+u_na_{n,n}\end{bmatrix}$
$=\begin{bmatrix}\sum_{i=1}^{n}u_ia_{i,1} &\sum_{i=1}^{n}u_ia_{i,2}&\cdots&\sum_{i=1}^{n}u_ia_{i,n}\end{bmatrix}$
Perkalian dot dengan syntax $\mathbb{A}$@$\mathbb{u}$ atau np.dot(A,u) yang artinya $\mathbb{A}\mathbb{u}$ akan menghasilkan
$\mathbb{A}$@$\mathbb{u}=$np.dot(A,u)$=\begin{bmatrix}a_{1,1}&a_{1,2}&\cdots&a_{1,n} \\a_{2,1}&a_{2,2}&\cdots&a_{2,n} \\\vdots&\vdots&\ddots&\vdots \\a_{n,1}&a_{n,2}&\cdots&a_{n,n}\end{bmatrix}\begin{bmatrix}u_1 \\u_2 \\\vdots\\u_n\end{bmatrix}=\begin{bmatrix}a_{1,1}u_1+a_{1,2}u_2+\cdots+a_{1,n}u_n \\a_{2,1}u_1+a_{2,2}u_2+\cdots+a_{2,n}u_n \\\vdots \\a_{n,1}u_1+a_{n,2}u_2+\cdots+a_{n,n}u_n\end{bmatrix}=\begin{bmatrix}\sum_{i=1}^{n}a_{1,i}u_i \\\sum_{i=1}^{n}a_{2,i}u_i\\\vdots\\\sum_{i=1}^{n}a_{n,i}u_i\end{bmatrix}$
print("Perkalian Hadamard u*A =",u*A)
print("Perkalian Hadamard A*u =",A*u)
print("Perkalian dot vektor u dengan A =",u@A)
print("Perkalian dot vektor u dengan A =",np.dot(u,A))
print("Perkalian dot vektor A dengan u =",A@u)
print("Perkalian dot vektor A dengan u =",np.dot(A,u))
Determinan Matriks
Misalkan $\mathbb{B}=\begin{bmatrix}1&2\\3&4\end{bmatrix}$
B=np.array([[1,2],[3,4]])
print("Determinan matriks B =",np.linalg.det(B))
Invers Matriks
print("Invers matriks B =",np.linalg.inv(B))
Nilai dan Vektor Eigen Matriks
val,vec=np.linalg.eig(B)
print("Nilai eigen matriks B",val)
print("Nilai eigen pertama matriks B",val[0])
print("Nilai eigen kedua matriks B",val[1])
print("Vektor eigen matriks B",vec)
print("Vektor eigen pertama matriks B",vec[0])
print("Vektor eigen kedua matriks B",vec[1])
Comments
Post a Comment