1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo bài tập lớn môn phương pháp tính

16 3 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

Thông tin cơ bản

Tiêu đề Báo cáo bài tập lớn môn phương pháp tính
Tác giả Nguyễn Diệp Phúc Bình, Nguyễn Duy Phúc
Người hướng dẫn GVHD: Đặng Văn Vinh
Trường học Đại học quốc gia thành phố Hồ Chí Minh
Chuyên ngành Phương pháp tính
Thể loại báo cáo
Năm xuất bản Học kỳ 222
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 16
Dung lượng 3,39 MB

Nội dung

BTL phương pháp tính 1/ Trình bày phương pháp số giải phương trình sóng 2 chiều 2D wave equation.. Trình bày ví dụ thực tế để minh họa cho phương pháp.. 2/ Viết chương trình để giải quyế

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG

ĐẠI HỌC BÁCH KHOA

-Báo cáo Bài tập lớn môn phương pháp tính

GVHD: Đặng Văn Vinh Lớp AN01 Sinh viên thực hiện:

1 Nguyễn Diệp Phúc Bình

2 Nguyễn Duy Phúc

Học kỳ 222

1

Trang 2

BTL phương pháp tính

1/ Trình bày phương pháp số giải phương trình sóng 2 chiều (2D wave equation) Nêu các bước giải quyết bài toán Trình bày ví dụ thực tế để minh họa cho phương pháp

2/ Viết chương trình để giải quyết bài toán

I) Trình bày phương pháp số giải phương trình sóng 2 chiều (2D wave equation)

-Định nghĩa: Phương trình sóng 2 chiều ( 2 Wave equation )

Phương trình sóng (hai chiều) là phương trình đạo hàm riêng tuyến tính cấp hai để

mô tả sóng hoặc trường sóng dừng

: phươn trình sóng với n chiều

: phươn trình sóng 2 chiều

c là hằng số tốc độ truyền sóng \

u yếu tố đại diện cho sự dịch chuyển khỏi trạng thái nghỉ

T : thời gian

* Nó có thể viết gọn hơn ở dạng

: đạo hàm riêng

Hay : toán tử laplace ( vi phân bậc 2 )

Hay có thế viết dưới dạng

VD: sóng cơ học ( sóng nước, sóng âm thanh và sóng địa chấn) hoặc sóng điện từ

Trang 3

-PP1: Phương pháp tách biến + nguyên lí chồng chất để xây dựng một giải pháp chuỗi

=> tìm ra nghiệm chính xác phức tạp

-PP2 ( pp số ): phương pháp sử dụng sai phân hữu hạn để tính xấp xỉ kết quả cần tìm

=> đơn giản, ngắn gọn hơn <> không chính xác bằng pp1

Các bước giải

- Khai triển taylor đến cấp 2

Với

(1)

Với

(2)

Từ (1) và (2) ta có

0

0

2 ''

'

2

f x h f x f x h

f x

h

f x h f x h

f x

h





2) Áp dụng vào giải phương trình sóng 2 chiều

- Chúng ta cần phải rời rạc hóa vấn đề Miền mô phỏng của chúng tôi sẽ là một lưới Chúng ta cần hai chiều không gian( Ox và Oy) và một chiều thời gian(t) Đối với chiều thời gian, chúng ta chỉ quan tâm đến bước thời gian hiện tại() và hai bước thời gian trước đó(và )

- Xét miền D hình chữ nhật [a,b]

- Ta có điều kiện biên

+

3

Trang 4

+

- Ta chia trục Ox thành n+1 các điểm x i i, 0,n

với bước nhảy Δx xi 1 x ih

tương

tự như vậy với Oy có n+1 điểm y j j, 0,n

, với bước nhảyΔyy i 1 y ih

và t có n+1 chỉ số thời gian t k k, 0,n, với bước nhảy Δt ti 1 t i

- Các nút của lưới có khoảng cách không gian ( dx và dy), sự khác biệt giữa hai ℎ bước tính toán là => Mỗi nút lưới đại diện cho một giá trị gần đúng của trườngt

Trang 5

( Thời gian 0 => 1 => 2 )

Ta định nghĩa k,  , , 

