Công cụ này làm gì
Công cụ này giải số một phương trình vi phân thường cấp một có dạng \(y' = F(x, y)\) với điều kiện đầu cho trước \(y(x_0) = y_0\), trên khoảng từ \(x_0\) đến \(x_n\). Nó sử dụng phương pháp Runge-Kutta bậc bốn cổ điển (RK4) — một trong những thuật toán tích phân một bước phổ biến và đáng tin cậy nhất trong giải tích số. Kết quả là một bảng các điểm \((x_i, y_i)\) xấp xỉ nghiệm thực, kèm theo giá trị cuối \(y(x_n)\). Đây là công cụ toán học thuần túy, không phụ thuộc vào quốc gia hay đơn vị nào.
Cách sử dụng
Nhập vế phải \(F(x,y)\) dưới dạng biểu thức theo x và y (ví dụ 1-y^2, x+y, x*y, hoặc sin(x)+y). Các phép toán được hỗ trợ gồm + - * / ^ cùng các hàm như sin, cos, tan, exp, log, ln, sqrt, abs, tanh, và các hằng số pi và e. Thiết lập điểm bắt đầu \(x_0\), giá trị ban đầu \(y_0\), điểm kết thúc \(x_n\), rồi chọn số khoảng chia đều \(n\). Càng nhiều khoảng chia thì độ chính xác càng cao, vì sai số toàn cục của RK4 giảm theo bậc \(h^4\).
Giải thích công thức
Khoảng được chia thành \(n\) bước bằng nhau với độ rộng \(h = (x_n - x_0)/n\). Tại mỗi bước, RK4 lấy mẫu độ dốc bốn lần: một lần ở đầu \((k_1)\), hai lần ở điểm giữa \((k_2, k_3)\), và một lần ở cuối \((k_4)\). Giá trị tiếp theo là trung bình có trọng số:
$$y_{n+1} = y_n + \frac{k_1 + 2k_2 + 2k_3 + k_4}{6}$$Cách này triệt tiêu các thành phần sai số tới bậc bốn, cho sai số cắt cụt cục bộ là \(O(h^5)\) và sai số toàn cục là \(O(h^4)\).
Ví dụ minh họa
Giải \(y' = 1 - y^2\) với \(x_0 = 0\), \(y_0 = 0\), \(x_n = 1\) và \(n = 10\) (\(h = 0.1\)). Nghiệm chính xác là \(y = \tanh(x)\). Bước RK4 đầu tiên cho \(y_1 = 0.0996679\), khớp với \(\tanh(0.1) = 0.0996680\). Sau cả mười bước, \(y(1) = 0.7615942\), khớp với \(\tanh(1) = 0.7615942\) đến bảy chữ số.
Câu hỏi thường gặp
Vì sao RK4 tốt hơn phương pháp Euler? Euler chỉ dùng một độ dốc mỗi bước (sai số \(O(h)\)). RK4 dùng bốn độ dốc và lấy trung bình, đạt độ chính xác \(O(h^4)\) với cùng kích thước bước, nên cần ít bước hơn nhiều để đạt độ chính xác mong muốn.
Nên chọn bao nhiêu bước? Hãy bắt đầu với 50. Nếu nghiệm trơn, con số này thường là quá đủ; với các bài toán biến thiên nhanh hoặc gần cứng (near-stiff), hãy tăng lên 100, 200 hoặc 500.
Nếu kết quả ra NaN hoặc Infinity thì sao? Có thể nghiệm đã phân kỳ, hoặc \(F(x,y)\) gặp phép toán không hợp lệ (như log của số âm hay chia cho 0). Hãy kiểm tra lại biểu thức và thử với khoảng nhỏ hơn hoặc nhiều bước hơn.