Skip to content

Commit ea32c2f

Browse files
authored
Add files via upload
1 parent 6bb2df6 commit ea32c2f

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

Algoritma_CORDIC.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#Algoritma untuk menghitung sin dan cos dengan input derajat
2+
#Hanya berlaku untuk derajat pada Kuadran I
3+
#Program ini hanya untuk sekedar demonstrasi, tidak untuk diimplementasikan
4+
import numpy as np
5+
a = [-1,1] #variabel arah
6+
sd = float(input("Masukan derajat:"))
7+
while(sd>360):
8+
sd = sd - 360
9+
m_rotasi = np.matrix([[1,-1],[1,1]])
10+
#while(True):
11+
if(sd>0):
12+
sd = sd - np.arctan(2**(0))*180/np.pi
13+
elif(sd<0):
14+
sd = sd + np.arctan(2**(0))*180/np.pi
15+
#elif(sd == 0):
16+
i = 1
17+
#for i in range(12):
18+
while(True):
19+
print(i)
20+
#i = 1
21+
if(sd > -0.005 and sd < 0.005):
22+
break
23+
elif(sd == 0):
24+
break
25+
elif(sd>0):
26+
sd = sd - np.arctan(2**(-i))*180/np.pi
27+
m_rotasi = m_rotasi*np.matrix([[1,(-2**(-i))*a[1]],[(2**(-i))*a[1],1]])
28+
elif(sd<0):
29+
sd = sd + np.arctan(2**(-i))*180/np.pi
30+
m_rotasi = m_rotasi*np.matrix([[1,(-2**(-i))*a[0]],[(2**(-i))*a[0],1]])
31+
i = i + 1
32+
print(m_rotasi)
33+
print(sd)
34+
#calculate K constant
35+
K = 1
36+
for k in range(i):
37+
d = np.arctan(2**(-k))
38+
K = K * np.cos(d)
39+
#print(K)
40+
x,y = K*m_rotasi*np.matrix([[1],[0]])
41+
print("Nilai cos =", x[0])
42+
print("Nilai sin =", y[0])

0 commit comments

Comments
 (0)