1. Trang chủ
  2. » Giáo án - Bài giảng

giáo trình phương pháp tính đại học bách khoa đà nẵng sinhvienzone com

68 254 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN ^[]\”\][^ ne C om Biên soạn: GV.Đỗ Thị Tuyết Hoa en Zo BÀI GIẢNG MÔN PHƯƠNG PHÁP TÍNH Si nh Vi (Dành cho sinh viên khoa Công nghệ thông tin) ( TÀI LIỆU LƯU HÀNH NỘI BỘ ) ĐÀ NẴNG, NĂM 2007 SinhVienZone.com https://fb.com/sinhvienzonevn MỤC LỤC CHƯƠNG I NHẬP MÔN 1.1 Giới thiệu môn phương pháp tính 1.2 Nhiệm vụ môn học 1.3 Trình tự giải tốn phương pháp tính CHƯƠNG II SAI SỐ om 2.1 Khái niệm 2.2 Các loại sai số CHƯƠNG III C 2.3 Sai số tính tốn TÍNH GIÁ TRỊ HÀM ne 3.1 Tính giá trị đa thức Sơ đồ Hoocner 3.1.1 Đặt vấn đề Zo 3.1.2 Phương pháp 3.1.3 Thuật toán en 3.1.4 Chương trình 10 3.2 Sơ đồ Hoocner tổng quát 10 Vi 3.2.1 Đặt vấn đề 10 nh 3.2.2 Phương pháp 10 3.2.3 Thuật toán 12 Si 3.3 Khai triển hàm qua chuỗi Taylo 12 CHƯƠNG IV GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH 14 4.1 Giới thiệu 14 4.2 Tách nghiệm 14 3.3 Tách nghiệm cho phương trình đại số 16 4.4 Chính xác hố nghiệm 17 4.4.1 Phương pháp chia đôi 17 4.4.2 Phương pháp lặp 19 4.4.3 Phương pháp tiếp tuyến 21 4.4.4 Phương pháp dây cung 22 SinhVienZone.com https://fb.com/sinhvienzonevn CHƯƠNG V GIẢI HỆ PHƯƠNG TRÌNH ĐẠI SỐ TUYẾN TÍNH 26 5.1 Giới thiệu 26 5.2 Phương pháp Krame 26 5.3 Phương pháp Gauss 27 5.3.1 Nội dung phương pháp 27 5.3.2 Thuật toán 27 5.4 Phương pháp lặp Gauss - Siedel (tự sửa sai) 28 5.4.1 Nội dung phương pháp 28 om 5.4.2 Thuật toán 30 5.5 Phương pháp giảm dư 31 C 5.5.1 Nội dung phương pháp 31 5.5.2 Thuật toán 32 TÌM GIÁ TRỊ RIÊNG - VECTƠ RIÊNG 34 ne CHƯƠNG VI 6.1 Giới thiệu 34 Zo 6.2 Ma trận đồng đạng 34 6.3 Tìm giá trị riêng phương pháp Đanhilepski 35 en 6.3.1 Nội dung phương pháp 35 Vi 6.3.2 Thuật toán 37 6.4 Tìm vectơ riêng phương pháp Đanhilepski 38 nh 6.4.1 Xây dựng công thức 38 6.4.2 Thuật toán 39 Si CHƯƠNG VII NỘI SUY VÀ PHƯƠNG PHÁP BÌNH PHƯƠNG BÉ NHẤT 41 7.1 Giới thiệu 41 7.2 Đa thức nội suy Lagrange 42 7.3 Đa thức nội suy Lagrange với mối cách 43 7.4 Bảng nội suy Ayken 44 7.4.1 Xây dựng bảng nội suy Ayken 45 7.4.2 Thuật toán 46 7.5 Bảng Nội suy Ayken (dạng 2) 46 7.6 Nội suy Newton 48 7.6.1 Sai phân 48 SinhVienZone.com https://fb.com/sinhvienzonevn 7.6.2 Công thức nội suy Newton 49 7.7 Nội suy tổng quát (Nội suy Hecmit) 51 7.8 Phương pháp bình phương bé 53 CHƯƠNG VIII TÍNH GẦN ĐÚNG TÍCH PHÂN XÁC ĐỊNH 57 8.1 Giới thiệu 57 8.2 Cơng thức hình thang 57 8.3 Công thức Parabol 58 om 8.4 Công thức Newton-Cotet 59 MỘT SỐ CHƯƠNG TRÌNH THAM KHẢO 62 Si nh Vi en Zo ne C TÀI LI ỆU THAM KHẢO 68 SinhVienZone.com https://fb.com/sinhvienzonevn CHƯƠNG I NHẬP MƠN 1.1 Giới thiệu mơn phương pháp tính Phương pháp tính mơn tốn học có nhiệm vụ giải đến kết số cho tốn, cung cấp phương pháp giải cho tốn thực tế mà khơng có lời giải xác Mơn học cầu nối tốn học lý thuyết ứng dụng thực tế om Trong thời đại tin học việc áp dụng phương pháp tính trở nên phổ biến nhằm tăng tốc độ tính tốn 1.2 Nhiệm vụ mơn học C - Tìm phương pháp giải cho toán gồm: phương pháp (PP) phương pháp gần ne + Phương pháp: kết dạng biểu thức giải tích cụ thể Zo + Phương pháp gần đúng: thường cho kết sau q trình tính lặp theo quy luật đó, áp dụng trường hợp tốn khơng có lời giải có q phức tạp en - Xác định tính chất nghiệm Vi - Giải tốn cực trị nh - Xấp xỉ hàm: khảo sát, tính tốn hàm f(x) phức tạp, ta thay hàm f(x) hàm g(x) đơn giản cho g(x) ≅ f(x) Việc lựa chọn g(x) gọi phép xấp xỉ hàm Si - Đánh giá sai số : giải toán phương pháp gần sai số xuất sai lệch giá trị nhận với nghiệm thực tốn Vì ta phải đánh giá sai số để từ chọn phương pháp tối ưu 1.3 Trình tự giải tốn phương pháp tính - Khảo sát, phân tích tốn - Lựa chọn phương pháp dựa vào tiêu chí sau: + Khối lượng tính tốn + Đơn giản xây dựng thuật toán + Sai số bé SinhVienZone.com https://fb.com/sinhvienzonevn + Khả thi - Xây dựng thuật toán: sử dụng ngôn ngữ giả sơ đồ khối (càng mịn tốt) - Viết chương trình: sử dụng ngơn ngữ lập trình (C, C++, Pascal, Matlab,…) Si nh Vi en Zo ne C om - Thực chương trình, thử nghiệm, sửa đổi hoàn chỉnh SinhVienZone.com https://fb.com/sinhvienzonevn CHƯƠNG II SAI SỐ 2.1 Khái niệm Giả sử x số gần x* (x* : số đúng), Khi ∆ = x − x∗ gọi sai số thực x Vì khơng xác định ∆ nên ta xét đến loại sai số sau: Khi ∆ x gọi sai số tuyệt đối x ∆x x ≤ ∆x C - Sai số tương đối : δ x = * om - Sai số tuyệt đối: Giả sử ∃ ∆ x > du be cho x − x 2.2 Các loại sai số ne Dựa vào nguyên nhân gây sai số, ta có loại sau: Zo - Sai số giả thiết: xuất việc giả thiết toán đạt số điều kiện lý tưởng nhằm làm giảm độ phức tạp toán en - Sai số số liệu ban đầu: xuất việc đo đạc cung cấp giá trị đầu vào khơng xác Vi - Sai số phương pháp : xuất việc giải toán phương pháp gần nh - Sai số tính tốn : xuất làm trịn số q trình tính tốn, q trình tính nhiều sai số tích luỹ lớn Si 2.3 Sai số tính tốn Giả sử dùng n số gần x i ( i = 1, n ) để tính đại lượng y, với y = f(xi) = f(x1, x2, , xn) Trong : f hàm khả vi liên tục theo đối số xi Khi sai số y xác định theo cơng thức sau: Sai số tuyệt đối: ∆y = n ∑ i =1 Sai số tương đối: δy = n ∑ i =1 - Trường hợp f có dạng tổng: ∂f ∆x i ∂x i ∂ ln f ∆x i ∂x i y = f (x i ) = ± x ± x ± ± x n SinhVienZone.com https://fb.com/sinhvienzonevn ∂f = ∀i ∂x i suy ∆ y = n ∑ i =1 ∆xi - Trường hợp f có dạng tích: x * x * * x k y = f (x ) = i * * x n x k +1 x1.x2 x m = (lnx1 + ln x2 + + ln xm ) − (lnxm+1 + + ln x n ) x m+1 xn i =1 n i =1 i ne ∑ δx - Trường hợp f dạng luỹ thừa: en ln y = ln f = α ln x ∂ ln f α = ∂x x n ∆x i = ∑ δx i xi i =1 Zo δy = Vậy n => δ y = ∑ om ∂ ln f = ∀i ∂x i xi C lnf = ln y = f(x) = x α (α > 0) ∆x = αδ x x nh Vi Suy δ y = α Ví dụ Cho a ≈ 10 25 ; b ≈ 324 ; c ≈ 12 13 Si Tính sai số của: a3 y1 = ; b c GiảI δ y = δ ( a ) + δ ( b = y2 = a3 − b c c ) = 3δa + δb + δc ∆a ∆b ∆c + + a b c ∆y2 = ∆(a3 ) + ∆(b c) = a3 δ(a3 ) + b c δ(b c) ∆y =3a ∆a + b a c( ∆b ∆c + ) b c SinhVienZone.com https://fb.com/sinhvienzonevn CHƯƠNG III TÍNH GIÁ TRỊ HÀM 3.1 Tính giá trị đa thức Sơ đồ Hoocner 3.1.1 Đặt vấn đề Cho đa thức bậc n có dạng tổng quát : p(x) = a0xn + a1xn-1 + + an-1x+ an (a#0) Tính giá trị đa thức p(x) x = c (c: giá trị cho trước) om 3.1.2 Phương pháp C Áp dụng sơ đồ Hoocner nhằm làm giảm số phép tính nhân (chỉ thực n phép nhân), phương pháp phân tích sau: p(x) = ( ((a0x + a1)x +a2)x+ +an-1 )x + an ne Ö p(c) = ( ((a0c + a1)c +a2)c+ +an-1 )c + an Ö Đặt p0 = a0 en p2 = p1c + a2 Zo p1 = a0c + a1 = p0c + a1 Vi pn = pn-1c + an = p(c) Sơ đồ Hoocner Si nh a0 p0 a1 a2 an-1 an p0*c p1*c pn-2*c pn-1*c p1 p2 pn-1 pn= p(c) Vd: Cho p(x) = x6 + 5x4 + x3 - x - Tính p(-2) Áp dụng sơ đồ Hoocner: 1 -5 -1 -1 -2 -8 16 -30 -2 -1 -8 15 -31 Vậy p(-2) = -31 3.1.3 Thuật toán + Nhập vào: n, c, hệ số ( i = 0, n ) SinhVienZone.com https://fb.com/sinhvienzonevn + Xử lý: Đặt p = a0 Lặp i = → n : p = p * c + + Xuất kết quả: p 3.1.4 Chương trình #include #include main ( ) c, p, a [10]; om { int i, n; float clrsr (); C printf (“Nhap gia tri can tinh : ”); scanf (“%f”,&c); printf (“Nhap bac da thuc : ”); scanf (“%d”,&n); for (i = 0, i a = 10A, b=B Ví dụ Cho biết cặp giá trị x y theo bảng sau: xi 0.65 0.75 0.85 0.95 1.15 yi 0.96 1.06 1.17 1.29 1.58 Lập công thức thực nghiệm y dạng aebx 55 SinhVienZone.com https://fb.com/sinhvienzonevn Giải Ta có: y = aebx Lấy Logarit số e hai vế: Lny = lna + bx Đặt Y = lny; A = lna; B = b; X = x Ta đưa dạng: Y = A + BX 0.65 0.75 0.85 0.95 1.15 Yi = lnyi -0.04 0.06 0.18 0.25 0.46 ΣXi ΣXi2 ΣXiYi ΣYi 4.35 3.93 0.92 0.89 ne C om X i = xi Zo Phương pháp bình phương bé nhất: A, B nghiệm hệ phương trình n nA + B ∑ X i en i =1 n n i =1 i =1 = n ∑ i=1 Yi n i =1 nh Vi A ∑ X i + B ∑ X i = ∑ X i Yi Si 5A + 4.35B =0.89 4.35A + 3.93B = 0.92 Giải hệ phương trình ta được: A = -.069, B = Suy ra: a = eA = ½, b = B =1 Vậy f(x) = e x 56 SinhVienZone.com https://fb.com/sinhvienzonevn CHƯƠNG VIII TÍNH GẦN ĐÚNG TÍCH PHÂN XÁC ĐỊNH 8.1 Giới thiệu Xét hàm số f(x) liên tục [a,b], xác định ngun hàm F(x) ta có cơng thức tính tích phân: b ∫ f (x )dx = F(b) − F(a ) a C om Nhưng đa số trường hợp ta không xác định nguyên hàm của, không xác định biểu thức f(x) mà nhận giá trị tạI điểm rời rạc Trong trường hợp ta sử dụng công thức gần sau để tính tích phân: ne - Cơng thức hình thang - Cơng thức Parabol 8.2 Cơng thức hình thang Zo - Công thức Newton _Cotet b a = x1 ∫ f ( x ) dx nh ∫ f ( x ) dx Vi en Chia [a, b] thành n đoạn với khoảng cách h = (b - a)/n theo điểm chia: x0=a, x1=a+h, , xn = b x0 =a x2 xn x1 x n −1 + ∫ f ( x ) dx + + ∫ f ( x ) dx =S Si S diện tích giới hạn đường cong f(x), x=a, x=b, trục x S1 f(x) S x0 =a x1 Sn xn-1 xn = b Xét [x0, x1], ta xem đường cong f(x) đường thẳng 57 SinhVienZone.com https://fb.com/sinhvienzonevn S1 ≈ S hthang = h ( y + y1 ) Tương tự: S2 ≈ h ( y1 + y ) … … b Vậy: ∫ f ( x ) dx ≈ h ( y + y + y + + y n − + y n ) C a om Sn ≈ h(y n −1 + y n ) ne 8.3 Công thức Parabol b x2 a x0 Zo Chia [a, b] thành 2n đoạn với khoảng cách h = (b - a)/2n theo điểm chia: x0=a, x1=a+h, , x2n = b x4 x 2n en ∫ f ( x )dx = ∫ f ( x )dx + ∫ f ( x )dx + + ∫ f ( x )dx x2 x 2n −2 nh Vi Xét [x0, x2] xem đường cong f(x) Parabol (nội suy bậc điểm x0, x1, x2) Si f (x) ≈ L (x) = y ( x − x )( x − x ) ( x − x1 )( x − x ) + y1 + ( x1 − x )( x1 − x ) ( x − x1 )( x − x ) + y2 x2 x2 x0 x0 ( x − x )( x − x1 ) ( x − x )( x − x1 ) ∫ f ( x )dx ≈ ∫ L (x )dx Thay x0 = a, x1 = a + h , x2 = a+2h vào, ta có: x2 h ∫ f ( x )dx ≈ ( y + y1 + y ) x0 Tương tự: 58 SinhVienZone.com https://fb.com/sinhvienzonevn x4 h ∫ f (x )dx ≈ ( y + y + y ) x2 x2n h f ( x )dx ≈ ( y n −2 + y n −1 + y ) x n −2 ∫ b h ∫ f ( x )dx ≈ ( y + y1 + y + + y 2n −2 + y 2n −1 + y 2n ) Vậy: a dx theo cách 1+ x2 Giải C Cách 1: J = arctgx 15 = arctg5 − Π / ≈ 0.588 om Ví dụ Tính J = ∫ Cách 2: chia [1, 5] thành đoạn (h=1) với điểm chia yi 1/2 1/5 1/10 1/17 1/26 Zo Cơng thức hình thang: ne xi en J ≈ (1/2 + 2/5 +2/10 +2/17 + 1/26) /2 ≈ 0.628 Cách 3: Công thức Parabol: Vi J ≈ (1/2 + 4/5 +2/10 +4/17 + 1/26) /3 ≈ 0.591 nh 8.4 Công thức Newton-Cotet Si Chia [a, b] thành n đoạn với khoảng cách h = (b - a)/n với x0=a; x1 = a + h , , xn = b Đặt x = a + (b - a)t => dx = (b - a) dt xi a a+h a + 2h b ti 1/n 2/n Khi đó: b 1 a 0 ∫ f ( x )dx = (b − a ) ∫ f (a + (b − a ) t )dt = (b − a ) ∫ Φ( t )dt Với φ(t)= f(a + (b - a)t Xem φ(t) hàm nội suy Lagrange n + điểm: t0, t1, , tn 59 SinhVienZone.com https://fb.com/sinhvienzonevn 2 ( t − )( t − ) ( t − 1) ( t − 0)( t − ) ( t − 1) n n n Φ( t ) ≈ L n ( t ) = y + y1 + 1 (− )(− ) (−1) ( − 0)( − ) ( − 1) n n n n n n n −1 ( t − 0)( t − ) ( t − ) n n + yn n −1 (1 − 0)(1 − ) (1 − ) n n Khi đó: 1 0 ∫ Φ( t )dt ≈ ∫ L n ( t )dt om i −1 i +1 ( t − 0)( t − ) ( t − )( t − ) ( t − 1) i n n n Đặt Pn = ∫ dt i i i i −1 i i +1 i ( − 0)( − ) ( − )( − ) ( − 1) n n n n n n n n b n a i =0 t −1 dt = − =∫ 0 −1 ; en P10 Zo Xét n = ( h = b-a ) ne i ∫ f ( x )dx ≈ (b − a )∑ y i p n Vậy: b P11 t−0 dt = 01− =∫ y y1 h + ) = ( y + y1 ) → Cơng thức hình thang 2 Vi ∫ f ( x )dx = (b − a )( C a Si nh Lưu ý: Giá trị Pni tra bảng sau: n Pni 1/2 1/2 1/6 4/6 1/6 1/8 3/8 3/8 1/8 9/71 16/45 2/15 16/45 9/70 19/288 25/95 25/144 25/144 25/95 19/288 … … … … … … … 60 SinhVienZone.com https://fb.com/sinhvienzonevn BÀI TẬP Khai báo (định nghĩa) hàm C để tính gần tích phân xác định f(x) tr ên [a, b] (đối kiểu trỏ hàm) a Dùng cơng thức hình thang b Dùng công thức Parabol Si nh Vi en Zo ne C om c Dùng công thức Newton-cotet Viết chương trình tính gần tích phân xác định [a, b] hàm f(x) cụ thể (sử dụng hàm khai báo câu 1) So sánh kết quả, nhận xét 61 SinhVienZone.com https://fb.com/sinhvienzonevn MỘT SỐ CHƯƠNG TRÌNH THAM KHẢO en Zo ne C # include # include "conio.h" # include "math.h" # define PI 3.14159 float d[10];int n; double g(double x) { return 1/(1+x*x); } double tp(double (*f)(double),float a,float b) { int n=100,i; float s,h=(b-a)/n; s=(f(a)+f(b))/2; for (i=1; i

Ngày đăng: 31/01/2020, 00:13

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w