1. Trang chủ
  2. » Luận Văn - Báo Cáo

ỨNG DỤNG VECTO VÀO GIẢI QUYẾT MỘT SỐ BÀI TOÁN HÌNH HỌC TRONG TIN HỌC

25 1,8K 5

Đ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

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 504,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

SỞ GIÁO DỤC VÀ ĐÀO TẠO NAM ĐỊNH TRƯỜNG TRUNG HỌC PHỔ THÔNG CHUYÊN LÊ HỒNG PHONGNAM ĐỊNH SÁNG KIẾN DỰ THI CẤP TỈNH BÁO CÁO SÁNG KIẾN ỨNG DỤNG VECTO VÀO GIẢI QUYẾT MỘT SỐ BÀI TOÁN HÌNH HỌC

Trang 1

SỞ GIÁO DỤC VÀ ĐÀO TẠO NAM ĐỊNH TRƯỜNG TRUNG HỌC PHỔ THÔNG CHUYÊN LÊ HỒNG PHONG

NAM ĐỊNH

SÁNG KIẾN DỰ THI CẤP TỈNH

BÁO CÁO SÁNG KIẾN

ỨNG DỤNG VECTO VÀO GIẢI QUYẾT MỘT SỐ BÀI TOÁN HÌNH HỌC

TRONG TIN HỌC

Tác giả: Đỗ Thị Minh Hường Trình độ chuyên môn: Thạc sỹ Chức vụ: giáo viên

Nơi công tác: trường trung học phổ thông chuyên

Lê Hồng Phong Nam định

Nam định, ngày 15 tháng 5 năm 2015

Trang 2

Chức vụ công tác: giáo viên

Nơi làm việc: trường THPT chuyên Lê Hồng Phong

Địa chỉ liên hệ: 9/581 đường Trường Chinh, phường Hạ Long thành phố Nam

Định

Điện thoại: 0983.846.411

5 Đơn vị áp dụng sáng kiến:

Tên đơn vị: trường THPT chuyên Lê Hồng Phong

Địa chỉ: 76 Vị Xuyên, thành phố Nam Định

Điện thoại: 0350.3640.297

Trang 3

BÁO CÁO SÁNG KIẾN

I ĐIỀU KIỆN HOÀN CẢNH TẠO RA SÁNG KIẾN

Trong toán học có rất nhiều bài toán nếu dùng các giải pháp thôngthường để giải quyết có thể rất dài và phức tạp, nhưng khi dùng vecto vào giảiquyết thì vấn đề trở nên đơn giản và rất ngắn gọn Chính vì vậy khi dạychuyên đề hình học cho học sinh khối chuyên tin tôi thiết nghĩ tại sao khôngdùng vecto vào giải quyết cho lập trình một số bài toán hình học cho học sinh.Những vấn đề này trong toán học các em đều được học trong chương trìnhphổ thông, nếu giúp các em có thể áp dụng những vấn đề này vào tin học thìchắc chắn việc đưa ra thuật toán và cách giải cho nhiều bài toán sẽ trực quan

và cài đặt sẽ dễ dàng thuận lợi

II MÔ TẢ GIẢI PHÁP

1 Mô tả giải pháp trước khi tạo ra sáng kiến

Khi dạy cho học sinh khối chuyên tin tôi thấy khả năng về toán của các

em hầu hết đều không tốt và đặc biệt là chưa có phương pháp học kế thừanhững đơn vị kiến thức đã học Tất cả những vấn đề giáo viên đưa ra hoặc đọctài liệu hầu như các em đều cho là mới tinh và chưa biết tìm hiểu những vấn

đề này được xây dựng và kế thừa từ những đơn vị kiến thức nào đã học để suyluận và từ đó có thể đưa ra những vấn đề mới được tổng hợp từ những vấn đề

đã biết Chính vì vậy, tôi xây dựng hệ thống chuyên đề về vecto được biếttrong toán học và phương pháp biểu biễn trong tin học các yếu tố hình họctrong lập trình dưới dạng kế thừa các đơn vị kiến thức đã biết, giúp học sinh

có thể đọc, hiểu và đặc biệt là làm quen phương pháp biết kế thừa những kiếnthức cũ để xây dựng lý thuyết mới và đặc biệt là giúp các em có một phươngpháp giải quyết một số bài toán hình học trong kì thi học sinh giỏi các cấp

2 Mô tả giải pháp sau khi có sáng kiến

Trang 4

Hình học đối với giác quan của con người thì khá quen thuộc và dễ dàng.Nhưng hình học đối với máy tính thì lại là một vấn đề khác Nhiều bài toán ta

có thể giải ngay lập tức bằng cách “nhìn vào hình vẽ ta thấy”, nhưng để thểhiện trên máy tính thì cần những chương trình không đơn giản chút nào

Các giải thuật hình học thường là các giải thuật đẹp và đôi khi là rất bấtngờ Thực vậy, những tưởng có những bài toán ta phải giải quyết với chi phíthuật toán rất lớn (đôi khi không thể chấp nhận được), nhưng nhờ vào chínhnhững tính chất đặc biệt của hình học mà ta lại có thể giải quyết nó một cách

2 Tọa độ

- Trong mặt phẳng tọa độ Oxy, cho hai vectơ u x y u; u ; v x y v; v và k là một

số thực Khi đó ta có các kết quả trong toán học (hình tọa độ trong mặt phẳng

Trang 5

+) Độ dài đoạn thẳng AB = x Ax B2y Ay B2

- Hai phép toán đối với hai vecto

+) Tích chấm (tích vô hướng) của hai vecto: Cho hai vecto u và v, tích vôhướng của hai vecto u và v, được ký hiệu là u.v được tính bằng tích độ dàicủa hai vecto u và v nhân với cosin của góc xen giữa hai vecto đó (góc này làgóc không định hướng có số đo nằm trong đoạn từ 0 đến )

 

u v u v c  u v 

Nếu tọa độ của ux u; y ; uvx v; y v thì u v x x   u. vy y u. v

Từ công thức này ta có thể tính được cosin của góc tạo bởi giữa hai vecto u

+) Tích chéo của hai vecto: Cho hai vecto u và v, tích chéo của hai vecto u

v, được ký hiệu là u v được tính bằng tích độ dài của hai vecto u và v

nhân với sin của góc xen giữa hai vecto đó (góc này là góc định hướng có số

đo nằm trong đoạn từ - đến )

Trang 6

+) Ứng dụng của tích chéo trong khảo sát chiều:

Giả sử ta đi từ điểm A sang điểm B theo một đường thẳng và đi tiếpsang C theo đường thẳng, khi đó ta xét: T =              AB BC                                            AB BC .sin 

, trong đó

 là góc định hướng giữa hai vecto AB

BC

Ta thấy dấu của T phụ thuộc vào dấu của góc 

- Nếu T < 0 thì chỗ rẽ tại B là “rẽ phải”

- Nếu T > 0 thì chỗ rẽ tại B là “rẽ trái”

Suy ra tọa độ điểm M đối với hệ toạ độ (O;  i j ; ) là M(ax+by+p; bx+dy+q)

Khi đó ta có công thức đổi tọa độ như sau:

Giả sử trong hệ tọa độ (O;  i j ; ) điểm O’(p; q); i'=(a; b);j'=(c; d) và M(

;

x y)

Trang 7

Trong hệ tọa độ (O’;  i ' ; 'j ) điểm M(x; y) và thì . .

4 Xây dựng công thức biến đổi tọa độ

Trong hình học phẳng có các phép biến hình nhằm biến đổi từ hình nàysang hình khác đồng dạng với nó Các phép biến hình này rất quan trọng trongviệc thiết kể các bài toán liên quan đến hình trong tin học Ở đây ta nghiêncứu cách xây dựng các công thức biến đổi tọa độ của các phép biến hình này

Trong hệ tọa độ đề các (O;  i j ; ), chọn điểm I(1; 0) và J(0; 1) Với phépđồng dạng f, ta thực hiện f trên ba điểm O, I, J để nhận được ba ảnh tương ứngcủa chúng theo thứ tự là O’, I’, J’ Từ đó xác định tọa độ điểm O’(p; q); vecto

Vì đây là phép biến đổi đồng dạng nên điểm M có tọa độ (x; y) đối với

hệ tọa độ (O;  i j ; ) thì nó cũng có tọa độ (x; y) đối với hệ (O’;  i ' ; 'j )

4.1 Phép quay

Xét phép quay tâm O góc  Phép quay này giữ bất biến điểm O tức làO’(0;0), điểm I(1; 0) biến thành I’(cos; sin), điểm J(0; 1) biến thành J’(-sin; cos)

Khi đó ta có : O’(0;0) ; O I ' '= (cos; sin); O J ' '=(- sin; cos)

Áp dụng công thức đổi trục toạ độ ở trên ta có:

Trang 8

Xét phép tịnh tiến theo vecto (a; b) Phép tịnh tiến này biến điểm O(0;0) thành điểm O’(a; b), điểm I(1; 0) biến thành điểm I’(a+ 1; b) và điểm J(0;1)biến thành điểm J’(a; b+1)

- Dạng đường thẳng có hệ số góc: phương tình đường thẳng có dạng y

= ax + b Do đó để biểu diễn đường thẳng này ta chỉ cần quan tâm tới cặp 2

số a và b

- Dạng phương trình tổng quát ax + by + c = 0 Để biểu diễn dưới dạngnày đường thẳng được đặc trưng bởi bộ 3 hệ số a, b, c trong đó vecto pháptuyến là n = (a; b)

- Dạng ax + by = c - một dạng của tổng quát đã được biến đổi Để biểudiễn ở dạng này ta chỉ cần quan tâm tới một vecto pháp tuyến n = (a; b) vàmột điểm P(x; y) thuộc đường thẳng Khi đó ta có thể viết được phương trìnhđường thẳng bằng cách sau: n OP . = (a; b).(x; y) = ax+by = c

- Dạng tham số: ta chỉ cần quan tâm tới một vecto chỉ phương u

=(a; b) và một điểm P là điểm thuộc đường thẳng

Việc chuyển đổi từ phương trình dạng tham số sang tổng quát hoặcngược lại trong toán học đã biết

5.2 Đoạn thẳng:

Để biểu diễn đoạn thẳng ta quan tâm tới hai đầu mút của đoạn

Trang 9

5.3 Tia:

Để biểu diễn tia Ax, ta quan tâm tới gốc A và 1 vecto chỉ hướng của tia hoặc có thể biểu diễn bởi gốc A và một điểm B nằm trên tia

5.4 Đa giác:

Đa giác là một đường gấp khúc khép kín

Để biểu diễn đa giác trên máy tính ta lưu một dãy các đỉnh liên tiếpnhau

B Một số bài toán cơ bản

1 Cài đặt một số phép toán cơ bản trên vecto

Const eps : real=1e-3;

Phép toán tích chéo của hai

vecto -Operator ><(const u, v : fload):fload;

Begin

Result:=u.x*v.y – u.y*v.x;

End;

Kiểm tra hai số thực bằng nhau

Function realEq(const a, b: real):boolean;

Trang 10

Function EqPoint(const A, B: TPoint):boolean;

Begin

EqPoint:=realEq(A.x,B.x) and realEq(A.y,B.y);

End;

2.Biểu diễn tuyến tính

Bài toán 1: Cho ba vecto a b  , và c Tìm cặp số (p; q) để cp a q b. ?

thỏa mãn yêu cầu bài toán

+) D = 0 , khi đó hai vecto a b  , cùng phương

- Dp= Dq = 0 thì hệ vô số nghiệm, khi đó c cùng phương với cả hai vecto

,

a b  Khi đó hệ có nghiệm (p; q) =(Nan; Nan)

Trang 11

- Dp  0 hoặc Dq  0 thì hệ vô nghiệm, khi đó c không cùng phương với hai vecto a b  , Khi đó hệ có nghiệm (p; q) = (Inf; Inf)

3 Tìm giao điểm của hai đường thẳng

Bài toán 2: Trên mặt phẳng với hệ tọa đồ Đề các vuông góc Oxy cho hai

đường thẳng có phương trình tổng quát là (d1): A1x + B1y + C1 = 0 và (d2):

A2x + B2y + C2 = 0

Hãy xác định giao điểm của hai đường thẳng trên?

Giải quyết

Đặt aA A1 ; 2 ; bB1 ; B ; 2 cC1 ; C 2

Yêu cầu bài toán trở thành tìm cách biểu diễn tuyến tính của vecto c

qua tổ hợp hai vecto, tức là tìm cặp số (x; y) để c x a y b  

Khi đó ta lại áp dụng bài toán 1 để giải quyết và có 3 trường hợp ứng với 3 khả năng của 2 đường thẳng d1 và d2

4 Tìm giao điểm của hai đoạn thẳng

Bài toán 3: Cho bốn điểm A, B, C, D Hãy xác định xem hai đoạn thẳng AB

và CD có cắt nhau không? Nếu có hãy cho biết tọa độ giao điểm của chúng

Giải quyết

Để giải quyết vấn đề này ta có thể làm như sau:

- Viết phương trình tổng quát của hai đường thẳng AB và CD

- Tìm giao điểm M của hai đường thẳng

- Kiểm tra M có nằm trên đoạn AB và CD không

Trang 12

Một cách giải quyết khác có thể hiệu quả hơn là: Nếu hai đoạn thẳng

AB và CD cắt nhau tại M thì sẽ tồn tại duy nhất một cặp số (p; q) thuộc đoạn [0; 1] sao cho:

5 Tìm giao điểm giữa một đoạn thẳng và một tia

Bài toán 4: Cho bốn điểm A, B, C, D Xác định xem đoạn thẳng AB có cắt tia

CD không? Nếu có hãy cho biết tọa độ giao điểm

Giải quyết

Nếu đoạn thẳng AB và tia CD cắt nhau tại điểm M thì sẽ tồn tại một cặp

số (p; q) duy nhất,với p [0;1] và q[0;+) sao cho

- Diện tích tam giác: Ta có thể dùng một số công thức sau:

+) Tính theo đường cao và cạnh đáy: .

+) Tính theo ba cạnh (công thức Herong):

Sp p a p b p c         , với p là nửa chu vi

+) Tính theo tích chéo: SAB AC2

 

(7a)

Trang 13

+)Với tọa độ ba đỉnh A(xA; yA); B(xB; yB); C(xC; yC) thì công thức (7a)

có thể viết theo tọa độ        

7.1 Diện tích đa giác

Bài toán 5: Trên mặt phẳng với hệ tọa độ Đêcác vuông góc, cho đa giác

P= P1P2…Pn , trong đó các điểm Pi có tọa độ tương ứng là (xi; yi) Tính diện tích đa giác P?

Giải quyết

* Ta bổ sung thêm điểm P0 ≡ Pn và điểm Pn+1 ≡ P1

Khi diện tích đa giác P được tính bằng công thức

Dựa vào hình vẽ ta thấy S SOP P1 2  SOP P2 3 SOP P3 4 SOP P4 1

Mà theo phần trên (diện tích tam giác) ta thấy

+) Quay vecto OP 1 tới vecto OP 2 là hướng thuận nên theo công thức (7a) thì

1 2

OP P

S mang dấu âm

+) Tương tự như vậy SOP P2 3 mang dấu âm con SOP P3 4 và SOP P4 1 mang dấu dương

Khi đó, ta thấy diện tích đa giác là

Trang 14

- Khi các đỉnh của đa giác được đánh theo chiều kim đồng hồ thì bằng lậpluận tương tự ta cũng có công thức tính diện tích đa giác là:

1 1

1 2

1

1 2

* Ta sẽ chứng minh công thức tính diện tích đa giác theo tọa độ các đỉnh

Vì điểm Pi có tọa độ tương ứng là (xi; yi) nên các vecto OP i

có tọa độ tươngứng là (xi ; yi), dựa vào công thức tích chéo, ta có

7.2 Kiểm tra điểm nằm trong đa giác

Bài toán 6: Trên mặt phẳng với hệ tọa độ Đêcác vuông góc, cho đa giác

P= P1P2…Pn và một điểm A hãy cho biết điểm A có nằm trong đa giác haykhông?

Trang 15

là: sinh ngẫu nhiên một tia, nếu tia đó đi qua một đỉnh của đa giác thì sinhngẫu nhiên một tia khác và thử lại.

+) Nếu tia AB cắt cạnh đa giác một số lẻ lần thì điểm A nằm trong đa giác,ngược lại thì điểm A nằm ngoài đa giác

C Bài tập

Bài 1: Triangle and point

Cho tam giác ABC và 1 điểm M không nằm trên cạnh của tam giác

Yêu cầu: Hãy viết chương trình tính số lớn nhất R sao cho vòng tròn tâm M,

bán kính R không cắt bất cứ cạnh nào và không chứa tam giác ABC

Input: Ghi trong file TRIANGLE.INP

- Dòng đầu tiên ghi 6 số thực là toạ độ ba đỉnh của tam giác Ax Ay Bx

By Cx Cy

- Dòng thứ hai ghi toạ độ điểm M : Mx My

Các số thực được viết với 1 chữ số thập phân, cách nhau bởi 1 dấu cách

Output: ghi ra file TRIANGLE.OUT gồm 1 số duy nhất R làm tròn đến 1

chữ số sau dấu phảy

Ví dụ

Thuật toán

Kiểm tra xem điểm M nằm ở đâu

+) Điểm M nằm trong tam giác thì R = min(d(M, AB), d(M, AC), d(M, BC))+) Nếu điểm M nằm ngoài tam giác thì có khả năng sau

TRIANGLE.INP 0.2 1.1 0.0 0.3 2.0 0.0

4.0 0.0

TRIANGLE.OUT 2.0

Trang 16

- Ở vị trí M1 bị giới hạn bởi cạnh AB kéo dài và tia vuông góc với BC tại B: thì R = M1B

- Ở vị trí M2 bị giới hạn bởi hai tia tia thứ nhất vuông góc với BC tại B và tia thứ hai vuông góc với BC tại C: thì R = d(M2, BC)

- Ở vị trí M3 bị giới hạn bởi cạnh AC kéo dài và tia vuông góc với BC tại C: thì R = M3C

Tương tự như vậy với hai trường hợp còn lại

Trang 17

a1:=x2-x1;b1:=y2-y1;c1:=a1*xm+b1*ym; a2:=b1;b2:=-a1;c2:=a2*x1+b2*y1;

Trang 19

Khu vườn của Phú Ông

Yêu cầu: Cho d là độ dài sợi dây và tọa độ tâm của n cây, các cây có bán

kính r Hãy giúp Phú Ông tìm cách chọn để giữ lại nhiều cây nhất

Dữ liệu: Vào từ thiết bị vào chuẩn: Dòng đầu tiên ghi số nguyên dương K là

số lượng bộ dữ liệu Tiếp đến là K nhóm dòng, mỗi nhóm tương ứng với một

bộ dữ liệu có cấu trúc như sau:

- Dòng thứ nhất ghi ba số nguyên dương d, n và r (d  109 ; r  100)

- n dòng tiếp theo, dòng thứ i chứa hai số nguyên xi, yi (|xi|, |yi|  1000)

Trang 20

Dữ liệu đảm bảo các hình tròn không giao nhau Các số trên cùng một dòngđược ghi cách nhau ít nhất một dấu cách.

Kết quả: Ghi ra thiết bị ra chuẩn gồm K dòng, mỗi dòng ghi một số nguyên là

số lượng cây mà Phú Ông có thể giữ lại được ứng với bộ dữ liệu trong file dữliệu vào

Trang 21

end;

var tree, p :array[1 MAX]of Point;

d :array[1 MAX]of longint; nTree, nTest, n :longint;

Trang 22

if abs(t1) < eps then begin

if (Dist(p[i], p1) > eps) and (Dist(p[i],p2) > eps) then begin

if Dist(p[i], p1) + Dist(p1, p2) Dist(p[i], p2) < eps then exit(false);

if Dist(p[i], p2) + Dist(p1, p2) Dist(p[i], p1) < eps then exit(false);

Trang 23

if i > nTree then sol

else for j:=0 to 1 do begin

d[i]:=j;

bk(i+1);

Trang 24

III HIỆU QUẢ DO SÁNG KIẾN ĐEM LẠI

1 Hiệu quả kinh tế

2 Hiệu quả về mặt xã hội

Sau khi dạy cho học sinh khối chuyên tin về phương pháp ứng dụngvecto vào giải quyết một số bài toán hinh học trong tin học, tôi thấy các em đã

có nhiều chuyển biến về phương pháp giải các bài toán về hình học trong tinhọc Đặc biệt là các em đã có sự thay đổi nhiều về cách thiết kế thuật toán chocác bài toán hình học đặc biệt là đã biết dùng tìm cách giải tốt trong toán học

để thiết kế thuật toán và cài đặt chương trình để có hiệu quả cao Chính vì vậy,trong các kỳ thi học sinh giỏi tỉnh, vùng duyên hải đồng bằng Bắc Bộ, Quốcgia… các em đã đạt kết quả rất tốt

Trang 25

Kết quả :

Trong năm học 2013 – 2014, kỳ thi học sinh giỏi vùng duyên hải đồngbằng Bắc Bộ, khối 11 đạt 1 Huy chương Vàng, 1 Huy chương Bạc, 1 Huychương Đồng Kỳ thi học sinh giỏi Quốc Gia các em đạt 1 giải Nhì, 4 giải Ba,

2 giải Khuyến Khích và có 1 học sinh được lọt vào vòng 2 chọn đội tuyển thiQuốc tế

Trong năm học 2014 – 2015, kỳ thi học sinh giỏi vùng duyên hải đồngbằng Bắc Bộ, khối 11 đạt 1 Huy chương Vàng, 1 Huy chương Bạc, 1 Huychương Đồng Kỳ thi học sinh giỏi Quốc Gia các em đạt 2 giải Nhì, 3 giải Ba,

1 giải Khuyến Khích và có 2 học sinh được lọt vào vòng 2 chọn đội tuyển thiQuốc tế

IV CAM KẾT KHÔNG SAO CHÉP HOẶC VI PHẠM BẢN QUYỀN

Tôi cam kết không sao chép hoặc vi phạm bản quyền của tác giả khác

CƠ QUAN ĐƠN VỊ

ÁP DỤNG SANG KIẾN

(xác nhận)

TÁC GIẢ SÁNG KIẾN

(Ký tên)

Ngày đăng: 13/03/2016, 00:52

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w