You are on page 1of 3

Lab 5:

Nhóm:
TT Họ và tên MSSV Lớp Ghi chú
1 Trần Lê Kim Ngân 21207183 21DVT_CLC3

Bài 1
a. Viết hàm (function) trong Matlab để tìm giá trị nội suy sử dụng đa thức nội suy
Lagrange
b. Áp dụng để tìm giá trị nội suy tại x = 0.14 và x = 0.16. Cho biết 2 các giá trị đầu vào
cho
nội suy: x = [0.1, 0.2, 0.3, 0.4], y = [0.09983, 0.19867, 0.29552, 0.38942].
c. So sánh sai số giữa kết quả của b với sin(0.14) và sin(0.46).
d. Viết chương trình tìm đa thức nội suy Lagrange sử dụng kiểu dữ liệu syms trong
Matlab.
a.

function Y = Lagrange(x,y,X)
n = length(x) - 1;
Y = 0;
for i = 0:n
prod = 1;
for j = 0:n
if i ~= j
prod = prod.*(X - x(j+1))./(x(i+1) - x(j+1));
end
end
Y = Y + prod*y(i+1);
end
end

b.
x1 = 0.14;
x2 = 0.16;
x = [0.1 0.2 0.3 0.4];
y = [0.09983, 0.19867, 0.29552, 0.38942];
d1 = Lagrange(x, y, x1)
d2 = Lagrange(x, y, x2)
sin(0.14)
sin(0.46)
c.

Bài 2

function d = DividedDifference(x, y)
n = length(x)
d = y
for i = 1:n
for j = 1:i-1
d(i)=(d(j) - d(i))/(x(j) - x(i))
end
end
end
function result = NewtonForm(x, d, x0)
n = length(d)
result = d(n)
for i = n-1:1
result = result * (x0 - x(i)) + d(i)
end
end

function result = NewtonInterpolation(x, y, x0)


n = length(x)
d = y
for i = 1:n
for j = 1:i-1
d(i)=(d(j) - d(i))/(x(j) - x(i))
end
end
n = length(d)
result = d(n)
for i = n-1:1
result = result * (x0 - x(i)) + d(i)
end
end

You might also like