i j i j k

uu x y t

Sử dụng sai phân hữu hạn ở trên ta có

 

2 ,

2

Δ

k i j i j i j

i j

u     

i j i j i j i j i j i j i j i j i j i j i j

xx yy

u u

h

- Mà nên

2

c t

h

=> vòng lặp được thực hiện, giải với điều kiện ban đầu và điều kiện biên

5

Trang 6

+ (1)

+ và (3)

Trong đó f g, là các hàm cho trước

Trang 7

Từ các điều kiện (1) và (2) ta có

0, ,

0, ,

j a j

i i b



Với điều kiện (3):

,

u x yf x yuf x yi j

+ Từ u x y t , ,0g x y, 

sử dụng biến đổi ở trên ta có

,

2

i j i j

h u

Từ đây ta sẽ lặp để giải bài toán theo các tầng thời gian thời gian như sau:

Với t t 0ta đã xác định được

 

0 ,

,

0 , , 0

i j i i

u f x y



 có nghĩa là ta đã xác định được 0

i j

ui j

Từ công thức lặp (*) thế k 0ta có

7

Trang 8

   

2

2

Δ

Δ

4 2

c t

h

c t

h

c t

h

,

2hg x y i, j 2u i j

Với các điều kiện biên ta có

uuuu

Vậy ta đã xác định được u1i j, , 0  i j n, 

Bắt đầu từ 1  k n 1, sử dụng vòng lặp

2

Δ

c t

h

Ta lại có 0,k1 k,01 a,k1 k,b1 0

u u u u 

Như vậy ta sẽ xác định được ,1

k

i j

u , với 1   k n 1 và 0i j n,  Như vậy ta đã xác định được u k i j, với 0i j k n, , 

II)Bài toán thử:

Tìm nghiệm của phương trình u ttu xxu yy

, với :0x y, 10và 0  t 10

Với các điều kiện ban đầu:

0, , t 10, , 0

0, , sin sin , ,0 0

t

u x t u x t

u x y

Trang 9

Ta sẽ xây dựng code với matlab để giải bài toán

Giải thuật:

Ta sẽ chia miền x y, thành 100 điểm với

10 99

dx dy h  

Ta chọn dt 0.01, chia thành 1000 thời điểm

Ta xác định được

 

g x y

Với các điều kiện ban đầu ta có

 Với t t 0

   

0

,

sin sin

0

i j





 Với t t 1

2

uu u u  u   uu

, với 1 i j,  99

uuuu

 Với 1 t k 999ta sẽ có

,với 1i j, 99

u u u u 

, với 1i j, 100

9

Trang 10

Code matlab:

% Parameters

Lx = 10; % Length in x-direction

Ly = 10; % Length in y-direction

Nx = 100; % Number of points in x-direction

Ny = 100; % Number of points in y-direction

dx = Lx / (Nx - 1); % Step size in x-direction

dy = Ly / (Ny - 1); % Step size in y-direction

c = 1; % Wave speed

dt = 0.01; % Time step

T = 10; % Total simulation time

Nt = T / dt; % Number of time steps

% Discretized domain

x = linspace(0, Lx, Nx);

y = linspace(0, Ly, Ny);

[X, Y] = meshgrid(x, y);

% Initial conditions

u0 = sin(pi * X) * sin(pi * Y); % Initial displacement

v0 = zeros(Nx, Ny); % Initial velocity

% Initialization

u_old = u0;

u_new = zeros(Nx, Ny);

u = u0;

u(2:Nx-1, 2:Ny-1) = u(2:Nx-1, 2:Ny-1) + dt * v0(2:Nx-1, 2:Ny-1) + 0.5 * c^2 * dt^2 * (

(u0(1:Nx-2, 2:Ny-1) - 2 * u0(2:Nx-1, 2:Ny-1) + u0(3:Nx, 2:Ny-1)) / dx^2 +

(u0(2:Nx-1, 1:Ny-2) - 2 * u0(2:Nx-1, 2:Ny-1) + u0(2:Nx-1, 3:Ny)) / dy^2);

% Time-stepping loop

for t = 1:Nt

