Cơ sở và các thuật toán trong Khớp đường cong bằng phương pháp bình phương nhỏ nhất
Lời nói đầu Ngày giới đà kỷ nguyên bùng nổ thông tin Trong thời đại ngày khoa học kỹ thuật ngày đợc ứng dụng rộng rÃi khắp nơi mäi lÜnh vùc, mäi nghµnh nghỊ vµ tin häc phát triển không ngừng giây, phút.Máy tính điện tử đơc sử dụng ,khai thác triệt để công việc , nh hàng không , quân , ngân hàng ,đo lờng , tính toán , đợc sử dụng để giải toán từ đơn giản đến phức tạp.Đề tài thực tập tốt nghiệp đựơc áp dụng để thực , tên đề tài: Cài đặt toán:"Khớp đờng cong" phơng pháp bình phơng nhỏ Để hoàn thành đề tài tốt nghiệp này, bên cạnh nỗ lực thân em nhận đợc giúp quý báu thầy, cô bạn Em xin chân thành cảm ơn thầy Dơng Thăng Long đà tận tình hớng dẫn em suốt trình thực đề tài Cảm ơn khoa Công nghệ tin học đà tạo điều kiện giúp đỡ em suốt trình học tập trờng thầy cô đà hết lòng truyền đạt cho em kiến thức kinh nghiệm quý giá Cũng nh tất bạn đà trao đổi giúp đỡ trình học tập Cơ sở thuật toán đề tài "Khớp đờng cong" phơng pháp bình phơng nhỏ Cơ sở: Khi giá trị liệu không xác, thờng ta cần phải tởng tợng hình dạng hàm khớp liệu Hàm cã thĨ phơ thc mét tham sè f(x) = f(c1,c2 , cM, x) thủ tục điều chỉnh đờng cong tìm cách chọn tham số khớp với giá trị quan sát đợc điểm ®· cho NÕu hµm lµ mét ®a thøc (víi tham số hệ số) giá trị xác phép nội suy Nhng ta xét hàm tổng quát liệu không Để giản đơn hoá vấn đề, ta tập trung vào việc nối hàm tổ hợp tuyến tính hàm đơn giản hơn, với tham số ẩn hệ số: f(x) = c1f1(x) + c2f2(x) + +cMfM(x) Hàm bao hàm hầu hết hàm mà ta quan tâm Sau nghiên cứu xong trờng hợp này, ta xét đến hàm tổng quát Một phổ thông để đo mức độ tốt hàm nối tiêu chuẩn bình phơng tổng quát sai số đợc tính cách thêm vào bình phơng sai số điểm quan sát đợc E = Z (f(xj) - ỵ)2 j N Đây phép đo tự nhiên: bình phơng đợc thực để làm khử ớc lợc sai số với số hiệu khác Hiển nhiên, điều ng ời ta mong muốn tìm phép chọn tham số cho tối thiểu hoá E Điều khiến phép chọn đợc tính có hiệu qủa; phơng pháp bình phơng nhỏ nhất, phơng pháp nh định nghĩa Để đơn giản hoá đạo hàm, xét trờng hợp M=2, N=3 Giả sử có ba điểm x1, x2,x3 giá trị tơng ứng y1,y2,y3 thoả hàm cã d¹ng: f(x) = (c1f1(x1) + c2f2(x1) - y1)2 + (c1f1(x2) + c2f 2(x2) - y2)2 + (c1f1(x3) + c2f2(x3) - y3)2 Để tìm phép chọn c1 c2 chỏ tối tiểu hoá số này, đơn gian cần gán zero đạo hàm dE/dc1 dE/dc2 Víi c1 ta cã : dE/dc1 = 2(c1f1(x1) + c2f 2(x1) - y1)2 f1(x1) + (c1f1(x2) + c2f 2(x2) - y2)2 f2(x2) + (c1f1(x3) + c2f2(x3) - y3)2 f3(x3) Việc gán đạo hàm zero cho phơng trình có biến c1 c2 phải thoả (f1(x1), "hằng số" có trị biết trớc) c1(f1(x1)f1(x1) + f1(x2)f1(x2) + (f1(x3)f1(x3) + c2(f2(x1)f1(x1) + (f2(x2)f1(x2) + (f2(x3)f1(x3)) = y1f1 (x1) + y2f1 (x2) + y3f1 (x3) Ta cã phơng trình tơng tự, gán đạo hàm dE/dc2 zero Giả sử đa thức xấp xỉ bậc m f lµ P(x) = Σj=0 Cjx víi Cj (j = O1m) xác định từ hệ Trong k = xγ ∆0C0 +∆1C1 + + ∆mCm = t0 ∆1C0 +∆2C1 + + ∆m+1Cm = t1 ∆mC0 +∆m+1C1 + + ∆2mCm = tm (k= 0,2m) ti = Σ xγ f (xγ) (i = o1m) víi Cj (j = 0,m) xác định từ hệ phơng trình Các thuật toán dùng chơng trình Cài đặt toán: "Khớp đờng cong" phơng pháp bình phơng nhỏ 2.1 Nhập liệu + nhập từ file: Nhập toạ độ xi , yi vào máy toạ độ, số điểm n, bậc m đa thức - hỏi xem có ghi vào file không hỏi nhập tên tên file ghi liệu vào file + nhập từ file: yêu cầu nhập vào tên file, đọc file Read (f,n,m) nạp qt từ file vào hai mảng toạ độ x, toạ độ y For i = 1-> n Read (f, toạ độ x[i], toạ độ y[i]) 2.2 Tính mảng -Tính toán hệ sè cđa m¶ng a[i] [j], b[i] theo hƯ pt (1) 2.3.Dùng phơng pháp gauss thuật toán sytru giải hệ pt (1) Thuật toán gauss (Đa ma trận dạng tam giác ) Gauss Input n, (ại)1n; (bi)1n IER = k= 1, 2, ,n i= k + 1, , n no akk ≠0 yes Pi=aik/akk j= k + 1, , n aỵj = piakj b i = b i - pib k Call Sytru Print (xi)1n End IER = thuật toán Sytru (giải hệ phơng trình dạng tam giác) Procedure Input n, {bi}1n, aij (1 i ≤ j ≤ n) IER = ann ≠ no xn = bn yes / ann i = n-1, n-2, ,1 S = bi j = i + 1, , n S = S - aijxij no aij ≠ ij ≠ a0 yes xi = S/aij 2.4 X©y dựng hàm tính giá trị Return IRE = 2.4.1 Hµm tÝnh luü thõa Fuction luü thõa (x: Real; n: integer): real S : Real i : integer S=1 For i = → n S = S*x Return S.; 2.4.2 Xây dựng hàm tính f(x) For i = m → S = S + C (i + 1) + luỹ thừa (x, i) Vẽ đồ thị 3.1 T×m xmin , xmax , ymin , ymax ,trong toàn đồ thị điểm nhập vào xác định kx , xy Kx = (Lmax - Lmin)/ (xmax - xmin) K = (Hmax - H min) y (ymax - ymin) vẽ đồ thị từ điểm x1-> x2 , x = x1, i=0 while x