II. CHỮA BÀI TẬP
E h I I h ba h
4.2.3 Một số hàm đồ thị của MATLAB
Một phương pháp rất phổ biến khi nghiên cứu cấp chính xác của một công thức là khảo sát đồ thị logarit của sai số đối với logarit của bước đi của lưới. Trong MATLAB có một số hàm đồ thị cho phép biểu diễn hàm số trên lưới logarith thay cho việc lấy logarith cúa hàm hay của biến.
Hàm Ý nghĩa
semilogx (x, y,’symbol’) Vẽ đồ thị của hàm số y đối với x trên lưới logarit của x. Giá trị của x phải dương.
semilogx (x, y,’symbol’) Vẽ đồ thị của hàm số y đối với x trên lưới logarit của y. Giá trị của y phải dương.
loglog (x, y,’symbol’) Vẽ đồ thị của hàm số log y trên lưới logarit của x. Giá trị của x và y phải dương.
text (x, y, ‘Text’) Đưa xâu ‘Text’ vào toạ độ (x,y) của đồ thị.
gtext (‘Text’) Đưa xâu ‘Text’ vào vị trí click chuột trái trên đồ thị. Xét một công thức sai số: E(h) = ChP.
Giả sử hằng số C > 0. Lấy logarith hai vế của biểu thức trên ta được:
log(E) = log (C) + p.log(h) )= f(h)
Đồ thị của hàm y=f(h) có dạng một đường thẳng và cấp chính xác của phương pháp chính là độ dốc của đường thẳng đó. Thí dụ 10. Hãy tính tích phân I = 1 0 ) 1 ln( x dx x bằng các phương pháp số và khảo sát sai số trên đồ thị logarith.
Giải. Cài đặt chương trình như sau:
% MATLAB code for Richardson extrapolation clear;
Intexact = 1/4; %% Exact solution of integral n = input( ' Cho so diem chia N : ');
h = 1/(n-1);
x = [0:h:1]; y = x.*log(1+x);
yy =y; yy(1)=0.5*y(1); yy(n)=0.5*y(n); I1 = h*sum(yy);
clear x y; h=h/2;
x = [0:h:1]; y = x.*log(1+x); n = length(x);
68
I2 = h*sum(yy); Inte = 4*I2/3-I1/3;
err1=abs(Inte-Intexact); %% Evaluate the error err2=abs(I1-Intexact);
loglog(h,err1,'r*',h,err2,'bo'); grid on; hold on;
Hình 6.3 Biểu diễn sai số trên đồ thị loglog
Từ đồ thị ta thấy sai số của công thức hình thang rất lớn so với sai số của công thức ngoại suy Richadson.