Hàm Log Gamma là gì?
Hàm log gamma, ký hiệu \(\ln\Gamma(\text{a})\) hay \(\ln(\Gamma(\text{a}))\), chính là logarit tự nhiên của hàm gamma \(\Gamma(\text{a})\). Hàm gamma mở rộng khái niệm giai thừa sang các số thực và số phức: với số nguyên dương \(n\), ta có \(\Gamma(n) = (n-1)!\). Vì \(\Gamma(\text{a})\) tăng cực kỳ nhanh, các nhà khoa học và thống kê hầu như luôn làm việc với dạng logarit của nó để tránh tràn số. \(\ln\Gamma\) xuất hiện ở khắp nơi trong lý thuyết xác suất (phân phối beta và gamma, kiểm định chi bình phương), tổ hợp và giải tích số.
Cách dùng máy tính này
Nhập đối số \(\text{a}\) (một số thực bất kỳ) rồi bấm tính. Công cụ sẽ trả về \(\ln\Gamma(\text{a})\) ở dạng logarit tự nhiên, kèm theo giá trị logarit cơ số 10 (Log10 Gamma). Khi \(\text{a}\) lớn hơn 0, kết quả là một số thực. Tại \(\text{a} = 0, -1, -2, -3, \ldots\) hàm gamma có các điểm cực, nên \(\ln\Gamma\) không xác định và máy tính sẽ báo điều này. Với \(\text{a}\) âm không nguyên, \(\Gamma\) có thể nhận giá trị âm; lúc đó máy tính trả về giá trị thực chính (principal value) thông qua công thức phản xạ.
Giải thích công thức
Máy tính này sử dụng xấp xỉ Lanczos (\(g = 7\), chín hệ số), một phương pháp dạng đóng nhanh và độ chính xác rất cao. Với \(x = \text{a} - 1\) và \(t = x + 7.5\), nó tính tổng có trọng số \(A\) của các hệ số Lanczos rồi tính
$$\ln\Gamma(\text{a}) = 0.5 \ln(2\pi) + \left(x + 0.5\right)\ln(t) - t + \ln(A).$$Khi \(\text{a}\) nhỏ hơn hoặc bằng 0.5, công thức phản xạ
$$\Gamma(\text{a})\,\Gamma(1-\text{a}) = \frac{\pi}{\sin(\pi\,\text{a})}$$sẽ chuyển bài toán về một giá trị mà chuỗi Lanczos hội tụ tốt.
Ví dụ minh họa
Với \(\text{a} = 3.5\):
$$\Gamma(3.5) = 2.5 \times 1.5 \times 0.5 \times \sqrt{\pi} = 1.875 \times 1.7724538509 = 3.32335097045.$$Do đó
$$\ln\Gamma(3.5) = \ln(3.32335097045) = 1.20097360234707.$$Kiểm tra thêm với \(\text{a} = 5\): ta có \(\Gamma(5) = 4! = 24\), nên
$$\ln\Gamma(5) = \ln(24) = 3.17805383034795.$$Câu hỏi thường gặp
Vì sao dùng logarit của gamma thay vì chính hàm gamma? \(\Gamma(\text{a})\) tràn số dấu phẩy động tiêu chuẩn ngay cả với \(\text{a}\) vừa phải (\(\Gamma(171)\) đã vượt phạm vi của kiểu double), trong khi \(\ln\Gamma\) vẫn nằm trong tầm kiểm soát, nên dạng logarit là lựa chọn thực tế.
\(\ln\Gamma(1)\) và \(\ln\Gamma(2)\) bằng bao nhiêu? Cả hai đều bằng 0, vì \(\Gamma(1) = \Gamma(2) = 1\) và \(\ln(1) = 0\). Hàm này đạt cực tiểu gần \(\text{a} = 1.4616\).
Kết quả có chính xác tuyệt đối không? Xấp xỉ Lanczos đạt độ chính xác khoảng 15 chữ số có nghĩa với các đối số thông thường, tương đương độ chính xác của số dấu phẩy động kiểu double.