Dùng sóng tiến - sóng lùi giải nghiệm phương trình truyền sóng

Trong bài trước

http://mim.hus.vnu.edu.vn/vi/content/t%E1%BA%A1o-%E1%BA%A3nh-%C4%91%E1%B...

tôi đã trình bày cách giải bài toán biên hỗn hợp cho phương trình truyền sóng nhờ chuỗi Fourier (phương pháp tách biến). Dưới đây tôi sẽ trình bày cách giải bằng sóng tiến - sóng lùi. Để cụ thể ta sẽ giải bài 1 trong đề thi cuối kỳ cho lớp K59TN

https://bomongiaitich.files.wordpress.com/2017/01/cuoikyk59tn.pdf

Ta bắt đầu bằng việc nhập các dữ liệu

> c := 1:  # toc do lan truyen
> L := Pi: # chieu dai soi day 
> f := proc (x) options operator, arrow; 0 end proc: # trang thai ban dau

> g := proc (x) options operator, arrow; piecewise(0 <= x and x < (1/2)*L, 0, (1/2)*L <= x and x <= L, 1) end proc: # van toc ban dau

Hình ảnh điều kiện ban đầu

Điều kiện ban đầu

Do điều kiện biên đã cho là điều kiện hai đầu tự do nên ta thác triển chẵn, tuần hoàn chu kỳ $2L$ các điều kiện ban đầu:

> f1 := proc (x) options operator, arrow; piecewise(0 < x and x < L, f(x), L < x and x < 2*L, f(2*L-x)) end proc: f2(x):=f1(x-2*L*floor(x/(2*L))):  

> g1 := proc (x) options operator, arrow; piecewise(0 < x and x < L, g(x), L < x and x < 2*L, g(2*L-x)) end proc: g2(x):=g1(x-2*L*floor(x/(2*L))):

Hình ảnh sau thác triển của điều kiện ban đầu

Thác triển điều kiện ban đầu

Tiếp đến tính nguyên hàm của vận tốc ban đầu:

> proc (x) options operator, arrow; (int(g1(y), y = 0 .. x))/c end proc: h1(x):=h(x-floor(x/(2 L))*2 L)+floor(x/(2 L))*h(2 L):

Hình ảnh nguyên hàm

Nguyên hàm vận tốc ban đầu

Tạo sóng tiến, sóng lùi

> F(x):=f2(x)-h1(x); G(x):=f2(x)+h1(x); plot([F(x), G(x)], x=-5*L..5*L, color=[red, blue], thickness=3)

Hình ảnh sóng tiến, sóng lùi:

Sóng tiến -Sóng lùi

Hình ảnh của nghiệm

> animate(plot, [[F(-c*t+x), G(c*t+x), (F(-c*t+x)+G(c*t+x))*(1/2)], x = 0 .. L], t = 0 .. 3*L, color = [red, blue, green], thickness = 3);

> plot3d((F(-c*t+x)+G(c*t+x))*(1/2), x = 0 .. L, t = 0 .. 3*L);

Nghiệm tĩnh  Nghiệm động

 

 

 

Tags: 
PDEs
Maple