20/10/2023

Trong nhiều lĩnh vực ứng dụng thông thường ta phải đối mặt với nhiệm vụ mô tả các số liệu nhận được ( đo được chẳng hạn) bằng hàm số giải tích. Có hai cách tiếp cận với vấn đề này Khi nội suy các số liệu được coi là chính xác và điều mong muốn là tìm cách mô tả những gì xảy ra giữa các điểm số liệu. Cách tiếp cận này được xét ở phần sau. Trong mục này sẽ xét phương pháp vẽ đường cong còn gọi là phương pháp hồi quy, tức là tìm một đường cong trơn nhẵn phù hợp tối đa ( khớp nhất ) với các dữ liệu nhưng không nhất thiết phải đi qua mọi điểm dữ liệu. Tiếp tục phần 3 của bài viết Hướng dẫn vẽ đường cong và nội suy bằng Matlab, ban biên tập xin gửi đến các bạn nội dung về nội suy bậc 2

2. Nội suy 1 chiều

Mời các bạn xem tại phần 2: Hướng dẫn Vẽ đường cong và Nội suy bằng Matlab phần 2

3. Nội suy 2 chiều

Nội suy hai chiều cũng dựa trên những tư tưởng cơ bản của nội suy một chiều. Tuy nhiên, như tên gọi đã nói lên, nội suy hai chiều nội suy hàm 2 biến z=f(x,y). Để minh hoạ cho chiều thêm vào này ta xét bài toán sau:
- Bắc mới nhận việc ở một phòng thí nghiệm nghiên cứu của Công ty bánh kẹo. Tại đây anh ta đang thử một công thức làm bánh sô-cô-la hạnh nhân bằng lò vi sóng. Để kiểm tra độ đồng đều của các mẻ thử, anh ta lấy hết bánh ra khi đã nướng xong và đo nhiệt độ bánh theo lưới đo 3 × 5 xung quanh chảo như hình dưới. Từ số liệu này Bắc muốn xác định sự phân bố nhiệt độ trên bề mặt chảo :

Chiều rộng chảo

82 81 80 82 84
79 63 61 65 81
84 84 82 85 86

Bắc dùng MatLab để giải quyết vấn đề.

%cắt chảo làm hai theo chiều sâu ngang qua toàn bộ chiều rộng 
width = 1:5; % chiều rộng chảo
depth = 1:3; % chiều sâu chảo
temps=[82 81 80 82 84; 79 63 61 65 81; 84 84 82 85 86];
wi = 1:0.2:5;% chọn độ phân giải cho chiều rộng chảo
d = 2 % tâm chảo
zl=interp2(width, depth, temps, wi,d);% nội suy tuyến tính
zc=interp2(width, depth, temps, wi,d,’cubic’);% nội suy lập phương 
plot(wi,zl,’−‘,wi,zc) % vẽ tuyến tính và lập phương 
xlabel('Chieu rong chao'), ylabel(' Nhiet do Xen-so ')
title(' Nhiet do tai do sau = 2')

Chương trình trên tạo ra đồ thị sau sau:

 

% cắt chảo làm hai theo chiều rộng ngang qua toàn bộ chiều sâu
width = 1:5; % chiều rộng chảo
depth = 1:3; % chiều sâu chảo
temps=[82 81 80 82 84; 79 63 61 65 81; 84 84 82 85 86]; 
di = 1:0.2:3;% chọn độ phân giải cho chiều sau chảo
w = 3 % tâm chảo
zl=interp2(width, depth, temps, w,di);% nội suy tuyến tính
zc=interp2(width, depth, temps, w,di,'cubic');% nội suy lập phương
plot(di,zl,'...',di,zc) % vẽ tuyến tính và lập phương
xlabel('Chieu sau chao'), ylabel(' Nhiet do Xen-so ')
title(' Nhiet do tai do rong = 3')

Chương trình này cho ra đồ thị sau:

width = 1:5; % chiều rộng chảo
depth = 1:3; % chiều sâu chảo
temps=[82 81 80 82 84; 79 63 61 65 81; 84 84 82 85 86];
di = 1:0.2:3;% chọn độ phân giải cho chiều sâu chảo
wi= 1:0.2:5;% chọn độ phân giải cho chiều rộng chảo
zc=interp2(width, depth, temps, wi,di,'cubic');% nội suy lập phương 
mesh(wi,di,zc) % tạo đồ thị 3 chiều
xlabel('Chieu rong chao'), ylabel(‘Chieu sau chao’),zlabel(' Nhiet do Xen-so ')
title(' Nhiet do cua lo') 
axis('ij')
grid

Ví dụ trên chỉ ra rằng, nội suy hai chiều là phức tạp hơn vì phải theo dõi nhiều biến hơn. Dạng cơ sở của interp2 là interp2(x,y,z,X,Yi phương pháp). Ở đây x,y là hai biến độc lập và z là ma trận biến phụ thuộc có kích thước là length(y) dòng và length(x) cột. xi là mảng của các giá trị được nội suy theo trục X, Y là mảng của các giá trị được nội suy theo trục y. Tham số tuỳ chọn phương pháp có thể là ‘linear’(tuyến tính), ‘cubic’(lập phương), hay 'nearest’(gần nhất). Trong trường hợp này cubic không có nghĩa là chốt bậc ba mà là một thuật toán khác có sử dụng đa thức bậc ba. Xem chi tiết hơn trong trợ giúp Help interp2 .

Tổng kết:

• Nội suy là quá trình đánh giá các giá trị trung gian của hàm số khi cho trước một dãy số liệu mô tả hàm.
• Khớp đường cong hay hồi quy là quá trình tìm đường cong khớp nhất với dãy các điểm số liệu. “Khớp nhất” nói chung có thể không đi qua điểm số liệu nào cả.
• Khớp đường cong bình phương tối thiểu với đa thức là xác định các hệ số đa thức tối thiểu hoá tổng sai số bình phương tại các điểm dữ liệu. Ở đây sai số được hiểu là khoảng cách giữa điểm dữ liệu đã biết và giá trị đa thức tại điểm dữ liệu tương ứng.
• Hàm polyfit(x,y,n) cho ta các hệ số đa thức của đa thức bậc n cực tiểu hoá sai số bình phương tối thiểu khi cho trước số liệu của x và y=f(x).
• Hàm polyval(p,x) tính giá trị đa thức tại các điểm x.
• Cần ít nhất n+1 điểm dữ liệu cho việc khớp đường cong bằng đa thức bậc n. Nên chọn bậc của đa thức đủ lớn.
• Nội suy là quá trình tính giá trị của hàm ở giữa các điểm dữ liệu .
• Nói chung nội suy không có ích trong việc đánh giá hàm nằm ngoài vùng dữ liệu.
• Biến độc lập dùng để nội suy phải là đơn điệu
• Nội suy một chiều tính giá trị y=f(x) đối . thi biết cặp dữ liệu (x,y) mô tả hàm y=f(x)
• Nội suy hai chiều tính giá trị z=f(x,y) đối với x,y khi biết bộ ba dữ liệu (X,Y, z. ) mô tả hàm z=f(x,y).

Sidebar Menu
Top