Các thuật toán quan trọng

Một phần của tài liệu Xây dựng một hệ hỗ trợ dự báo thời tiết trong hoạt động đảm bảo bay (Trang 82)

I I . l G IỚ I T H I Ệ U N Ộ I S U Y S P L IN E

II.l.l. Bài toán nội suy tổng quát

1 ) Phát biểu bài toán

Bài toán nội suy tổng quát được đặt ra như sau:

Một h à m số y = f ( x ) c h ỉ x á c đ ịn h đ ư ợ c tại c á c đ iể m x0= a <x,< ... < xn

= b : Ta c ầ n tìm m ộ t b iể u th ứ c g iả i tíc h đ ể x á c đ ịn h g iá trị y = f ( x ) tạ i c á c đ iể m X e [a ,b ] s a o c h o tại c á c đ iể m Xj th ì h à m sô' trù n g v ớ i c á c g iá trị đ ã b iế t ( v ó i X Ể [a ,b ] ta g ọ i là n g o ạ i s u y )

Hàm f thườnơ là hàm thực nghiệm hoặc các hàm khó tính giá trị hàm số nên chí xác định ở các điếm xác định. Các điểm ị Xj } " i=(), gọi là các mốc nội suy.

2 ) Lược đồ giải quyết

Giả s ử V; = f(Xj) là giá trị hàm số đo được tại các mốc nội suy \ ị tương

ứns. Cho trước hàm phụ thuộc (n+1) tham số độc lập {Cj}"j=0 :

ộ(c0, c2 ... , cn, x) thoả mãn các điều kiện nhất định. Người ta xác định các giá trị C j cho biểu thức nội suy nhờ hệ phương trình.

ệ (c,„ ... c n, x ) = y k V k = 0 , l , . . . , n ( 1 )

Hệ phương trình (1) nói chung khó giải quyết nên người ta thường chọn (ị) là hàm tuyến tính các tham số C j, V j=0,...,n.

Xảy dựng một liệ hổ trợ dự báo thời tiết trong hoạt dộng đàm bào bay.

________________________________________________ Nguyễn Chí Trung

ộ (c0, c„ c„, X) = ck cpk(x) (2)

k m0

trong đó { cpk(x) }nk=0 là họ hàm độc lập tuyến tính cho trước thỏa mãn điều kiện định thức :

I cp;(xk) 1 ^ 0 (3)

Khi đó các C j trong (1) luôn giải được duy nhất một nghiệm.

Các hàm cpk(x) thường được chọn theo kinh nghiệm hoặc đơn giản là các hàm xk đế dễ tình toán.

Với các {Cj}nj=0 đã xác định nhờ điều kiện (1) . Hàm ệ (c„, C j , cn, x) được 2ỌÍ là hàm nội suy và dùng làm cồng thức để tính các giá trị f(Xj).

II.1.2. Đa thức nội suy Lagrange

Lagranse đã xét trường hợp (pk(x)=xk V k < n. khi đó hàm nội suy là đa thức bậc n. Trons trường hợp này định thức I (D|(xk) I thoả mãn (3)

Tuv vậv việc giải hệ (1) với n lớn vẫn khó khăn nên Lagrange đưa ra cách xâv dựne đơn giản như sau:

Ký hiệu Ln(x) là đa thức nội suy cần tìm. Ta xàv dựng hàm này dưới dạng:

Ln (X) = X yk L kn( x ) ( 4 )

¿=0

Trong đó Lkn(x) là đa thức bậc n có a nghiệm X = Xj, j * k và Lkn(x) = 1

hay L k n ( X j ) = ôkj V j < n. Dễ dàng thấy

Xây dựng một hệ hỗ trợ dự báo thời tiết trong hoạt động đảm bảo bay.

________________________________________________ Nguyễn Chí Trung

L‘"( x ) = r f e - * .) <5)

imk

như vậy Ln(x) là đa thức nội suy cần tìm. Ví dụ :

Nếu y=f(x) đo được tại x0và X ị tương ứng y0 = f(x0) , yj=f(Xj) thì:

L°,(x)= =

xữ - .t, X, - x0

Từ (5) ta có

L ( x ) = M l l i ọ ) + ỵ&ỊỊal = y o + i í £ l i ọ ) (x _ ,

x0 - x , x , - x 0 x0 - x ,

Dây là hàm bậc nhất có đồ thị qua các điểm (x0, y0), (x^yj).

n.1.3. Giới thiệu nội suy Spline

Khi có nhiều mốc nội suy, hàm nội suv sẽ là đa thức bậc cao, chúng thuộc loại không ổn định ( sai sỏ' đối số bé nhưng sai số hàm số lớn). Để khắc phục nhược điểm này người ta dùng các đa thức bậc thấp trên mỗi đoạn con và nối trơn đến mức cần thiết trên đoạn làm hàm nội suv, các hàm này có tên gọi là hàm Spline.

1 ) Hàm Spline

Định nghĩa: Hàm spline bậc (m,k) trên đoạn [a,b] là hàm số :

1. Tồn tại phân hoạch a = X ( , < X[ < ... < xn = b của đoạn [a,b] sao cho trên mỗi đoạn Aj = (X j, Xj+1) V j = 0,...,n-l, nó là đa thức bậc m.

2. Trèn [a,b] nó có đạo hàm cấp k liên tục. Từ định nghĩa ta có mệnh đề quan trọng sau đây:

Xảy dựng một hệ hỗ trợ dự báo thời tiết trong hoạt động đám báo bav.

________________________________________________ Nguyễn Chí Trung

Mệnh dẻ Ghép trơn:

Đẻ hàm Spline thoả mãn điêu kiện (2) thỉ chỉ cần đạo hàm các cấp < k ở hai phía của mỗi điểm chia Xị ( i = bằng nhau là đủ. Vỉ vậy nó còn gọi là hàm ghép trơn .

Tập hợp các hàm Spline bậc (m,k) trên đoạn [a,b] được ký hiệu là SPkm[a,b]. Nếu k=m-l ta gọi là Spline bậc m và ký hiệu là SPm[a?b].

2 ) Xây dựng hàm nội suy Spline

Giả sử y=f(x) đo được tại n + 1 mốc nội suy a = X(, <x,< x2< ... < xn = b,

y, = f (x i)-

Kiểu Sm e SPm[a.b] cũng với phân hoạch này, ta ký hiệu Pk là thu hẹp của Sm trên đoạn Ak = (xk,xk+1) ( k = 0 ... n-1).

Khi đó Pk là đa thức bậc m nèn cần xác định m+1 hệ số của đa thức. Vì có n đoạn nên số hệ cần tìm là n(m+l) ẩn số. Tại mỗi điểm ghép trơn Xị ( i— 1 1) ta có m phương trình:

Ptk)i.l(xi) = ^¡(X ị) V k = 0 , l , m - 1 (6)

vì có n-1 điểm ghép nẻn có (n-l)m phương trình và thèm n+1 phưcmg trình từ số liệu ban đầu.

Sm(Xj) =Yi V i= 0,..., n nên ta có (n+1) + (n-l)m phương trình.

Vậy còn ním+1) - (n+1) + (n-l)m = m-1 bậc tự do. Đế xác định Sm ta cần có thèm m-1 điều kiện nữa.

Trong thực hành ta có thể tìm Spline nội suy bậc m dựa trên mệnh đề sau.

Mệnh đề. Nội suy bậc m của hàm y=f(x) với các mốc nội suy a = x0 < Xị

< ... < xn = b; yk = f(xk) hoàn toàn xác định nếu biết đa thức nội suy của nó

Xảy dựng một hệ hổ trợ dự báo thời tiết trong hoạt động đảm bảo bay.

Nguyễn Chí Trung

Chứng minh mệnh đề này cho ta một phương pháp xây dựng Spline bậc m . Nếu biết thu hẹp P; của nội suy Spline trên Aj ta luôn có thể thác triển liên tiếp hàm nội suy ra các đoạn kề , chẳng hạn Aj+| theo phương pháp sau :

Bước ỉ: Tính các đạo hàm FKk)J(xJ+l) V k=l,..., n-1.

Bước 2 : Giải sử PJ+1(x) = ao + a,x + ... + dỤí". Lập hệ phương trình tuyến tính sau để xác định các 2Lị. r V PJ+1(XJ+1) = yj+i PJ+2(xj+2) = yj+2 P'J+1(xj+1) = p’j(xj+1) P ° V x j+1) = P(k)/XJ+1) P m+1)J+«('Vi) = plm+1)J(xJ+1) ( 7 )

Hệ phương trình (7) luôn giải được duv nhất nghiệm nhờ các phép thế lấy từ phương trình từ dưới lên.

Như vậy ta có thể lấy ra (m+1) mốc nội suy liên tiếp để xác định đa thức nội suv trên các mốc này và sau đó thác triển ra. Chú ý rằng, trong trường hợp này, hàm nội suy không xác định duy nhất.

3 ) Ví dụ : Nếu y=f(x) đo được:

Xi -1 0 1 2

y> 7 4 2 3

Ta tìm Spline bậc 2 trên s 1.2]. Vì m-1 =1 nên nếu có thêm một điểm nữa thì hàm nội suy hoàn toàn xác định. Do không biết điều kiện này, ta có thể xét 3 mốc đều và thu hẹp của Sọtrên [-1,1] là

Xây dựng một hệ hỗ trợ dự báo thời tiết trong hoạt động đảm bảo bay. ______________________________________ Nguvễn Chí Trung Giả sử p2(x) = ax2 + bx + c ta có với X = 1 : p,( 1 ) = a + b + c =2 với X = 2: P2(2) = 4a + 2b + c =3 p‘( l) = 2a + b = -1,5

Giải hệ này ta có a=2,5; b=-6,5; c =-2

Vậy nội suy Spline bậc 2 của y trên e 1,2] là

0,5x2 - 2,5x+ 4 : X e el,l]

s 2( x ) = •<

2,5x -6,5x-2 : X € (1,2]

Chú ý : nếu chọn đoạn [0.2] để xác định hàm S2(x) rồi sau đó thác triển thì ta 4ược hàm hoàn toàn khác.

II.2 T H U Ậ T T O Á N V Ẽ B Ả N Đ ổ H ÌN H T H È

n.2.1. Lựa chọn còng cụ vẽ

Để vẽ bản đồ hình thế ta phải tìm cách vẽ các đường cong đẳng trị trong mặt phảng sao cho chúng không giao nhau và tạo thành các vùng đẳng áp khác nhau trên bản đồ.

Trước hết là vấn đề vẽ một đường đảng áp.

Để vẽ một đường đảng áp ta có 2 lựa chọn sau đây:

- Xây dựng một hàm spline riẻng theo thuật toán xấp xi spline như đã trình bày ở trên.

- Dùng một công cụ có sẩn trong Delphi, đó là hàm Polybezier trong ngôn ngữ lập trình Delphi.

Hàm Polibezier có bản chất là một hàm nội suy Spline, tuy nhiên khi sử dụng nó người lập trình không cần quan tâm đến việc tìm các hệ số của các đa thức nội suy mà chỉ cần quan tâm đến các tham sô' truyền cho hàm. Ta quyết định sử dụng hàm Polibezier để vẽ bản đổ hình thế.

Xảy dựng một hệ hỗ trợ dự báo thời tiết trong hoạt dộng đàm bảo bay.

Nguyễn Chí Trưng

Hàm Polibezier có cú pháp như sau:

PolyBezier( [ Point(x1,y1), Point(x2,y2), Point(x3,y3), Point(x4,y4) ]);

để vẽ một đường cong bậc 3 với một số lượng ít nhất các tham số. Đườns cong Polybezier là tập hợp các đường cong thành phần được vẽ bởi các hàm Polibezier nói trên.

Mỗi một đường cong thành phần gồm 4 điểm A, B, c , D và được vẽ theo nguyên tắc :

- Đi qua 2 đầu mút Avà D,

- Nhận 2 điểm ở giữa B c là 2 điểm để uốn tron đường cong đó bằng cách nhận 2 đường thẳng AB và CD là 2 tiếp tuyến của đường cong. Hai điếm B và c gọi là 2 điểm kiểm soát của đường cong này.

Như vậy đường cong Polvbezier sẽ vẽ bằng một tập hợp các điểm mà nó đi qua và một tập hợp các điểm kiểm soát để uốn cong các đoạn nối. Ví dụ có 19 điểm thì các điểm mà đường cong đi qua có số thứ tự là 1, 4, 7, 10, 13, 16, và 19. các điểm có số thứ tự còn lại là các điểm kiểm soát.

Trong thực tế thì dữ liệu vào ( toạ độ các trạm quan trắc) của chúng ta không thoả mãn dữ liệu vào của đường cong Polybezier. Bởi vì tất cả các điểm của chúng ta đều phải thuộc đường cong chứ không gạt bất cứ điểm nào ra ngoài để làm điểm kiểm soát.

VI vậy, giải pháp đặt ra là chúng ta sẽ đặt tất các toạ độ trạm quan trắc là các điểm đầu mút của các đường cong thành phần, còn các điếm kiếm soát giữa 2 trạm liên tiếp sẽ được sinh ra bằng phương pháp nội suy. Việc sinh ra từng cặp 2 điểm kiểm soát giữa 2 trạm quan trắc phải đảm bảo tính trơn tương đối cúa đường cong tổng thể nhất là khi nó liên tục đổi chiều và hướng ở trên bản đồ. Ngoài ra tập hợp các đường cong Polibezier phải không được tự cắt và không được giao nhau. Như vây có 4 vấn đề cần phải giải quyết:

1. Chỉ ra một thứ tự các điểm để theo đó ta vẽ được một đường cong Polibezier .

Xảy dựng một hệ ¡lổ trợ dự báo thời tiết trong hoạt động đảm bảo bay.

Nguyễn C hí Trung 2. Các điếm kiểm soát được sinh ra trong từng đường cong thành phần nằm ở phía bèn trái hav phía bèn phải của đoạn thẳng nối hai đầu mút của đường cong ( theo hướng đi của đường cong đó).

3. Tại các điểm tiếp xúc nối các đường cong thành phần thì đoạn nối phải đảm bảo được tính trơn cục bộ để đường cong tổng thể không bị gãy.

4. Tập hợp các đường cong Polibezier phải không được cất nhau. Mỗi một vấn đề được giải quyết bằng một thuật toán và lần lượt được trình bởi các mục dưới đây.

n.2.2. Thuật toán sáp xếp các điểm để vẽ

Giả sử ta đã có một tập các điểm đẳng trị P[, Pi, Khi đó ta phải sấp xếp lại dãy điểm trên thành dãy điểm Pu, pi2, ...p,n để theo thứ tự đó ta vẽ được một đường cong Polibezier.

Bước 1 : Tìm một đa giác lồi không tự cắt nhỏ nhất nhận tất cả các điểm còn lại nàm trong miền của đa giác đó.

Để đơn giản ta giả sử đa giác này là Pị, P2, ....,Pk

Bước 2 : Chọn 1 điểm bên trái nhất ( hoặc bên phải nhất) làm điểm xuất phát. Đổng thời chọn 1 cạnh kề với nó làm cạnh bắt đầu của hướng đi.

Khổng mất tính tổng quát, ta có thể giả sử đỉnh xuất phát là Pị và chọn cạnh xuất phát là PịP2. Để biểu diễn canh, đổng thời biểu diễn cả hướng đi của nó ta ký hiệu là P[->Pt

Bước 3 : Xét cạnh Pị -> P2 :

Trên cạnh p t P2 ta tìm một đỉnh Pk nào đó sao cho . pk gần cạnh P[ -> P2nhất

. Pk gần đỉnh ?ị hơn P2.

(a) Nếu tổn tại Pk thì ta thay đoạn Pi bằng 2 đoạn P ^ P kvà pk-> p 2.

Xáv dựng một hệ hổ trợ dự báo thời tiết trong hoạt động đảm bảo bay.

_________________________________________________Nguyễn C hí Trung

Bước 4 Đối với trường hợp (a) ta xét cạnh Pk -> P2 , đối với trường hợp (b) ta xét cạnh P2 -> p3 giống như xét cạnh P[-> P2.

Cứ tiếp tục quá trình đó cho đến khi tập n điểm được xét xong. Thứ tự các điểm tìm được trên đường đi chính là thứ tự điểm cần tìm.

Xảy dipĩg một hệ hỗ trợ dự báo thời tiết trong hoạt động đảm bảo bay.

________________________________________________ Nguyễn C hí Trung

- Xác định đa giác lồi nhỏ nhất,

- Điểm xuất là 1. Đa giác ban đầu là l - > 2 - > 3 - > 4 - > 5 .

- Quá trình thay thế các cạnh trên hướng đi thu được dãy điểm theo thứ tự slà: l - > 8 - > 2 - > 7 - > 3 - > 4 - ^ 6 - > 5 . Và như vậy đường cong theo thứ tự đó nhu hình IV .l.d .

IL2.3. Thuật toán sinh các điểm kiểm soát

Chúng ta sẽ tạo ra các điểm kiểm soát bằng cách theo dõi sự đổi chiều của đường cong, xem hình hình IV.2. Các điểm kiểm soát sẽ được sinh bằng thuật toán Heuristic theo các nhận xét sau đây:

Khi có 3 điểm liên tiếp trên đường cong đi ngược chiều kim đồng hổ thì đường cong nhận 2 điểm đi trước làm hai đầu mút sẽ nằm bên phải 4oạn thẳng nối 2 điểm đó. Ví dụ các đường cong PjP^, P4P5, P5P6,

p 1 3 ^ 14» p I4P 1

Ngược lại , nếu 3 điểm liên tiếp trên đường cong đi cùng chiều kim đồng hổ thì đường cong nhận 2 điểm đi trước làm hai đầu mút sẽ nằm bên trái đoạn thẳng nối 2 điểm đó. Ví dụ các đường cong psP9» PyP 10

Trong trường hợp đường cong đột ngột đổi chiều thì điểm kiểm soát được sinh ra 2 bên đoạn thẳng được xét.

Cụ thể như sau:

Nếu đường cong đổi từ ngược chiều sang cùng chiều thì đường cong thành phần uốn từ phải sang trái, nghĩa là điểm kiểm soát thứ nhất bên phải, điểm kiểm soát thứ hai bên trái đoạn đang xét.

Ví dụ các đường cong P2P3, P7P8, P11P12

Nếu đưcmg cong đổi từ cùng chiều sang ngược chiều thì đường cong thành phần uốn từ trái sang phải, nghĩa là điểm kiểm soát thứ nhất bên trái, điểm kiểm soát thứ hai bên phải đoạn đang x é t . Ví dụ các đường cong

Ví dụ các đường cong P3P4, PịoPn, P12P13

Nhận xét:

Khoảng cách giữa các điểm kiểm soát với đoạn thẳng nối 2 đầu mút của đường cong sẽ quyết định độ cong cục bộ và ảnh hưởng đến độ cong tổng thể của toàn bộ đường cong. Khoảng cách này được xác định căn cứ trên hai yếu tố:

- Khoảng cách giữa hai đầu mút và

- Góc tạo bởi đoạn thẳng đang xét với đoạn thẳng tiếp theo làm đổi chiều đường cong.

Một việc phải làm trước khi tiến hành vẽ theo cách thức trên là ta xét hết các trường hợp đặc biệt. Trước hết các điểm phải được sinh ra với số lượng đủ để vẽ một đường cong Polybezier. Nếu 2 trạm quan trắc ở xa nhau thì có thể có các trạm quan trắc ảo được tạo ra đặt ở giữa với các ước lượng cho phép. Việc tính toán số đo góc hoặc khoảng cách điểm là đơn giản. Vậy , ở đây, chúng ta chỉ quan tâm tới thuật toán nhận biết sự đổi hướng của đường cong.

Xảy dựng một hệ hổ trợ dự báo thời tiết trong hoạt động đảm bảo bay.

Xảy dựng một hệ hỏ trợ dự báo thời tiết trong hoạt động đắm báo bay.

________________________________________________Nguyễn Chí Trung

1 ) Thuật toán nhận biết sự đổi hướng của đường cong

Thuật toán cần giải quyết tương đương với thuật toán kiểm tra 3 điểm P0 , Pị , p2 trong mặt phẳng, theo thứ tự đó sẽ đi cùng chiều hay ngược chiều kim đồng hổ.

Giả sử ta có 3 điểm : p0 (x0,y0) , Pj ( x ^ ) , P2 (x2,y2) Ta xây dựng hàm xét dấu

sign(P0,P1,P2) =

Đ ặ t:

dXị := Pị.x - p dx2 := p:.x - p

l nếu A,B, c ngược chiều kim đồng hổ -1 nếu A,B,C cùng chiều kim đồng hồ

0 nếu A,B,C thẳng hàng

,.x ; dyt :=p,.y- p0.y; ị.x ;d y 2 := p2.y - Pị.y; L p2 dy2 / .1... .... p M . ... - ... D. ĩ. '< » 0 / / ^ dx, <---► d X j Hình IV.2. Chúng ta lấy hình IV.2 để xem x é t .

Để xét được dấu , đầu tiên ta giả sử tất cả các giá trị dx1? dx2 , dy!, dy2

Một phần của tài liệu Xây dựng một hệ hỗ trợ dự báo thời tiết trong hoạt động đảm bảo bay (Trang 82)

Tải bản đầy đủ (PDF)

(112 trang)