ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍMINH TRƯỜNG ĐẠI HỌC BÁCH KHOA ---BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH ĐỀ TÀI: SPLINE BẬC BA Giáo viên hướng dẫn: TS.Nguyễn Đình Dương 1... ĐẠI HỌC QUỐC GIA THÀN
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ
MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA
-BÀI TẬP LỚN PHƯƠNG PHÁP TÍNH
ĐỀ TÀI: SPLINE BẬC BA
Giáo viên hướng dẫn: TS.Nguyễn Đình Dương
1
Trang 2ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ
PHÂN CÔNG
Giải bài 15 Soạn powerpoint Giải bài 3
Nguyễn Minh Khoa Huỳnh Nguyễn Hiếu Nghĩa
Trần Văn Pháp Lưu Sinh Nhật Sư Bùi Việt Trung Nguyễn Lương Thế Vĩ
Trương Công Hoàng Vũ
Chịu trách nhiệm code Soạn spline tự nhiên Giải bài 11 Giải bài 5 Soạn spline ràng buộc Người thuyết trình Tổng hợp báo cáo Soạn các khái niệm
Trang 3MỤC LỤC:
I Cơ sở lý thuyết Spline bậc ba: 4
1) Các khái niệm cơ bản: 4
a Định nghĩa 1: 4
b Định nghĩa 2: 5
Spline bậc ba tự nhiên: 6
Spline bậc ba ràng buộc: 7
2 3 II/Phần bài tập: 8
3
Trang 4I Cơ sở lý thuyết Spline bậc ba:
Việc xây dựng một đa thức đi qua các điểm nội suy cho trước trong trường hợp n lớn
là rất khó khăn Biện pháp khắc phục là trên từng đoạn liên tiếp của các cặp điểm nútnội suy ta nối chúng bởi các đường cong đơn giản như đoạn thẳng Tuy nhiên, khi đótại các điểm nút hàm sẽ mất tính khả vi Do đó, phải xây dựng đường cong bằng cáchnối các đoạn cong nhỏ lại với nhau sao cho vẫn bảo toàn tính khả vi của hàm
Đường cong như vậy được gọi là đường spline (đường ghép trơn) Các hàm trên cácđoạn nhỏ này thường là các đa thức và bậc cao nhất của các đa thức đó gọi là bậc củaspline
1) Các khái niệm cơ bản:
a Định nghĩa 1:
Cho f (x) xác định trên đoạn [a,b] và một phép phân hoạch của nó:
a = x < x < x = b Đặt y = f(x ), y = f(x ), y = f(x ) Một spline bậc ba nội suy hàm0 1 2 0 0 1 1 2 2f(x) trên [a,b] là hàm g (x) thỏa các điều kiện sau:
Trang 5a +b h +c h
2+d0h0 = y
1 3
Trang 7Điều kiện để xác định 1 spline bậc ba ràng buộc là g’(a) = α, g’(b) = β.
Khi đó ta có thêm 2 phương trình
y1−y0
h0
2
7
Trang 98.618.50515
Trang 125 : The data in Exercise 3 were generated using the following functions Use the
cubic splines constructed in Exercise 3 for the given value of x to approximate f(x)and f'(x), and calculate the actual error
Trang 13Sai số thực tế ∆= 1.1807×10-3
13
Trang 15b4_daohamchinhxactaix0 := eval(diff(y2, x), x = x2);
c4_daohamchinhxactaix0 := eval(diff(y3, x), x = x3);
d4_daohamchinhxactaix0 := eval(diff(y4, x), x = x4);
saiso_caua := abs(a1_giatritaix0 - a2_giatrichinhxactaix0);
saiso_caub := abs(b1_giatritaix0 - b2_giatrichinhxactaix0);
saiso_cauc := abs(c1_giatritaix0 - c2_giatrichinhxactaix0);
saiso_caud := abs(d1_giatritaix0 - d2_giatrichinhxactaix0);
saisodaoham_caua := abs(a3_daohamtaix0 - a4_daohamchinhxactaix0);
saisodaoham_caub := abs(b3_daohamtaix0 - b4_daohamchinhxactaix0);
saisodaoham_cauc := abs(c3_daohamtaix0 - c4_daohamchinhxactaix0);
saisodaoham_caud := abs(d3_daohamtaix0 - d4_daohamchinhxactaix0);
Trang 176 : The data in Exercise 4 were generated using the following functions Use the
cubic splines constructed
in Exercise 4 for the given value of x to approximate f (x) and f’(x), and calculate theactual error
Trang 1818
Trang 20d4_daohamchinhxactaix0 := eval(diff(y4, x), x = x4);
saiso_caua := abs(a1_giatritaix0 - a2_giatrichinhxactaix0);
saiso_caub := abs(b1_giatritaix0 - b2_giatrichinhxactaix0);
saiso_cauc := abs(c1_giatritaix0 - c2_giatrichinhxactaix0);
saiso_caud := abs(d1_giatritaix0 - d2_giatrichinhxactaix0);
saisodaoham_caua := abs(a3_daohamtaix0 - a4_daohamchinhxactaix0);
saisodaoham_caub := abs(b3_daohamtaix0 - b4_daohamchinhxactaix0);
saisodaoham_cauc := abs(c3_daohamtaix0 - c4_daohamchinhxactaix0);
saisodaoham_caud := abs(d3_daohamtaix0 - d4_daohamchinhxactaix0);
Trang 24solve({eval(S0, x = 2) = eval(S1, x = 2), eval(daohamcap1_S0, x = 2) =
eval(daohamcap1_S1, x = 2), eval(daohamcap2_S0, x = 2) = eval(daohamcap2_S1, x
= 2), eval(daohamcap2_S1, x = 3) = 0}, [B, D, b, d]);
Bài
15: Construct a natural cubic spline to approximate f (x) = cos πxx by using the
values given by f (x) at x = 0, 0.25, 0.5, 0.75, and 1.0 Integrate the spline over [0, 1],
10.250.7071068
20.50
30.75-0.7071068
41.0-1
S(x) = S (x) = a + b (x - x ) + c (x - x )2+ d (x - x )3
i
24
Trang 26-4.770444512 10x0 := 0.5;
y := cos(Pi*x);
daohamtaix0 := eval(diff(1.62132034309490 - 3.24264068660000*x +
.85714335683466*10^(-9)*(x - 0.5)^2 + 6.62741698057143*(x - 0.5)^3, x), x = x0);6
daohamchinhxactaix0 := eval(diff(y, x), x = x0);
daohamcap2 := eval(diff(1.62132034309490 - 3.24264068660000*x +
6.85714335683466*10^(-9)*(x - 0.5)^2 + 6.62741698057143*(x - 0.5)^3, x, x), x =x0);
daohamcap2chinhxac := eval(diff(y, x, x), x = x0)
Bài
33: Repeat Exercise 32, constructing three natural splines using Algorithm 3.4.Exercise 32: The upper portion of this noble beast is to be approximated using
clamped cubic spline interpolants The curve is drawn on a grid from which the table
is constructed Use Algorithm 3.5 to construct the three clamped cubic splines
26
Trang 27CODE MAPLE 2019:
readlib(spline);
Spline1 := spline([1, 2, 5, 6, 7, 8, 10, 13, 17], [3, 3.7, 3.9, 4.2, 5.7, 6.6, 7.1, 6.7, 4.5], x,cubic);
Spline2 := spline([17, 20, 23, 24, 25, 27, 27.7], [4.5, 7, 6.1, 5.6, 5.8, 5.2, 4.1], x,
cubic);
Spline3 := spline([27.7, 28, 29, 30], [4.1, 4.3, 4.1, 3], x, cubic);
TÀI LIỆU THAM KHẢO:
-Slide bài giảng thầy Nguyễn Đình Dương
Giáo trình phương pháp tính Lê Thái Thanh
27