Nghiệm hội tụ khi ta cố định giá trị củanT nhưng thay đổi giá trị củanx.Chúng ta cũng thấyrằng nếu chọnnx ≥nT thì đồ thị sẽ không còn đúng dạng nữa. rằng nếu chọnnx ≥nT thì đồ thị sẽ không còn đúng dạng nữa.
Chúng ta đã tính được sai số giữa nghiệm chính xác và nghiệm gần đúng bởi các giá trị khácnhau củanx. Điều này chứng tỏ rằng bậc hội tụ là1.Thông qua bảng hội tụ, ta đã vẽ được đồ nhau củanx. Điều này chứng tỏ rằng bậc hội tụ là1.Thông qua bảng hội tụ, ta đã vẽ được đồ thị để so sánh các giá trị của nghiệm chính xác và nghiệm gần đúng trên cùng một hệ trục tọa độ. Cuối cùng, ta cũng đã thể hiện được đồ thị của hàm số đã chọn trong không gian ba chiều. Lý thuyết về bài toán dạng hyperbolic có nhiều mô hình từ đơn giản đến phức tạp trong Toán học, chẳng hạn như phương trình đối lưu, Lax, Upwind, Lax-Wendroff, phương trình Navier- Stokes. Thêm nữa, bài toán này trong những năm gần đây cũng được nghiên cứu và phát triển phục vụ cho khoa học và kỹ thuật.
Phương trình sóng có nhiều ứng dụng trong vật lý như các sóng của chuỗi, sóng giật trong khôngkhí, sóng cơ học lượng tử, các mô hình âm thanh của sóng địa chấn, sóng âm trong chất lỏng và khí, sóng cơ học lượng tử, các mô hình âm thanh của sóng địa chấn, sóng âm trong chất lỏng và gas, v.v.
3. Lập trình MATLAB dạng Hyperbolic
function hyperfdm_sol(L,T,nT,nx)
% Matlab Program : Hyperbolic problems: %Wave equation: u_xx=u_tt
%where u(x,0)=sin(pi*x). Use the explicit method.
%The exact solution: u_exact=(1/2)*(sin(2*pi*(x+t))+sin(2*pi*(x-t))) %L = 1.; % Length of the wire
%T = 1; % Final time
% Choose nT= 200. Number of time steps dt = T/nT;
% Choose nx= 4,8,... Number of space steps dx = L/nx;
rho = dt^2/(dx^2); % Stability parameter rho <= 1 when nx <= nT. % Initial temperature of the wire
% initilalize u u = zeros(nx+1,nT+1); u3 = zeros(nx+1,nT+1); x = zeros(nx+1,1); time = zeros(nT+1,1); for i = 1:nx+1 x(i) = (i-1)*dx; u(i,1) = f0(x(i)); end
%Temperature at the boundary (t=0)
for k =1:nT+1 u(1,k) = 0.; u(nx+1,k) = 0.; time(k) = (k-1)*dt;
end
%Implementation of the exact solution
for k=1:nT+1
for i = 1:nx+1
u3(i,k) = u_exact(x(i),time(k));
end end
%Implementation of the explicit method
for i = 2:nx %k=2, the first time step
u(i,2) = (1/2)*rho*(f0(x(i+1))+f0(x(i-1)))+(1-rho)*f0(x(i));
end
% The second time step
for k = 3:nT+1 % Time Loop
for i = 2:nx % Space Loop
u(i,k) = rho*u(i+1,k-1)+2*(1-rho)*u(i,k-1)+ rho*u(i-1,k-1)-u(i,k-2);
end end
disp(error2);
figure hold on
%The graphic of the exact solution in 2D
plot(x,u3(:,1),’-r’,’MarkerFaceColor’,’r’) %The graphic of the explicit method in 2D
plot(x,u(:,1),’*b’,’MarkerFaceColor’,’b’)
xlabel(’x’)
ylabel(’temperature’)
legend({’Exact solutions’ ’Finite difference method’},’location’,’NE’);
title(’The comparison of the finite difference method and the exact solutions for h = 1/64, at T=1’)
hold off
%The graphic of the explicit method in 3D
figure
mesh(x,time,u’)
title(’The the finite difference method for h = 1/32,at T=1’)
xlabel(’x’)
ylabel(’time’)
zlabel(’Temperature’)
%The graphic of the exact solution in 3D
figure
mesh(x,time,u3’)
title(’The exact solutions for h=1/32,at T=1’)
xlabel(’x’)
ylabel(’time’)
zlabel(’Temperature’)