BÀI GIẢNG MATLAB - Trang 127

123

một đường cong nhưng đi qua các điểm số liệu đó. Có nhiều phương pháp để tạo ra
đa thức đi qua các điểm cho như phương pháp nội suy theo công thức Lagrange,
phương pháp Newton, phương pháp

Neville, phương pháp nội suy với đường

spline bậc 3, .... Chi tiết về các phương pháp này có thể xem trong các tài liệu về
giải tích số và phương pháp số.

Trong phần này chỉ trình bày việc sử dụng các lệnh interp của Matlab để thực hiện
tìm các giá trị nội suy từ các số liệu sẵn có. Bài toán đặt ra là cho biết các giá trị
tương ứng của hai đại lượng x và y như trong bảng số liệu

x

x1

x2

x3

xn

y

y1

y2

y3

yn

Hãy tìm giá trị của biến

*

y

ứng với giá trị nào đó của biến

*

x

với

*

1

n

x

x

x

.

Bài toán này trong Matlab được giải quyết dễ dàng với lệnh interp. Cách gọi lệnh
này như sau:

y_star = interp1(x,y,x_star)

Nếu x là véctơ gồm các phần tử nguyên từ 1 đến n (x = 1:n), với n = length(y), thì
ta có thể gọi lệnh

y_star = interp1(y,x_star)

Để nói rõ hơn phương pháp nào được sử dụng trong việc nội suy này ta sử dụng cú
pháp

y_star = interp1(x, y, x_star, method)

với method được chọn là một trong các phương pháp sau

'nearest' - nội suy theo lân cận gần nhất

'linear' - nội suy tuyến tính

'spline' - nội suy sử dụng đường spline bậc 3

'pchip' - nội suy bậc 3 từng đoạn

'cubic' - tương tự như 'pchip'

Nếu giá trị

*

x

nằm ngoài khoảng

1

[ ... ]

n

x

x

, khi đó ta gọi phép tính giá trị

*

*

( )

y

y x

=

là phép tính ngoại suy và sử dụng lệnh với cú pháp:

y_star = interp1(x, y, x_star, method, 'extrap')

Sau đây xét ví dụ:

>> x = 1:20; y = sin(x);

>> x_star = 1.5;

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

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.