1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO BÀI TẬP LỚN MÔN GIẢI TÍCH 1 ĐỀ TÀI PHƯƠNG PHÁP SỐ EULER GIẢI PHƯƠNG TRÌNH VI PHÂN CẤP 1

21 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA KHOA HỌC ỨNG DỤNG – BỘ MÔN TOÁN ỨNG DỤNG

Giảng viên hướng dẫn: TS Đặng Văn VinhLớp: L13

Nhóm: 8

Thành phố Hồ Chí Minh, tháng 12 năm 2023

Trang 2

MỤC LỤC

DANH MỤC BẢNG BIỂU VÀ HÌNH ẢNH i

I MỞ ĐẦU 1

II CƠ SỞ LÝ THUYẾT 2

1 PHƯƠNG TRÌNH VI PHÂN THƯỜNG 2

2.2 Sai số trong phương pháp Euler 6

2.3 Phương pháp Euler trong phương trình vi phân thường 6

2.4 Một số bài toán tìm nghiệm gần đúng với phương pháp xấp xỉ Euler trong phương trình vi phân cấp 1 7

Trang 3

x+ 2 y, y (0 )=2 v ớ ih=0,2 ;h=0,1 và giá trịnghiệm chính xác 9Hình 4.1: Đồ thị minh họa phương pháp Euler ứng với khoảng chia h=1 12Hình 4.2: Đồ thị minh họa phương pháp Euler ứng với khoảng chia h=5 12

Trang 4

I MỞ ĐẦU

Trang 5

II CƠ SỞ LÝ THUYẾT

1 PHƯƠNG TRÌNH VI PHÂN THƯỜNG1.1 Định nghĩa

Một phương trình vi phân thường có dạng tổng quát:

Trang 6

φ ( y ) dy=f ( x )dx h ay f1( x) g1( y )dx =f2( x ) g2( y ) dy

⇔ f2(x) g1(y )=0 h ayf1( x )f2(x )dx=

g1( y )

g2(y )dy⇔ f2(x) g1(y )=0 h ayf1( x )

x⇒ y=ux⇒ dy=udx +xdu thành

udx + xdu=f (u) dx

⇔ xdu=¿f (u )−u∨dx

⇔ x|f (u )−u|=0 h ay du

f (u)−u=dx

Trang 7

Phương pháp số Euler là một phương pháp toán học cơ bản và mạnh mẽ được sử dụng để giải các phương trình vi phân Phương trình vi phân là một công cụ quan trọng trong nhiều lĩnh vực khoa học và kỹ thuật, từ vật lý đến kinh tế, sinh học, và nhiều lĩnh vực khác Giải phương trình vi phân giúp chúng ta hiểu sự biến đổi và tương tác của các hệ thống theo thời gian.

Tuy nhiên, việc giải phương trình vi phân một cách chính xác có thể làmột thách thức, đặc biệt là đối với các phương trình phức tạp và không thể giải phân tích Phương pháp số Euler là một cách tiếp cận đơn giản và hiệu

Trang 8

quả để tiếp cận vấn đề này bằng cách sử dụng xấp xỉ để đơn giản hóa quá trình giải.

Phương pháp số Euler là một phương pháp giải phương trình vi phân bằng cách tận dụng xấp xỉ tuyến tính Phương pháp này đơn giản và dễ hiểu, và nó thường được sử dụng để giải các vấn đề giải tích số cơ bản

2.1.2 Công thức của phương pháp Euler:

