Công Cụ Tính Phương Pháp Euler
Nhập dy/dx = f(x, y), một điểm ban đầu và một giá trị kết thúc, rồi nhận nghiệm xấp xỉ bằng phương pháp Euler, phương pháp Euler cải tiến (Heun) hoặc Runge–Kutta bậc bốn, kèm bảng từng bước đầy đủ gồm mọi độ dốc, sai số so với nghiệm đúng (hoặc một tham chiếu rất chính xác), điều xảy ra khi bước được chia đôi, và đồ thị trường độ dốc có vẽ nghiệm đè lên. Miễn phí, không cần đăng ký.
Dùng x cho biến độc lập và y cho ẩn số, với + − * / ^ và dấu ngoặc: x + y, x*y, y*(1 − y), sin(x) − y. Các hàm: sin, cos, tan, exp, ln, sqrt và nhiều hàm khác.
Nếu bạn biết nghiệm đúng, hãy nhập theo x để xem sai số thật; nếu không, một tham chiếu RK4 rất chính xác sẽ được dùng.
Kết quả
3,1874849
Xấp xỉ y(1)
3,4365637
Nghiệm đúng y(1)
-0,249
Sai số
0,1
Bước h
10
Số bước n
Phương pháp
yₙ₊₁ = yₙ + h·f(xₙ, yₙ): đi theo độ dốc ở đầu mỗi bước. Sai số toàn cục tỉ lệ với h.
Bảng từng bước
| n | xₙ | yₙ | k1 | Nghiệm đúng y(xₙ) | Sai số |
|---|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 1 | 0 |
| 1 | 0,1 | 1,1 | 1,2 | 1,1103418 | -0,0103 |
| 2 | 0,2 | 1,22 | 1,42 | 1,2428055 | -0,0228 |
| 3 | 0,3 | 1,362 | 1,662 | 1,3997176 | -0,0377 |
| 4 | 0,4 | 1,5282 | 1,9282 | 1,5836494 | -0,0554 |
| 5 | 0,5 | 1,72102 | 2,22102 | 1,7974425 | -0,0764 |
| 6 | 0,6 | 1,943122 | 2,543122 | 2,0442376 | -0,101 |
| 7 | 0,7 | 2,1974342 | 2,8974342 | 2,3275054 | -0,13 |
| 8 | 0,8 | 2,4871776 | 3,2871776 | 2,6510819 | -0,164 |
| 9 | 0,9 | 2,8158954 | 3,7158954 | 3,0192062 | -0,203 |
| 10 | 1 | 3,1874849 | 3,4365637 | -0,249 |
Ba phương pháp với cùng một bước
| Phương pháp | y tại điểm cuối | Sai số |
|---|---|---|
| Phương pháp Euler | 3,1874849 | -0,249 |
| Euler cải tiến (Heun) | 3,4281617 | -0,0084 |
| Runge–Kutta 4 | 3,4365595 | -0,00000417 |
Chia đôi bước (Phương pháp Euler)
| n | h | y tại điểm cuối | Sai số |
|---|---|---|---|
| 10 | 0,1 | 3,1874849 | -0,249 |
| 20 | 0,05 | 3,3065954 | -0,13 |
| 40 | 0,025 | 3,3701277 | -0,0664 |
| 80 | 0,0125 | 3,4029699 | -0,0336 |
Với phương pháp Euler, sai số gần như giảm một nửa khi h được chia đôi; với Heun, nó giảm còn một phần tư; với RK4, còn một phần mười sáu.
Đồ thị
- Nghiệm đúng
- Phương pháp Euler
Cách Sử Dụng Công Cụ Tính Phương Pháp Euler
- 1. Nhập phương trình. Viết vế phải của dy/dx = f(x, y) bằng x và y:
x + y,y*(1 - y),sin(x) - y. - 2. Nhập điều kiện ban đầu và điểm kết thúc. Nhập x₀, y₀ = y(x₀) và giá trị x cần giải đến. Điểm kết thúc có thể nằm bên trái x₀.
- 3. Chọn bước. Nhập bước h, hoặc chuyển sang số bước n. Nếu h không chia đều khoảng, công cụ sẽ tự điều chỉnh và cho bạn biết.
- 4. Chọn phương pháp và đọc bảng. Mỗi dòng liệt kê xₙ, yₙ và các độ dốc đã dùng. Nếu bạn biết nghiệm đúng, hãy nhập vào để xem sai số thật.
Ba Phương Pháp
| Phương pháp | Bước | Sai số toàn cục |
|---|---|---|
| Euler | yₙ₊₁ = yₙ + h·f(xₙ, yₙ) | tỉ lệ với h |
| Euler cải tiến (Heun) | yₙ₊₁ = yₙ + (h/2)(k₁ + k₂), với k₁ = f(xₙ, yₙ) và k₂ = f(xₙ + h, yₙ + h·k₁) | tỉ lệ với h² |
| Runge–Kutta 4 | yₙ₊₁ = yₙ + (h/6)(k₁ + 2k₂ + 2k₃ + k₄) | tỉ lệ với h⁴ |
Phương pháp Euler đi theo đường tiếp tuyến tại đầu mỗi bước. Phương pháp Heun lấy trung bình độ dốc ở đầu bước với độ dốc tại điểm cuối đã dự đoán, đó là lý do nó còn được gọi là quy tắc hình thang hiện. Runge–Kutta bậc 4 lấy mẫu độ dốc bốn lần mỗi bước và gán trọng số 1, 2, 2, 1. Đây là các phương pháp trong Numerical Analysis của Burden và Faires, chương 5.
Ví Dụ Minh Họa: y′ = x + y, y(0) = 1
Nghiệm đúng là y = 2eˣ − x − 1, nên y(1) = 2e − 2 ≈ 3,4365637. Với phương pháp Euler và h = 0,1, các bước đầu tiên là:
| n | xₙ | yₙ | độ dốc f(xₙ, yₙ) | nghiệm đúng y(xₙ) |
|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 1 |
| 1 | 0,1 | 1,1 | 1,2 | 1,1103418 |
| 2 | 0,2 | 1,22 | 1,42 | 1,2428055 |
| 3 | 0,3 | 1,362 | 1,662 | 1,3997176 |
Ví dụ, y₁ = 1 + 0,1 × (0 + 1) = 1,1 và y₂ = 1,1 + 0,1 × (0,1 + 1,1) = 1,22. Sau mười bước, phương pháp Euler đạt y(1) ≈ 3,1874849, sai số −0,2491: nó đánh giá thấp vì nghiệm đúng có dạng lồi và các đường tiếp tuyến nằm dưới nó.
| Số bước n (h) | Sai số Euler tại x = 1 | Sai số Heun | Sai số RK4 |
|---|---|---|---|
| 10 (0,1) | −0,2491 | −0,0084 | −0,0000042 |
| 20 (0,05) | −0,1300 | −0,0022 | −0,00000027 |
| 40 (0,025) | −0,0664 | −0,00056 | −0,000000017 |
| 80 (0,0125) | −0,0336 | −0,00014 | −0,0000000011 |
Mỗi lần chia đôi h, sai số Euler giảm khoảng một nửa, sai số Heun giảm còn một phần tư và sai số RK4 còn một phần mười sáu, đúng như bảng bậc hội tụ dự đoán. Để đạt sai số RK4 tại n = 10, phương pháp Euler cần vài trăm nghìn bước.
Đọc Trường Độ Dốc và Sai Số
Các đoạn ngắn trên đồ thị biểu diễn độ dốc f(x, y) tại một lưới điểm: nghiệm đúng là một đường cong tiếp xúc với các đoạn đó ở mọi nơi. Nghiệm số được vẽ dưới dạng đường gấp khúc đè lên trên; nếu bạn cung cấp nghiệm đúng, nó được vẽ bằng nét đứt bên cạnh. Khi không có nghiệm đúng, cột sai số so sánh với một giá trị tham chiếu từ RK4 dùng ít nhất 2.000 bước, chính xác hơn bất kỳ phương pháp nào bạn chọn ở đây. Một số phương trình bùng nổ sau thời gian hữu hạn, như y′ = y² với y(0) = 1 tại x = 1; bảng sẽ dừng ở điểm các giá trị trở nên vô hạn.
Câu Hỏi Thường Gặp
- Phương pháp Euler hoạt động như thế nào?
- Nó xây dựng nghiệm từng bước. Từ điểm (xₙ, yₙ), nó tính độ dốc f(xₙ, yₙ) từ phương trình vi phân rồi đi theo đường tiếp tuyến đó một khoảng ngang h, cho ra yₙ₊₁ = yₙ + h·f(xₙ, yₙ). Mỗi điểm mới là điểm xuất phát của bước tiếp theo.
- Phương pháp Euler chính xác đến mức nào?
- Sai số cục bộ mỗi bước tỉ lệ với h², nhưng các sai số tích lũy qua khoảng 1/h bước, nên sai số toàn cục tỉ lệ với h. Chia đôi bước làm sai số giảm còn một nửa. Đây là phương pháp tốt để học và kém để đạt độ chính xác cao.
- Phương pháp Euler cải tiến là gì?
- Phương pháp Euler cải tiến, hay phương pháp Heun, trước hết thực hiện một bước Euler để dự đoán điểm cuối của khoảng, rồi lấy trung bình độ dốc tại đó với độ dốc ở đầu bước. Hiệu chỉnh bậc hai này làm sai số toàn cục tỉ lệ với h² thay vì h, đổi lại mỗi bước phải tính độ dốc hai lần.
- Tôi chọn bước h như thế nào?
- Hãy dùng bảng chia đôi: giảm h cho đến khi đáp án không còn thay đổi ở các chữ số bạn quan tâm. Phương pháp Euler cần h nhỏ, nhưng RK4 đạt cùng độ chính xác với h lớn hơn nhiều. Phương trình cứng (có các thành phần phân rã nhanh) có thể buộc mọi phương pháp này phải dùng h nhỏ.
- Công cụ có giải được phương trình cấp hai hoặc hệ phương trình không?
- Không. Nó chỉ giải một phương trình cấp một dy/dx = f(x, y). Phương trình cấp hai có thể viết lại thành một hệ cấp một, nhưng công cụ này không xử lý hệ phương trình.
- Vì sao nghiệm dừng giữa chừng?
- Các giá trị đã trở nên vô hạn, điều này xảy ra khi nghiệm đúng bùng nổ sau thời gian hữu hạn hoặc khi bước quá lớn đối với một phương trình không ổn định. Bảng kết thúc ở dòng hữu hạn cuối cùng, và thông báo cho biết giá trị x gần nơi điều đó xảy ra.