สูตรการคำนวณหามัธยลัคน์
ฟังก์ชั่น Midmc คือฟังก์ชั่นที่สร้างขึ้นด้วย
VBA บน Excel ใช้ในการหาค่ามัธยลัคน์หรือเมอริเดียน(ทศมลัคน์)แบบดาราศาสตร์
เพื่อใช้ประกอบการคำนวณตำแหน่งปัจจัยโหราศาสตร์ไทยระบบดาราศาสตร์สากล
ตัดค่าอายนางศ หรือนิรายนะวิธี มีตัวแปรที่รับเข้าดังต่อไปนี้
day = วันที่
month = เดือน
year = ปี ค.ศ.
hour = ชั่วโมง
min = นาที
Lon = ลองจิจูด
Lat = ละติจูด
ฟังก์ชั่นเสริมที่นำมาใช้ในการคำนวณ คือ Atan2
สามารถดูรายละเอียดได้ที่การคำนวณตำแหน่งดาวพุธ
(สูตรนี้ปรับค่าเขตเวลาหรือ time zone เป็น 7 แล้ว จึงใช้เวลาประเทศไทยในการคำนวณได้เลย)
สูตรการคำนวณมีดังนี้
Function Midmc(day As Double, month As Double, year As Double, _
hour As Double, min As Double, Lon As Double, Lat As Double) As
Double
Dim hr As Double, tz As
Double, ln As Double, la As Double, t As Double
Dim days As Double, f As
Double, ra As Double, ob As Double, mc As Double
hr = hour + min / 60
tz = 7
ln = Lon
la = Lat
ln = -ln
la = la
z = tz - 1
days= 367* year-INT(7*( year+INT((month
+9)/12))/4)+INT(275* month /9)+ day-767057
f = hr - tz
t = days+ f / 24 - 0.5) /
36525
ra = ((6.6460656 +
2400.0513 * t + 0.0000258 * t * t + f) * 15 - ln)
ra = ra - 360 * Int(ra /
360)
ob = (23.452294 -
0.0130125 * t)
Midmc = Atan2(Tan(ra * 3.14159265358979
/ 180), Cos(ob * 3.14159265358979 / 180)) * 57.2957795130823
Midmc = Midmc - 360 *
Int(Midmc / 360)
End Function
ตัวอย่างการคำนวณ
1 พฤษภาคม 2016 เวลา 12.00 น. ลองจิจูด 100.5 E ละติจูด 13.75 N (ประเทศไทย)
รูปแบบสูตร Midmc(1,5,2016,12,0,100.5,13.75)
ค่าที่ได้คือ 52.58859739 องศา
ทำเป็นลัคนาในระบบนิรายนะวิธี โดยการนำค่าอายนางศแบบลาหิรีมาลบออก 52.58859739 -24.08462478 = 28.50397261 องศา
โดยทำให้อยู่ในรูปของ ราศี-องศา-ลิปดา-ฟิลิปดา ดังนี้
1.ราศี 28.50397261 หาร 30
ลัพธ์เป็นราศี = 0
2.องศา จำนวนเต็มของเศษจากการหาร = 28.50397261 = 28
3.ลิปดา ทศนิยมที่เหลือคูณด้วย 60 = 0.50397261 X 60 = 30.2383566 = 30
4.ฟิลิปดา ทศนิยมที่เหลือในข้อ 3. คูณด้วย 60 = 0.2383566 X 60 = 14.301396 = 14
สรุป ตำแหน่งลัคนา(นิรายนะ) = ราศีเมษ 28 องศา 30 ลิปดา 14 ฟิลิปดา
ธีรพร บุญวงษ์(เพชรกำแพง)
8 พฤษภาคม 2559
(ต้องการขอรับไฟล์งาน
Excel
ติดต่อได้ที่ tepar2009@gmail.com)