{dydx=f ( x , y )y(x0)=y0

Vấn đề được đặt ra của bài toán là tìm gần đúng hàm nghiệm y(x) tại một số điểm x1, x2, x3, , tức là tính các giá trị xấp xỉ y1, y2, y3, (giá trị chính xác là y(x1), y(x2), y (x3), tại các điểm x1, x2, x3,, )

Nếu các điểm chiaxn,n=0,1,2, càng nhiều thì ta càng có kết quả gần đúng của hàm nghiệm y(x)

Xét trường hợp các bước cách đều, tức là xn+1xn=h ,n=0,1, 2, Từ khai triển Taylor, giữ lại hai số hạng đầu ta có:

Trang 10

x 0 0,5 1 1,5 2 2,5Giá trị xấp xỉ y 1,000

Bảng 2.1.2: Các giá trị xấp xỉ y tương ứng với h=0,5

2.2 Sai số trong phương pháp Euler

Sai số cắt cụt cục bộ của phương pháp Euler là sai số trong một bước

duy nhất Đó là sự khác biệt giữa lời giải số sau một bước,y1 , và lời giải

chính xác tại thời điểm t1 = t0 + h Lời giải số được cho bởi

y1 = y0 + hf (t0,y0).

Đối với lời giải chính xác, chúng ta sử dụng mở rộng Taylor được đề cập trong phần Nguồn gốc phía trên:

y(t0 + h) = y(t0) + hy’(t0) + 12 h2y”(t0) + O(h3).

Sai số cắt cụt cục bộ (LTE) của phương pháp Euler được cho bởi sự khác biệt giữa các phương trình này:

LTE = y(t0 + h) - y1 = 12 h2y”(t0) + O(h3).

Kết quả này là hợp lý nếu y có một đạo hàm bậc ba bị chặn (bounded).Điều này cho thấy rằng đối với h nhỏ, các sai số cắt cụt cục bộ xấp xỉ tỷ lệ thuận với h2 do đó làm cho phương pháp Euler kém chính xác (đối

với h nhỏ) hơn so với các phương pháp bậc cao khác như các phương

pháp Runge-Kutta và các phương pháp đa bước tuyến tính, mà sai số cắtcụt cục bộ tỷ lệ thuận với một số mũ cao hơn của kích thước bước.

Một cách xây dựng công thức hơi khác cho sai số cắt cụt cục bộ là sử dụng dạng thức Lagrange cho số hạng còn lại trong định lý Taylor

Nếu y có đạo hàm bậc hai liên tục, thì tồn tại một

ξ Є [tt0, t0 + h] mà

LTE = y(t0 + h) - y1 = 12 h2y”(ξ)

Trang 11

Trong các biểu thức sai số trên, đạo hàm bậc hai của lời giải chính xác

chưa biết y có thể được thay thế bằng một biểu thức ở phía bên phải của

phương trình vi phân Thật vậy, từ phương trình

y’ = f(t,y) ta có

y”(t0) = ∂ f∂ t (t0, y(t0)) + ∂ y∂ f (t0, y(t0)) f(t0, y(t0))

Sai số cắt cụt tổng thể là sai số tại một thời điểm cố định t, sau nhiều

bước nhiều phương pháp cần phải thực hiện để đạt được thời điểm đó từthời điểm ban đầu Sai số cắt cụt tổng thể là tích lũy của các sai số cắt cụt cục bộ đã phạm phải trong mỗi bước trước đó Số lượng các bước

được dễ dàng xác định là (t-t0)/h, tỷ lệ thuận với 1/h, và sai số đã phạm

phải trong mỗi bước tỷ lệ thuận với h2 (xem phần trước) Vì vậy, mong

đợi rằng sai số cắt cụt tổng thể sẽ tỷ lệ thuận với h

Lý luận trực quan này có thể được chứng minh là chính xác Nếu lời

giải y có đạo hàm bậc hai bị chặn (bounded) và f là Lipschitz liên tục

trong đối số thứ hai của nó, thì sai số cắt cụt tổng thể (GTE) được bao (bounded) bởi:

|GTE| ≤ hM2 L (eL(t-t0)- 1)

trong đó M là một giới hạn trên cho đạo hàm bậc hai của y trên khoảngthời gian nhất định nào đó và L là hằng số Lipschitz của f.

Dạng thức chính xác của giới hạn này ít quan trọng trong thực tế, trong hầu hết các trường hợp, giới hạn này quá lớn so với sai số thực sự phạm phải bởi phương pháp Euler Điều quan trọng là nó cho thấy rằng sai số cắt cụt tổng thể (một cách gần đúng) tỷ lệ thuận với Vì lý do này, phương pháp Euler được cho gọi là bậc nhất.

Các sai số làm tròn: Thảo luận từ trên đến giờ đã bỏ qua những hậu

quả của sai số làm tròn Trong bước n của phương pháp Euler, sai số làmtròn là xấp xỉ độ lớn εyn trong đó ε là Machine epsilon (giới hạn trên của sai số tương đối do làm tròn trong số học điểm nổi) Giả sử rằng các sai số làm tròn tất cả có kích thước xấp xỉ như nhau, sai số làm tròn tổng

hợp trong N bước là xấp xỉ Nεy0 nếu tất cả các sai số chỉ về cùng hướng

Bởi vì số lượng bước tỉ lệ nghịch với kích thước bước h, tổng sai số làm tròn tỷ lệ thuận với ε / h Trong thực tế, tuy nhiên, vô cùng khó xảy ra

Trang 12

trường hợp tất cả các sai số làm tròn chỉ về cùng một hướng Nếu thay vào đó giả định rằng các sai số làm tròn là các biến làm tròn độc lập, thì

tổng sai số làm tròn tỷ lệ thuận với ε/ √ h.

Vì vậy, đối với những giá trị kích thước bước cực nhỏ, sai số cắt cụt sẽ nhỏ nhưng tác động của sai số làm tròn có thể lớn Hầu hết các tác độngcủa sai số làm tròn có thể dễ dàng tránh được nếu phép tổng đền bù (compensated summation) được sử dụng trong việc xây dựng công thức cho phương pháp Euler.

2.3 Phương pháp Euler trong phương trình vi phân thường

Mở đầu nhiều bài toán khoa học kỹ thuật chủ đạo là (hệ) phương trình vi phân và điều kiện ban đầu Nghiệm đúng của chúng thường chỉ áp dụng cho một số lớp bài toán rất hạn chế, đa số các bài toán là phải tìm nghiệm gần đúng Trong phương pháp số có phương pháp Euler - là phương pháp một bước tính nghiệm gần đúng yn+ 1 thông qua yn với f(xn, yn) thường được dùng để giải các bài toán về phương trình vi phân cấp 1 và hệ phương trình vi phân thường Bây giờ chúng ta sẽ tìm hiếu cách giải các bài toán đó

Xét bài toán:

{dydx=f ( x , y )y(x0)=y0

Trang 13

Áp dụng phương pháp Euler với bước lặp h, ta có công thức:

yn+ 1=yn+h f (tn, yn)

để tính các nghiệm xấp xỉ trong khoảng [a , b]

2.4 Một số bài toán tìm nghiệm gần đúng với phương pháp xấp xỉEuler trong phương trình vi phân cấp 1

Ví dụ 2.4.1: Tìm nghiệm xấp xỉ của phương trình vi phân sau bằng

phương pháp Euler y'=y −2 x

y, 0 ≤ x ≤1với điều kiện ban đầu y (0)=1 và

chia đoạn [0;1] thành 10 đoạn bằng nhau Hãy so sánh kết quả nghiệm gần đúng (lấy 4 chữ số thập phân)

Ta tìm được nghiệm chính xác của bài toán trên là : y (x )=2 x +1

Trang 14

y, y (0 )=1 với h=0,1 và giá trị nghiệm chính xác

Ví dụ 2.4.2: Dùng pp Euler để tìm nghiệm gần đúng của phương trình

vi phân y'

=2 x + y−4

x+ 2 y, y (0 )=2.Với h=0,2 và h=0,1 trên đoạn[0 ;1,2]

Trang 15

So sánh kết quả nghiệm gần đúng

Giải phương trình vi phân ta được nghiệm:

y +4

31−

Trang 17

III MATLAB

1 Tổng quan về Matlab

Matlab (viết tắt của matrix laborary) là một ngôn ngữ lập trình bậc cao bốn thế hệ, môi trường để tính toán số học, trực quan và lập trình Được phát triển bởi MathWorks.

Matlab cho phép thao tác với ma trận, vẽ biểu đồ với hàm và số liệu, hiện thực thuật toán, tạo ra giao diện người dùng, bao gồm C,C++, Java và Fortran; phân tích dữ liệu, phát triển thuật toán, tạo các kiểu mẫu và ứng dụng.

Matlab có rất nhiều lệnh và hàm toán học nhằm hỗ trợ đắc lực cho bạn trong việc tính toán, vẽ các hình vẽ, biểu đồ thông dụng và thực thi các

phương pháp tính toán.

2 Code Matlab giải bài toán thực tế

Đề: Kích thước một quần thể P (t)=P0 ekt theo thời gian t được mô hình bởi phương trình vi phân dPdt =kP (t ) với điều kiện P (0)=1000 ;

k =0,02 ;t=[0 ;100](đơn vị thời gian) Hãy biễu diễn và so sánh đồ thị P(t) bằng phương pháp số Euler và hàm số thông thường.

Đoạn code hoàn chỉnh:

% Thông số mô hình

k = 0.02; % Hệ số tăng trưởng

P0 = 1000; % Số lượng dân số ban đầu

% Khoảng thời gian tspan = [0, 100]; % Khoảng thời gian từ 0 đến 100 đơn vịthời gian (năm, tháng, )

Trang 18

% Bước thời gian

h = input("Nhập bước thời gian: ");

% Phương trình vi phân tăng trưởng dân số f = @(t, P) k * P; % Giải phương trình vi phân bằng phương pháp số Euler [t, P_euler] = euler_method(f, P0, tspan, h);

% Tạo dữ liệu cho đường cong hàm số thông thường (exponential growth) t_normal = linspace(tspan(1), tspan(2), 1000);

P_normal = P0 * exp(k * (t_normal - tspan(1))); % Vẽ đồ thị

for i = 1:(length(t) - 1)

y(i + 1) = y(i) + h * f(t(i), y(i)); end

end

Trang 19

3 Các hàm dùng trong Matlab4 Kết quả và đồ thị

Hình 4.1: Đồ thị minh họa phương pháp Euler ứng với khoảng chia h=1

Trang 20

Hình 4.2: Đồ thị minh họa phương pháp Euler ứng với khoảng chia h=5

Trang 21

TÀI LIỆU THAM KHẢO

Nguyễn Thị Như Anh, L H (2015) Phương pháp xấp xỉ Euler trong phương trình vi phân thường.

Burden R.L Numerical Analysis, 7th edition.

Ngày đăng: 04/06/2024, 13:22

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w