BÀI GIẢNG MATLAB - Trang 128

124

y_star =

0.8754

>> y_star = interp1(x,y, x_star, 'linear')

y_star =

0.8754

>> y_star = interp1(x,y, x_star, 'cubic')

y_star =

0.9008

>> y_star = interp1(x,y, x_star, 'nearest')

y_star =

0.9093

>> y_star = interp1(x,y, x_star, 'spline')

y_star =

1.0200

Như thế các phương pháp nội suy khác nhau sẽ cho ta các kết quả khác nhau. Để
thấy rõ hơn kết quả của các phương pháp nội suy, ta xét ví dụ sau

x = 0:8; y = sin(x); plot(x,y,'-ko'), hold on

xi = 0:0.1:8; yi1 = interp1(x,y, xi, 'linear');

yi2 = interp1(x,y, xi, 'cubic');

yi3 = interp1(x,y, xi, 'spline');

plot(xi,yi1,'-k','linewidth',1.5)

plot(xi,yi2,'-r','linewidth',1.5)

plot(xi,yi3,'-b','linewidth',1.5), grid on

xlabel('x'), ylabel('y'), axis([0 8, -1.1 1.1])

legend('points','linear','cubic','spline')

0

1

2

3

4

5

6

7

8

- 1

- 0.5

0

0.5

1

x

y

points

linear

cubic

spline

Hình 5-7. Kết quả nội suy bằng đường bậc 3 và đường spline