% Update interior points using finite difference approximation

u_new(2:Nx-1, 2:Ny-1) = 2 * u(2:Nx-1, 2:Ny-1) - u_old(2:Nx-1, 2:Ny-1) +

c^2 * dt^2 * ((u(1:Nx-2, 2:Ny-1) - 2 * u(2:Nx-1, 2:Ny-1) + u(3:Nx, 2:Ny-1)) / dx^2 +

(u(2:Nx-1, 1:Ny-2) - 2 * u(2:Nx-1, 2:Ny-1) + u(2:Nx-1, 3:Ny)) / dy^2);

% Update boundary conditions (if necessary)

% Update solution arrays

u_old = u;

u = u_new;

disp(u)

% Visualization

Trang 11

title([ 'Wave at time t = ' , num2str(t * dt)]);

xlabel( 'x' );

ylabel( 'y' );

zlabel( 'u(x, y, t)' );

drawnow;

end

end

Vì số giá trị nhiều nên kết quả sẽ hiển thị với dạng đồ thị

Kết quả:

Đồ thị tại t 10

Một số giá trị t

11

Trang 12

*Một số ứng dụng thực tế nữa về việc ứng dụng phương pháp xấp xỉ tuyến tính để giải phương trình sóng 2 chiều

- Sóng do động đất gây nên:

- Quan sát chuyển động của sóng nước

Trang 13

III/ Sự lan truyền sóng thần

13

Trang 14

Trong thực tế, các loại sóng như sóng động đất, sóng thần,… thường không có một tốc độ truyền cố định tức là c không còn là hằng số

Vì vậy phương trình của sóng của nó sẽ biến đổi để phù hợp với các điều kiện thực

tế và ta sẽ có phương trình như sau:

H x y t H x y t

Phương trình trên là phương trình đơn giản nhất của sóng thần

Trong đó H x y t , ,biểu diễn độ sâu của nước

Đối với sóng động đất hay sóng truyền khi núi lửa phun thì ta sẽ xấp xỉ HH x y , 

do độ sâu ta sẽ cố định tại mặt nước biển

Và phương trình sẽ đơn giản hơn:

2

Với các điều kiện ban đầu như bài toán sóng 2 chiều ở trên

Giải phương trình:

Ta sẽ định nghĩa: j  , 

i j

HH x y

Ta sử dụng công thức Euler để giải đơn giản hơn phương pháp sai phân hữu hạn:

1

           

Trong đó

1 1

i i

i j i j j

x x

u

  

   

Trang 15

Bây giờ ta sẽ định nghĩa Hi1

:

Ta có 3 cách định nghĩa sau:

2

2

2

1

2

2

i

i

i i

i

Ta có thể chọn 1 trong 3 cách trên

Trong bài này ta sẽ sử dụng cách 1,

Và ta cũng sẽ có 1  1 

2

H   H  H

Từ những biến đổi ở trên thay vào phương trình ban đầu ta được

 

1

1

2

2

2

i j i j i j

h t

h

1

,

2

, , , , , 1 , , , 1 , ,

k

i j

u

Ở đây bổ sung một số điều kiện liên quan tới giá trị ban đầu của H jta sẽ giải được

bài toán với phương pháp lặp như trên

IV) Tài liệu tham khảo

fbclid=IwAR28WMclyE07flkOvcRuaT79hQG7EVlSTdJ_L1rZOrWx7pcrd

15

Trang 16

8iezxvyqRY => phương pháp giải phương trình sóng 2D bằng phương pháp xấp xỉ

http://hplgit.github.io/num-methods-for-PDEs/doc/pub/wave/sphinx/._main_wave005.html?

fbclid=IwAR3FmmT3l80Z5o13YD5vptOmG7oGKYtqSp2iqtRdd1SwUSmt

pháp xấp xỉ

http://hplgit.github.io/INF5620/doc/pub/sphinx-

phương pháp giải phương trình sóng 2 chiều bằng phương pháp xấp xỉ

5 Slide môn Phương pháp tính- Thầy Đăng Văn Vinh

Ngày đăng: 11/12/2024, 10:19

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

TÀI LIỆU LIÊN QUAN

w