TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA TOÁN – THỐNG KÊ ĐỒ ÁN TOÁN 1TÊN ĐỀ TÀI: - GIẢI GẦN ĐÚNG NGHIỆM CỦA HỆ PHƯƠNG TRÌNH TUYẾN TÍNH VÀ CÁC PHƯƠNG PHÁP NỘI
Trang 1TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG
KHOA TOÁN – THỐNG KÊ
ĐỒ ÁN TOÁN 1TÊN ĐỀ TÀI:
- GIẢI GẦN ĐÚNG NGHIỆM CỦA HỆ PHƯƠNG TRÌNH TUYẾN TÍNH VÀ CÁC PHƯƠNG PHÁP NỘI SUY HÀM SỐ BẰNG NGÔN NGỮ C ++
Giảng viên hướng dẫn: ThS LÊ TRUNG NGHĨA
Sinh viên thực hiện:
ĐẶNG NGỌC ĐỨC MS: C1201002
PHẠM THANH TÂM MS: C1201104
LỚP: 120C0101 LỚP: 120C0101
NIÊN KHÓA: 2012 - 2016
Trang 2TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG
KHOA TOÁN – THỐNG KÊ
ĐỒ ÁN TOÁN 1TÊN ĐỀ TÀI
- GIẢI GẦN ĐÚNG NGHIỆM HỆ PHƯƠNG TRÌNH TUYẾN TÍNH VÀ CÁC PHƯƠNG PHÁP NỘI SUY HÀM SỐ BẰNG NGÔN NGỬ C ++
Giảng viên hướngdẫn: ThS LÊ TRUNG NGHĨA
Sinh viên thực hiện:
ĐẶNG NGỌC ĐỨC MS: C1201002
PHẠM THANH TÂM MS: C1201104
LỚP: 120C0101 LỚP: 120C0101
NIÊN KHÓA: 2012 - 2016
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Trang 4
LỜI CẢM ƠN
Trong quá trình thực hiện đề tài đồ án này chúng em nhận được nhiều sự giúp đỡ từ
các thầy cô trong khoa Toán – Thống kê, Trường Đại học Tôn Đức Thắng Các thầy cô đã
hướng dẫn tận tình chỉ bảo những kinh nghiệm quý báu Trong quá trình học tập chúng em cũng đã không ngừng học tập, cùng với sự giúp đỡ của bạn bè vì đó mà chúng em đã hoàn thành đề tài đồ án như mong muốn này Nay chúng em xin được gởi lời cảm ơn đến các
thầy cô đặc biệt là thầy Lê Trung Nghĩa - người đã hướng dẫn tận tình, tạo điều kiện tốt
nhất cho chúng em để có thể hoàn thành tốt cuốn báo cáo này Nhóm chúng em cũng xin
được gởi lời cảm ơn đến gia đình và bạn bè đã động viên khuyến khích trong những lúc khó khăn nhất Một lần nữa chúng em xin chân thành cảm ơn! Chúc tất cả mọi người sức khỏe và thành công!
Trang 5LỜI NÓI ĐẦU
Trong cuốn báo cáo này, chúng em xin trình bày hai phần:
Phần 1: Đối với một hệ phương trình, chúng ta luôn có cách giải tìm ra nghiệm chính xác
của nó Người ta xây dựng cách tính nghiệm chính xác thông qua công thức Cramer Tuy
nhiên khi gặp một hệ phương trình có số ẩn lớn thì việc áp dụng công thức Cramer không
còn đơn giản Để giải quyết vấn đề này người ta xây dựng công thức khác là Gauss và phương pháp lặp Seidel Phương pháp này làm giảm được số lượng phép tính đáng kể so với phương pháp Cramer với độ chính xác theo mức độ từ thấp đến cao Vì vậy trong
phần này, chúng em trình bày nội dung của “GIẢI GẦN ĐÚNG HỆ PHƯƠNG TRÌNH
TUYẾN TÍNH BẰNG CÁC PHƯƠNG PHÁP GAUSS, LẶP SEIDEL”
Phần 2: Trong toán học, ta thường gặp các bài toán liên quan đến khảo sát và tính giá trị
của các hàm f(x) nào đó Tuy nhiên trong thực tế có trường hợp ta không xác định được biểu thức của hàm f(x) mà chỉ nhận được giá trị của f(xi) rời rạc tại các điểm nút xi tương ứng Vấn đề đặt ra là làm sao ta đi tính được các giá trị của hàm f(x) tại các điểm còn lại
Để giải quyết vấn đề này người ta đã xây dựng một hàm
φ(xi) = yi = f(xi) với ( i = 0,1,…,n )
φ(x) ≈ f(x) với mọi x ϵ [a;b] và x ≠ xi
ta xây dựng hàm φ(x) gọi là bài toán nội suy Ngoài ra phương pháp bình phương tối thiểu
được dùng để lặp các công thức thực nghiệm Khi tìm mối liên hệ giữa hai đại lượng x và y phải tiến hành thí nghiệm rồi quan sát, đo đạc Rồi dựa vào dữ liệu thu được, ta lập mối liên hệ hàm số y = f(x) cụ thể gọi là lập công thức thực nghiệm Nói chung việc tìm ra hàm f(x) là gần đúng Việc tìm ra hàm số xấp xỉ của hàm số f(x) bằng phương pháp bình phương nhỏ nhất sẽ rất phức tạp nếu ta không biết được dạng của hàm số xấp xỉ Trong
phần này chúng em trình bày dung nội dung “NỘI SUY LAGRANGE, NEWTON VÀ
PHƯƠNG PHÁP BÌNH PHƯƠNG NHỎ NHẤT”
Cách để tìm ra nghiệm xấp xỉ của các phương trình hay hàm số có rất nhiều Chúng
em chỉ liệt kê một số phương pháp thông dụng có ứng dụng thực tế
Trang 6MỤC LỤC Trang
PHẦN 1: TÌM NGHIỆM CỦA HỆ PHƯƠNG TRÌNH TUYẾN TÍNH
4 Phương pháp bình phương nhỏ nhất – Lấy xấp xỉ hàm số 32
Trang 7PHẦN 1: TÌM NGHIỆM CỦA HỆ PHƯƠNG TRÌNH
TUYẾN TÍNH
1 Giới thiệu chung
Cho hệ phương trình tuyến tính:
{
(1)
Hệ phương trình trên có thể được cho bởi ma trận: (
) (2)
Vấn đề đặt ra là tìm nghiệm ⃗ = ( x1 , x2, , xn ) - Phương pháp đúng (Cramer, Gauss, Khai căn): Đặc điểm của các phương pháp này là sau một số hữu hạn các bước tính Ta nhận được nghiệm đúng nếu trong quá trình tính toán không làm tròn số - Phương pháp gần đúng (Gauss Siedel, giảm dư): Thông thường ta cho ẩn số một giá trị ban đầu, từ giá trị này tính giá trị nghiệm gần đúng tốt hơn theo một quy tắc nào đó Quá trình này được lặp lại nhiều lần và với một số điều kiện nhất định, ta nhận được nghiệm gần đúng 2 Phương pháp Cramer Sự tồn tại và nghiệm duy nhất của hệ: ∆ = det(A)s Nếu ∆ = 0 thì ma trận A suy biến do đó hệ (1) suy biến suy ra từ ∆: Bằng cách thay cột thứ i bằng cột ở vế phải Định lý Cramer : Nếu ∆ ≠ 0 thì hệ (1) không suy biến và có nghiệm duy nhất được tính bởi công thức: (3)
Nhận xét: Công thức thu gọn dể nhớ, đẹp Tuy nhiên khi n đủ lớn phải thực hiện số
lượng lớn các phép tính Việc tính các định thức sẽ gặp nhiều khó khăn
Nc(n) – số lượng phép tính cần làm khi hệ có n phương trình
Nc(n) = (n +1)!n
Trang 83 Phương pháp Gauss
3.1 Nội dung phương pháp
Nội dung khử dần các ẩn về hệ tương đương có dạng tam giác trên rồi giải từ dưới lên mà không phải tính định thức
Ví dụ: Xét hệ phương trình sau:
(4)
Khử các ẩn →
(5) Giải ngược từ dưới lên → tìm được các ẩn Quá trình (4) → (5): sử dụng các phép biến đổi sơ cấp trên dòng của ma trận Quá trình (5): quá trình ngược Khối lượng phép tính Nc(n) =
Với n = 15 ta có Nc(15) = 2570 nhỏ hơn nhiều so với phương pháp Cramer Ví dụ: Giải hệ phương trình {
Giải: Ta đưa hệ phương trình về ma trận: (
) Ta dùng các phép biến đổi sơ cấp trên dòng của ma trận đưa ma trận về dạng bậc thang: (
)
→ (
) →
Trang 9(
)
→ (
)
→
(
) → (
) Vậy hệ phương trình đả cho tương đương với hệ sau:
+ Nếu aii khác 0 thì ta tìm được hệ số khử
Thực hiện vòng lặp cho i chạy từ 1 đến n (số dòng)
Thực hiện vòng lặp cho j chạy từ i+1 đến n+1(số cột) Đặt c =
(hệ số khử)Lặp cho k chạy từ i đến n+1: aj,k=c*ai,k+aj,k
Bước 3:
- Tìm nghiệm theo quy trình ngược
Trang 10- Vòng lặp j=i+1n s=s+ aij*xj (số nghiệm luôn <= số ẩn)
- In ra nghiệm xi
3.3 Code chương trình :
Trang 124 Phương pháp Lặp Seidel
4.1 Nội dung phương pháp
- Cho hệ phương trình: Ax = f (6)
Biến đổi về dạng tương đương: x = Bx + g (7)
B (
) suy ra từ A và g suy ra từ f (8)
- Chọn x(0) nào đó làm nghiệm gần đúng đầu tiên của phương trình và tính các nghiệm gần đúng tiếp theo: x(1), x(2),…, x(m) theo phương pháp lặp đơn: x(m) = Bx(m-1) + g ; (m>=1) (9)
Với x(0) cho trước (10)
Trong đó: (Bx)i = ∑ (11) Phương pháp tính x(m) theo (9) gọi là phương pháp lặp đơn trong đó:
B là ma trận lặp
Trang 13Sự hội tụ và sai số của phương pháp
Định nghĩa sự hôi tụ
Giả sử là nghiệm của hệ phương trình (1) tức (6) nếu
xi(m) → khi m →∞; i = 1, 2, , n
→ phương pháp lặp hội tụ
Định lý về sự hội tụ của phương pháp lặp đơn
Đối với ma trận B nếu chuẩn hàng:
r0 = max{∑ | | ∑ | | ∑ | |} (12)
hoặc chuẩn cột: r1 = max{∑ | | ∑ | | ∑ | |} (13)
hoặc chuẩn Ơclit: r2 = (∑ ∑ | |) ⁄ (14)
Khi đó (9), (10) sẽ hội tụ bất kì đầu x(0) nào và sai số được đánh giá: ‖ ‖ ‖ ‖ ; (15)
- r0< 1 → p =0; ‖ ‖ {| |},
- r1< 1 → p =1; ‖ ‖ ∑ | |
- r2< 1 → p =2; ‖ ‖ ∑ ⁄
Các bước tính: 1 Cho hệ phương trình Ax= f 2 Ẩn định sai số cho phép ε 3 Ax = f → x = Bx + g 4 Kiểm tra thỏa mãn điều kiện hội tụ (12), (13), (14) 5 Chọn x(0) tùy ý (là vecto không hay là g) 6 Tính x(m+1) = Bx(m) + g, với m = 1, 2, 3,… cho tới khi ‖ ‖ → x(m) ≈ α 7 Sai số: ‖ ‖
Trang 14Tìm nghiệm gần đúng với độ chính xác ε = 1.10-3 bằng phương pháp lặp đơn
Giải: Ta đưa hệ phương trình về dạng x = Bx + g
∑| |
∑| |
Chọn phương pháp lặp hội tụ với mọi x(0) cho trước
Chọn x(0) = ( ) kết quả tính được cho trong bảng sau:
0
3 3,19 3,1944 3,19495
3 0,19 0,0044 0,00055
0
5 5,04 5,0446 5,04480
5 0,04 0,0046 0,0002
Ta nhận xét rằng với m = 4 thì
| | ;| | | |
Trang 15max{| |} thỏa đề bài ta dừng quá trình tính
Sai số: ‖ ‖ =
Vậy kết luận: {
4.2 Thuật toán
Bước 1:
Nhập dữ liệu
Nhập ma trận hệ số của hệ phương trình (ma trận A)
Kiểm tra dữ liệu vừa nhập
Nhập cột hệ số tự do (ma trận B)
Kiểm tra dữ liệu vừa nhập
Nhập số lần lặp
Bước 2:
Chọn nghiệm ban đầu x=(0, 0, , 0)
Để xi = 0 Dùng vòng lặp (for) cho i chạy 1n
Xi= (-S + aii *d + bi )/aii Denta=|d-xi|
} Vòng lặp do { } while ( ) dừng khi số lần lặp lớn hơn số lần quy định và khi Denta ≥ 0
Trang 16Nếu Denta < 0 thì nghiệm đạt độ chính xác trong số lần lặp đã cho trước
Nếu Denta = 0 thì nghiệm không đạt độ chính xác sau số lần lặp cho trước
Bước 3: Xuất nghiệm
4.3 Code chương trình
Trang 19PHẦN 2: NỘI SUY VÀ LẤY XẤP XỈ HÀM SỐ
1 Giới thiệu chung về phương pháp
1.1 Nội suy
1.1.1 Đặt vấn đề:
Cho hàm số y = f(x) mà không biết biểu thức của giải tích hàm, chỉ biết giá trị
của hàm tại một số hữu hạn điểm trên đoạn [a ; b] (bằng đo đạc hoặc thực nghiệm)
y = f(x) y0 y1… yi… yn-1 yn
Tìm giá trị của hàm số tại một số điểm trung gian khác
1.1.2 Bài toán nội suy:
Xây dựng một hàm φ(x) có biểu thức đơn giản, có giá trị trùng với giá trị của hàm f(x) tại các điểm x0, x1,…, xn, còn tại các điểm khác trên đoạn [a ; b] thì hàm φ(x) khá gần f(x) (phản ảnh đúng quy luật f(x)) → có thể suy ra giá trị gần đúng của hàm f(x) tại các điểm bất kì thỏa mãn x0 < x < xn
Hàm φ(x) – được gọi là hàm nội suy của f(x) trên đoạn [a ; b]
Ý nghĩa hình học: Ta đi xây đường cong y = φ(x) đi qua các điểm cho trước (xi ; yi); i = 0, 1,…, n
1.2 Đa thức nội suy
Thường chọn đa thức làm hàm nội suy vì:
- Đa thức là loại hàm đơn giản
- Luôn có đạo hàm và nguyên hàm
Trang 201.3 Sự duy nhất của đa thức nội suy
Đa thức nội suy Pn(x) của hàm f(x) định nghĩa ở trên nếu có thì chỉ có một mà thôi → Đa thức nội suy có thể có nhiều cách xây dựng nhƣng do tính duy nhất nên các dạng của nó đều có thể quay về nhau
2 Nội suy Lagrange
2.1 Đa thức nội suy Lagrange
→ (2): Đa thức nội suy Lagrange
Nội suy tuyến tính (n = 1)
Trang 21
P2(x) có dạng: P2(x) = Ax2 + Bx + C – bậc hai đối với x Sai số nội suy Định lý: Nếu hàm f(x) liên tục trên [a ; b] và có trong [a ; b] đạo hàm liên tục đến cấp n+1 thì sai số nội suy r n (x) = f(x) – P n (x) có biểu thức sau: (5)
([a ; b] khoảng chứa các nút x i ) Gọi | |
Thì | | ||
o Ƣu điểm của đa thức nội suy Lagrange: Đơn giản o Nhƣợc điểm: Thêm một nút thì phải tính lại toàn bộ Ví dụ: Cho bảng sau: x 1 2 3 4 y 5 7 8 9 Viết ra biểu thức các đa thức nội suy cơ sở, tính giá trị của bảng tại x = 3,5
Trang 22
P3(x) = 5l0(x) + 7l1(x) + 8l2(x) + 9l3(x) => P3 (3,5) = 8,4375
Ghi chú: Viết biểu thức l i (x) ( không tính ! ) Thay x → Giá trị
2.2 Thuật toán (Nội suy Lagrange)
Hàm tính Ln(x):
+ Vòng lặp for cho in + Vòng lặp for cho jn + Nếu i≠j:
Trang 232.3 Code chương trình (Nội suy Lagrange)
Trang 243 Nội suy Newton
3.1 Đa thức nội suy Newton
3.1.1 Nội suy Newton với mốc không cách đều
Tỉ sai phân (tỉ hiệu) hữu hạn :
Cho y = f(x) có giá trị yi = f(xi) tại các nút xi không cách đều nhau
Tỉ sai phân cấp 1 (hạng 1):
Tỉ sai phân cấp 2:
Trang 26
Đa thức nội suy Newton là:
Dạng tiến:
= > y(4) = P4(x) =
3.1.3 Nội suy Newton với mốc cách đều
- Sai phân (Hiệu) hữu hạn:
Hàm số y = f(x) có giá trị yi = f(xi) tại các nút xi cách đều nhau với
xi+1 – xi = h = const; i = 1, 2,…, n
Suy ra: Có x0 thì x1 = x0 + h; x2 = x0 + 2h ; xi = x0 + ih…
- Định nghĩa sai phân hữu hạn của hàm y = f(x)
Sai phân cấp 1 (hạng 1):
Sai phân cấp n là sai phân của sai phân cấp n – 1
…………
Trang 273.1.4 Đa thức nội suy Newton tiến với mốc cách đều (nội suy về phía phải)
- Thường dùng để tính các giá trị của của hàm ở gần x0 đầu bảng
3.1.5 Đa thức nội suy Newton lùi – với mốc cách đều (nội suy về phía trái)
Với cách làm tương tự nhưng bắt đầu với x = xn Ta có thể suy ra
Trang 28
- Để thuận tiện tính toán thường ta lập bảng sai phân đường chéo
* Bảng sai phân đường chéo của công thức nội suy tiến:
* Bảng sai phân đường chéo của công thức nội suy lùi:
Trang 293.1.6 Sai số của phép nội suy Newton
Vẫn dùng công thức sai số đã biết trong phần nội suy Lagrange nhƣng thay đạo hàm hạng n + 1 bằng sai phân hạng n + 1
→ Với công thức nội suy tiến:
→ Với công thức nội suy lùi:
Ví dụ: Nội suy Newton:
Đa thức nội suy tiến: x ≈ 150 = >
Trang 30▲ Nhận xét: Tất cả các sai phân: Nội suy Lagrange ≡ Newton.
3.2 Thuật toán (Nội suy Newton)
Cách khác có thể dùng đa thức nội suy Newton dạng lùi và hoàn toàn tương tự chỉ lấy giá trị trong bảng tỉ hiệu có thể bằng cách xây dựng lại bảng tỉ hiệu dạng lùi rồi tính
Ln(x)
Bước 3: Kết thúc xuất ra trị giá của hàm f(x) cần tìm
Trang 313.3 Code chương trình (Nội suy Newton)
Trang 324 Phương pháp bình phương nhỏ nhất – lấy xấp xỉ hàm số
4.1 Nội dung phương pháp và các dạng thương gặp
4.1.1 Đặt vấn đề
- Lấy xấp xỉ một hàm số là tìm một hàm số khác hoặc một tổ hợp các hàm số khác
mà sai khác với hàm số đã cho đủ bé theo một nghĩa nào đó
- Lấy xấp xỉ bằng các đa thức nội suy có những nhược điểm:
Nếu nhiều nút → Bậc của các đa thức nội suy sẽ rất lớn
Trang 33→ Tính toán không thuận tiện
- Việc buộc Pn(xi) = yi không hợp lý (các số liệu đo đạc, thực nghiệm có thể không chính xác → sai số lớn khi nội suy)
- Không thật phù hợp nếu f(x) là hàm tuần hoàn
- Thường có nhu cầu “làm trơn” các đường cong thực nghiệm, hoặc biểu diễn các quan hệ thực nghiệm dưới dạng một hàm số đã biết nào đó
Là một đa thức đại số thông dụng
Phương pháp thường dùng khi lấy xấp xỉ (xác định các hệ số của (6) hoặc (7)) là phương pháp bình phương nhỏ nhất.
Nội dung của phương pháp bình phương nhỏ nhất là tìm cực tiểu của hàm:
∑ (8) f(xi), i = 1, 2, …, n là những giá trị đã biết của f(x) trên tập điểm x0, x1,…,xnCoi các hệ số Ck là các ẩn phải tìm, để M cực tiểu phải có: