Phương Pháp Euler Cải Tiến

Tổng hợp các bài viết thuộc chủ đề Phương Pháp Euler Cải Tiến xem nhiều nhất, được cập nhật mới nhất ngày 16/01/2021 trên website Planetefrancophonie.org. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung Phương Pháp Euler Cải Tiến để bạn nhận được thông tin nhanh chóng và chính xác nhất. Cho đến thời điểm hiện tại, chủ đề này đã đạt được 8.613 lượt xem.

Có 1 tin bài trong chủ đề【Phương Pháp Euler Cải Tiến】

【#1】Phương Pháp Tính_Chương 7: Giải Phương Trình Vi Phân

CHƯƠNG 7: GIẢI PHƯƠNG TRÌNH VI PHÂN §1. BÀI TOÁN CAUCHY Một phương trình vi phân cấp 1 có thể viết dưới dạng giải được y(=f(x,y) mà ta có thể tìm được hàm y từ đạo hàm của nó. Tồn tại vô số nghiệm thoả mãn phương trình trên. Mỗi nghiệm phụ thuộc vào một hằng số tuỳ ý. Khi cho trước giá trị ban đầu của y là yo tại giá trị đầu xo ta nhận được một nghiệm riêng của phương trình. Bài toán Cauchy (hay bài toán có điều kiện đầu) tóm lại như sau: cho x sao cho b ( x ( a, tìm y(x) thoả mãn điều kiện: (1) Người ta chứng minh rằng bài toán này có một nghiệm duy nhất nếu f thoả mãn điều kiện Lipschitz: với L là một hằng số dương. Người ta cũng chứng minh rằng nếu f(y ( đạo hàm của f theo y ) là liên tục và bị chặn thì f thoả mãn điều kiện Lipschitz. Một cách tổng quát hơn, người ta định nghĩa hệ phương trình bậc 1: Ta phải tìm nghiệm y1, y2,…, yn sao cho: với: Nếu phương trình vi phân có bậc cao hơn (n), nghiệm sẽ phụ thuộc vào n hằng số tuỳ ý. Để nhận được một nghiệm riêng, ta phải cho n điều kiện đầu. Bài toán sẽ có giá trị đầu nếu với giá trị xo đã cho ta cho y(xo), y((xo), y((xo),…. Một phương trình vi phân bậc n có thể đưa về thành một hệ phương trình vi phân cấp 1. Ví dụ nếu ta có phương trình vi phân cấp 2: Khi đặt u = y và v = y( ta nhận được hệ phương trình vi phân cấp 1: với điều kiện đầu: u(a) = ( và v(a) = ( Các phương pháp giải phương trình vi phân được trình bày trong chương này là các phương pháp rời rạc: đoạn thành n phần bởi các điểm chia: xo < x1 < x2 <…< xn = x Theo công thức khai triển Taylor một hàm lân cận xi ta có: Nếu (xi+1 – xi) khá bé thì ta có thể bỏ qua các số hạng (xi+1 – xi)2 và các số hạng bậc cao y(xi+1) = y(xi) + (xi+1- xi)y((xi) Trường hợp các mốc cách đều: (xi-1 – xi) = h = (x – xo)/ n thì ta nhận được công thức Euler đơn giản: yi+1 = yi + hf(xi, yi) (2) Về mặt hình học ta thấy (1) cho kết quả càng chính xác nếu bước h càng nhỏ. Để tăng độ chính xác ta có thể dùng công thức Euler cải tiến. Trước hết ta nhắc lại định lí Lagrange: giả sử f(x) là hàm liên tục trong ,y=x0; y=x=y,y,y=x,y+h,y=y,y với 10 điểm chia là: x y(Euler) y(Euler cải tiến) 0.0 0.00 0.00 0.1 0.00 0.01 0.2 0.01 0.02 0.3 0.03 0.05 0.4 0.06 0.09 0.5 0.11 0.15 0.6 0.17 0.22 0.7 0.25 0.31 0.8 0.34 0.42 0.9 0.46 0.56 1.0 0.59 0.71 §3. PHƯƠNG PHÁP RUNGE – KUTTA Xét bài toán Cauchy (1). Giả sử ta đã tìm được giá trị gần đúng yi của y(xi) và muốn tính yi+1 của y(xi+1). Trước hết ta viết công thức Taylor: (11) với c ((xi, xi+1) và: Ta viết lại (11) dưới dạng: (12) Ta đã kéo dài khai triển Taylor để kết quả chính xác hơn. Để tính y(i, y(i v.v. ta có thể dùng phương pháp Runge-Kutta bằng cách đặt: (13) trong đó: (14) và ta cần xác định các hệ số a, b,..; (, (, (,…; r1, r2,.. sao cho vế phải của (13) khác với vế phải của (12) một vô cùng bé cấp cao nhất có thể có đối với h. Khi dùng công thức Runge-Kutta bậc hai ta có: (15) và (16) Ta có: y((x) = f,y); printf(“Cho buoc tinh h = “); scanf(“%f”,&h); n=(int)((b-a)/h); printf(” x yn”); for (i=0;i<=n+1;i++) { x,y+h/2),(y+h/2),(y+h),(y=y,y[i]); } getch(); } Kết quả tính toán với f = x + y, h = 0.1, a = 0, b =1, yo = 1 là : x y 0.0 1.0000 0.1 1.1103 0.2 1.2427 0.3 1.3996 0.4 1.5834 0.5 1.7971 0.6 2.0440 0.7 2.3273 0.8 2.6508 0.9 3.0190 1.0 3.4362


Bạn đang xem chủ đề Phương Pháp Euler Cải Tiến trên website Planetefrancophonie.org. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất. Chúc bạn một ngày tốt lành!