Luận văn Nghiên cứu lập trình tính biến dạng xoay trong một tam giác địa động lực
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
Luận văn
Nghiên cứu lập trình
tính biến dạng xoay
trong một tam giác
địa động lực
SV: Trần Văn Phong
1
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
Mục Lục
LỜI MỞ ĐẦU .......................................................................................................................3
ĐẶT VẤN ĐỀ........................................................................................................................5
TÍNH THỰC TẾ TRONG VIỆC LỰA CHỌN ĐỀ TÀI............................................................5
CHƯƠNG I : ........................................................................................................................7
1.1 LÝ THUYẾT BIẾN DẠNG ..............................................................................................7
1.1.1 BIẾN DẠNG MỘT CHIỀU ...........................................................................................7
1.1.2 BIẾN DẠNG HAI CHIỀU .............................................................................................8
1.1.2.1 Khái niệm .................................................................................................................8
1.1.2.2 Trình tự tính biến dạng ..........................................................................................10
1.1.3 BIẾN DẠNG XOAY ...................................................................................................10
1.1.3.1 Biến dạng xoay là gì?.................................................................................................10
1.1.3.2 Minh họa thể hiện biến dạng xoay.........................................................................10
1.1.4 TAM GIÁC ĐỊA ĐỘNG LỰC .....................................................................................11
1.1.4.1 Tam giác địa động lực là gì?.......................................................................................11
1.1.4.2 Tính biến dạng xoay trong một tam giác địa động lực...........................................12
1.2 MA TRẬN.....................................................................................................................13
1.2.1 KHÁI NIỆM................................................................................................................13
1.2.1.1 Định nghĩa ma trận....................................................................................................13
1.2.2.2 Phép nhân ma trận với một số...............................................................................14
1.2.2.3 Phép nhân ma trận ................................................................................................14
1.2.2.4 Ma trận chuyển vị...................................................................................................15
1.2.3 ĐỊNH THỨC..............................................................................................................16
1.2.3.1 Định nghĩa................................................................................................................16
1.2.3.2 Tính chất của định thức .........................................................................................17
1.2.3.3 Cách tính định thức................................................................................................17
1.2.4 MA TRẬN NGHỊCH ĐẢO..........................................................................................18
1.2.4.1 Định nghĩa ma trận nghịch đảo..............................................................................18
1.2.4.2 Điều kiện cần và đủ để tồn tại ma trận nghịch đảo................................................18
1.2.4.3 Ví dụ tính ma trận nghịch đảo theo công thức (1.24) ............................................18
1.2.5.1 Hệ phương trình tuyến tính....................................................................................19
1.2.5.2 Giải hệ phương trình tuyến tính bằng ma trận nghịch đảo ....................................19
SV: Trần Văn Phong
2
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
1.3 SAI SỐ .........................................................................................................................20
1.3.1 KHÁI NIỆM................................................................................................................20
CHƯƠNG 2 : XÂY DỰNG CHƯƠNG TRÌNH ...................................................................22
2.1 NGÔN NGỮ LẬP TRÌNH.............................................................................................22
2.1.1 TỔNG QUAN VỀ PHẦN MỀM MAPINFO.................................................................22
2.1.1.1 Đồ họa trong Mapinfo ............................................................................................23
2.1.1.2 Dữ liệu trong Mapinfo ............................................................................................24
2.1.2 NGÔN NGỮ LẬP TRÌNH MAPBASIC ......................................................................28
2.1.2.1 Tổng quan về Mapbasic.........................................................................................28
2.1.2.2 Nội Dung .................................................................................................................29
Nhấp New để mở cửa sổ biên tập chương trình ....................................................................29
Viết các dòng lệnh MapBasic .........................................................................................29
cơ bản đã được ứng dụng trong đợt thực tập. S.................................................................32
2.2 XÂY DỰNG CHƯƠNG TRÌNH....................................................................................33
2.2.2.3 Thuật toán lấy dữ liệu chọn tam giác và hiển thị lưới tam giác .............................39
2.2.2.4 Thuật toán nhân ma trận bậc 4..............................................................................40
2.2.2.5 Thuật toán chuyển vị ma trận bậc 4.......................................................................41
2.2.2.6 Thuật toán tính định thức ma trận bậc 4................................................................42
2.2.2.7 Thuật toán tính ma trận nghịch đảo bậc 4 .............................................................44
LỜI MỞ ĐẦU
Ngày nay với sự phát triển của khoa học công nghệ thì công nghệ thông tin
được áp dụng vào mọi ngành nghề trong đời sống – xã hội. Việc áp dụng công nghệ
thông tin vào các mọi ngành nghề giúp tối ưu hóa thời gian cho con người đồng thời
mang lại độ chính xác cao trong công việc, giảm bớt sức lao động của con người.
Song hành với sự phát triển của công nghệ thông tin như vậy, ngành địa chất cũng
xác định được tầm quan trọng của công nghệ thông tin để áp dụng vào xây dựng và
giải các bài toán trong địa chất. Ví dụ như việc áp dụng thành lập các bản đồ địa
chất, quản lý dữ liệu địa chất, tính toán trữ lượng khoáng sản..v..v... Việc áp dụng
SV: Trần Văn Phong
3
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
công nghệ thông tin vào ngành địa chất mang lại sự nhanh chóng và chính xác,
mang tính vượt trội so với các phương pháp cổ điển mà con người trực tiếp phải xử
lý. Áp dụng công nghệ thông tin trong địa chất cũng dẫn đến các nhà địa chất có
những phán đoán chính xác hơn trong việc dự đoán, phân tích trong những vấn đề
của địa chất học. Hiện nay, trên thế giới việc áp dụng công nghệ thông tin vào
ngành địa chất học đã mang lại nhiều thành tựu cho sự vượt bậc của nó. Đã có rất
nhiều những chương trình phần mềm được xây dựng phục vụ trong công tác nghiên
cứu về địa chất đã được công bố mang lại những hiệu quả rất cao trong công việc,
dẫn đến những chương trình này là những phần không thể thiếu và quan trọng trong
nghiên cứu..v..v... Ở Việt Nam hiện nay, trong ngành địa chất cũng đã coi trọng
việc áp dụng công nghệ thông tin trong những xử lý tính toán phức tạp mà đòi hỏi
con người mất nhiều thời gian và công sức. Một điển hình cho xu thế phát triển hiện
đại này là tại phòng Địa Động Lực – Viện Địa Chất, một đơn vị trực thuộc của
Viện Khoa Học Và Công Nghệ Việt Nam, trưởng phòng là PGS.TS Phan Trọng
Trịnh đã có những hướng mang tính hiện đại hóa bằng việc áp dụng nhiều phần
mềm trong việc xử lý những vấn đề mà phòng Địa Động Lực nghiên cứu, ví dụ như
các phần mềm xử lý trong bản đồ như Arc Gis, Surfer, MapInfo... các phần mềm
sử lý số liệu GPS như Bernese, Gamit,Fonda,Gipsy,Globk... và các phần mềm xử
lý số liệu dịch chuyển để tính toán biến dạng trong bộ phần mềm QOCA (Quasi-
Observation Combination Analysis)...
Trong quá trình thực tập tốt nghiệp, em được bộ môn Tin Học Địa Chất tạo
điều kiện cho em được thực tập tại phòng Địa Động Lực, tại đây em đã được tiếp
xúc sử dụng bộ phần mềm QOCA dùng để tính biến dạng kiến tạo trong vỏ Trái
Đất, đó là một trong những phần nhiệm vụ quan trọng mà tại phòng Địa Động Lực
nghiên cứu. Tuy nhiên bộ phần mềm chạy trên nền của HĐH(Hệ Điều Hành) Linux
là HĐH không phổ biến tại Việt Nam và bộ phần mềm QOCA vẫn còn tương đối
khó sử dụng. Nhận định được những vấn đề này và những vấn đề đặt ra Việt Nam
cũng cần có những phần mềm xử lý cho riêng mình, PGS.TS Phan Trọng Trịnh
mong muốn xây dựng một chương trình tính biến dạng kiến tạo vỏ Trái Đất mang
một thương hiệu của Việt Nam, dễ sử dụng, phù hợp với người dùng của Việt Nam.
Đáp lại sự mong muốn đó và sự dẫn dắt chỉ bảo của PGS.TS Phan Trọng Trịnh,
em xin mạnh dạn xây dựng một chương trình tính biến dạng kiến tạo của vỏ Trái
Đất trong đồ án tốt nghiệp của mình với đề tài:
“Nghiên cứu lập trình tính biến dạng xoay trong một tam giác Địa động lực”
Chương trình được xây dựng là một tool của phần mềm xử lý bản đồ Mapinfo
11 với ngôn ngữ lập trình là MapBasic 9.5. Chương trình này có chức năng xử lý
một phần trong tính toán biến dạng đó là tính biến dạng xoay cho một tam giác địa
động lực. Đồ án gồm 4 chương và được bố cục như sau :
SV: Trần Văn Phong
4
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
Đặt vấn đề
Chương 1: Cơ sở lý thuyết cho xây dựng chương trình
Chương 2: Xây dựng chương trình
Chương 3: Giao diện và sử dụng chương trình
Chương 4: Đánh giá và phân tích kết quả chương trình đạt được
Kết luận và kiến nghị
Nhìn chung chương trình đã đáp ứng được mục đích đề ra, tuy nhiên do kiến
thức còn hạn chế cũng như xây dựng chương trình này đòi hỏi nhiều kiến thức
chuyên sâu và hạn hẹp về thời gian nghiên cứu nên chương trình không thể tránh
còn nhiều thiếu sót.
Để xây dựng được chương trình này em xin chân thành cám ơn sự giúp đỡ và
những ý kiến quý báu của PGS.TS Phan Trọng Trịnh, là người đã hướng dẫn
xuyên suốt trong quá trình thực tập đến hoàn thành đồ án tốt nghiệp này, cùng đó
em cũng cám ơn tới sự giúp đỡ của các thầy các cô trong bộ môn Tin Học Địa
Chất đã giúp đỡ em hoàn thành được đồ án tốt nghiệp.
Em xin chân thành cám ơn!
ĐẶT VẤN ĐỀ
TÍNH THỰC TẾ TRONG VIỆC LỰA CHỌN ĐỀ TÀI
Hiện nay, trên thế giới và Việt Nam cùng với sự phát triển mạnh mẽ và mang
tính đột phá của công nghệ thì việc áp dụng công nghệ thông tin vào giải các bài
toán trong Địa chất học đang là một nhu cầu tất yếu và chủ đạo. Đặc biệt với sự đột
phá về công nghệ định vị toàn cầu GPS (Global Positioning System) thì việc áp
dụng các phần mềm theo số liệu GPS để tính toán biến dạng động lực của vỏ Trái
Đất là quan trọng và chủ đạo. Việc áp dụng các phần mềm tính toán giúp tối ưu thời
gian xử lý và mang lại sự chính xác rất cao và nó đang là yếu tố cần thiết cho việc
SV: Trần Văn Phong
5
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
xử lý đánh giá biến dạng địa động lực mà nó đã được áp dụng trên thế giới và Việt
Nam.
Tại phòng Địa Động Lực – Viện Địa Chất chuyên nghiên cứu về sự biến
đổi trong vỏ Trái Đất thì việc áp dụng phần mềm tính toán các số liệu cho tính biến
dạng của vỏ Trái Đất được ưu tiên hàng đầu. Để từ đó có thể đánh giá được sự biến
đổi kiến tạo vỏ Trái Đất, đánh giá dự báo động đất,sóng thần tại khu vực Việt Nam
để có những phương án đối phó thiên tai cần thiết.
MỤC ĐÍCH, YÊU CẦU
MỤC ĐÍCH
Xuất phát từ những nhu cầu của thực tế và thu thập dữ liệu trong quá trình
thực tập tốt nghiệp người thiết kế sử dụng ngôn ngữ lập trình Mapbasic để thành
lập chương trình là một tool của phần mềm ứng dụng công nghệ GIS là Mapinfo.
Chương trình này là một công cụ xứ lý các số liệu dịch chuyển của vỏ Trái Đất để
tính toán đưa ra được thông số biến dạng là biến dạng xoay trong một tam giác địa
động lực và sai số của nó.
YÊU CẦU
- Chương trình phải trực quan,dễ hiểu và dễ sử dụng
- Gọn nhẹ và đa dạng trong lựa chọn các chức năng
- Chính xác cao và hiệu quả
- Thích hợp với hệ điều hành của Window, với các loại phần cứng phổ biến ở
Việt Nam.
SV: Trần Văn Phong
6
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
CHƯƠNG I :
CƠ SỞ LÝ THUYẾT CHO XÂY DỰNG CHƯƠNG TRÌNH
1.1 LÝ THUYẾT BIẾN DẠNG
1.1.1 BIẾN DẠNG MỘT CHIỀU
Giả sử có thanh vật liệu cứng trong hệ toạ độ một chiều
Hình 1.1).
(0,푥) (
Trên đó có hai điểm rất gần nhau
và
퐵(푥 + 푑푥).
Khi tác dụng một lực P theo
퐴(푥)
hướng x từ đầu mút của thanh cứng, thanh này sẽ bị kéo dài và các điểm
đều dịch chuyển (displace).
cũng
퐴, 퐵
Giả sử dịch chuyển này là vô cùng bé, biên độ dịch chuyển sẽ phụ thuộc vào
vị trí của điểm dọc theo thanh: càng gần điểm tác dụng lực P,thì dịch chuyển càng
lớn. Do đó,điểm B sẽ bị dịch chuyển nhiều hơn so với điểm A.Dịch chuyển tại điểm
A được biểu diễn là
và của điểm B được biểu diễn là
(Hình1.1).
푢(푥 + 푑푥)
푢(푥)
Do dịch chuyển dx vô cùng bé nên có thể viết:
∂u
=
(1.1)
푢(푥 + 푑푥)
dx
∂x
và :
퐴’퐵’ 푑(푥)
∂u
∂u
=
+
–
=
+
(1.2)
푢(푥) +
dx 푢(푥) 푑(푥)
dx
∂x
∂x
Hình 1.1: Minh họa biến dạng một chiều
Biến dạng (strain) được định nghĩa là tỉ số của sự thay đổi chiều dài của vật
thể so với chiều dài ban đầu của nó. Do đó:
SV: Trần Văn Phong
7
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
∂u
∂x
∆퐿 퐴’퐵’ 퐴퐵
=
∂푢
∂푥
푑(푥)
dx
푑(푥)
=
=
=
(1.3)
휀푥
퐿
퐴퐵
푑(푥)
Như vậy biến dạng vô cùng bé là gradient không gian của dịch chuyển. Loại
biến dạng mô tả trên được gọi là biến dạng pháp tuyến (normal strain), cũng có thể
được khái quát hoá trong không gian hai hay ba chiều.Tuy nhiên trong không gian
hai hay ba chiều, sẽ xuất hiện dạng biến dạng khác, gọi là biến dạng tiếp tuyến hay
biến dạng trượt (shear strain), biểu diễn biến dạng bóp méo theo góc, không phải
biến dạng căng giãn.Trường hợp biến dạng trong không gian hai chiều sẽ được mô
tả sau đây.
1.1.2 BIẾN DẠNG HAI CHIỀU
Do việc xác định chuyển dịch thẳng đứng của vỏ Trái Đất còn hạn chế nên ta
chỉ xét các biến dạng do chuyển dịch nằm ngang của vỏ Trái Đất trong không gian 2
chiều.
1.1.2.1 Khái niệm
Giả sử trong không gian Đề-các hai chiều,trên mặt phẳng xy theo trục x (
푂푥
dương chỉ hướng đông) và trục y (
dương chỉ hướng bắc), dịch chuyển của chất
푂푦
điểm là rất nhỏ.Vận tốc chuyển dịch u là một hàm theo vị trí của điểm
có
푋(푥,푦)
푋
thể được viết dưới dạng:
∂푢
) =
푢(푋 + 훿푋 푢(푋)
+
(1.4)
훿푋
∂푋
Hai thành phần vận tốc theo phương của trục x và y có thể viết như sau:
∂푢
∂푢
푢 (푋 + 훿푋) = 푢 (푋) +
푥 δx +
푥 δy
푥
푥
∂푥
∂푢
∂푦
∂푢
(1.5)
푢 (푋 + 훿푋) = 푢 (푋) +
푦 δx +
푦 δy
푦
푦
∂푥
∂푦
Trong đó
,
là các vận tốc thành phần của sự thay đổi vô cùng bé kích
푢 푢
푥
푦
thước vật thể và bản thân kích thước vật thể dần tớ i 0.
Do đó (1.4) có thể viết là:
) =
+ g
(1.6)
푢(푋 + 훿푋 푢(푋)
훿푋
với :
∂푢푥 ∂푢푥
∂푥 ∂푦
∂푢푦 ∂푢푦
g=
(1.7)
∂푥 ∂푦
SV: Trần Văn Phong
8
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
g được gọi là tensor gradient vận tốc dịch chuyển ngang.
Do gradient vận tốc thường bao hàm cả biến dạng nén ép/căng giãn và biến
dạng xoay, nên g là một tensor bất đối xứng. Theo lý thuyết về tensor, một tensor
bậc hai bất kỳ có thể phân tách thành hai tensor, bao gồm một tensor đối xứng và
một tensor b ất đối xứng [Malvern, 1969]. Do đó (1.7) có thể viết thành:
1
1
g= [g + gT] + [g - gT]
(1.8)
2
2
∂푢푦
∂푥
∂푢푦
∂푥
∂푢푥
∂푥
1
2
∂푢푥
∂푦
1
2
∂푢푥
∂푦
+
0
―
g =
+
↔
∂푢푦
∂푥
∂푢푦
∂푢푦
∂푥
1
2
∂푢푥
1
2
∂푢푥
+
―
0
∂푦
∂푦
∂푦
(1.9)
Nếu đặt:
∂푢푥
휀푥 =
∂푥
∂푢푦
휀푦 =
∂푦
(1.10)
(1.11)
1
1 ∂푢푥
∂푢푦
휀푥푦 = 휀푦푥 = 훾푥푦
=
+
2
1 ∂푢푥
2 ∂푦
∂푢푦
∂푥
Ω푥푦
=
―
= ― Ω푦푥
2 ∂푦
∂푥
Ta sẽ có:
휀푥 휀푥푦
휀푦푥 휀푦
0
Ω푦푥
Ω푥푦
0
g=
+
= +
Ω
휖
Trong đó các ký hiệu ở biểu thức (1.11) :
được gọi là tensor vận tốc biến dạng (strain rate tensor) hay tensor đối
✓
휖
xứng
✓
✓
là tensor vận tốc xoay (rotation rate tensor) hay tensor phản đối xứng.
Ω
và
là vận tốc biến dạng pháp tuyến (nornal strain) trên mặt phẳng xy
휀푦
휀푥
theo trục x và trục y.Chúng được gọi là vận tốc giãn nở (hay căng giãn) khi
có giá trị dương và vận tốc nén ép khi có giá trị âm.
✓
là vận tốc biến dạng trượt (shear strain) không kèm theo sự xoay.
휀푥푦 = 휀푦푥
Tensor vận tốc biến dạng không phụ thuộc vào sự tịnh tiến của hệ toạ
휖
độ và ảnh hưởng không đáng kể vào phép xoay toạ độ: tensor vận tốc xoay
không phụ thuộc vào phép tịnh tiến hệ toạ độ.
Ω
SV: Trần Văn Phong
9
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
Do những ưu điểm trên của tensor vận tốc biến dạng người ta thường sử
dụng các tham số tính từ các thành phần của nó, bao gồm , ,
để mô tả
휀푥 휀푦 휀푥푦
biến dạng bề mặt vỏ trái đất.
1.1.2.2 Trình tự tính biến dạng
➢ Đầu tiên ta có các dữ liệu đo vận tốc chuyển dịch trên bề mặt Trái Đất (được
đo bằng GPS) được thể hiện trong một lưới các điểm đo. Chia lưới các điểm
đo này thành các đa giác (thường là tam giác) sao cho khoảng cách trong các
cạnh của đa giác tương đối bằng nhau. Từ đó ta sẽ tính các giá trị biến dạng
trong một đa giác này.
➢ Từ vận tốc chuyển dịch đo được trong đa giác ta tính được tensor gradient
chuyển dịch ngang.
➢ Từ tensor gradient vận tốc chuyển dịch ngang,có thể phân tách thành tensor
vận tốc biến dạng (tensor đối xứng) và tensor vận tốc xoay (tensor phản đối
xứng).
➢ Tensor vận tốc biến dạng được biển diễn theo các vận tốc biến dạng chính
trong trong hệ toạ độ của các trục chính.
➢ Giả định rằng biến dạng là đồng nhất trong mỗi đa giác,các giá trị vận tốc
biến dạng được tính trung bình trong mỗi đa giác và được biểu diễn tại tâm
của đa giác đó.
1.1.3 BIẾN DẠNG XOAY
1.1.3.1 Biến dạng xoay là gì?
Theo (1.11) thì biến dạng xoay là một tensor phản đối xứng và thường được
ký hiệu là . Giả sử ta có một điểm đo trên bề mặt của vỏ trái đất, khi biết tốc độ
휔
chuyển dịch của điểm này thì ta sẽ xác định được hướng dịch chuyển của điểm đó,
nhưng do các yếu tố biến dạng trong vỏ Trái đất điểm này sẽ xoay đi một góc nào
đó so với mốc ban đầu và góc này chính là thể hiện vận tốc biến dạng xoay.
1.1.3.2 Minh họa thể hiện biến dạng xoay
B
B
A
A
(a)
(b)
(c)
(d)
SV: Trần Văn Phong
10
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
Hình 1.2: Minh họa biến dạng xoay
Trong hình 1.2 thì hình (a) thể hiện điểm A tại gốc mũi tên là điểm tại vị trí
ban đầu trong không gian, điểm B là điểm sau khi đo, mũi tên sẽ là đương thể hiện
hướng dịch chuyển của điểm A, và chiiều mũi tên thể hiện biến dạng xoay của điểm
tại vị trí A. hình (b) tương tự như (a) nhưng chiều xoay ngược lại. Hình (c) và (d) là
ký hiệu biến dạng xoay thể hiện trên bản đồ.
1.1.4 TAM GIÁC ĐỊA ĐỘNG LỰC
1.1.4.1 Tam giác địa động lực là gì?
Giả sử ta có một loạt các điểm khác nhau đo tốc độ dịch chuyển bề mặt trái
đất, các điểm này được bố trí các khoảng cách tương đối với nhau tùy theo lưới đo
là lớn hay nhỏ. Để tính biến dạng cho vùng được bố trí các điểm đo này thì người ta
tính biến dạng trong từng đa giác một, và đa giác này thường là một tam giác (tức là
3 điểm đo một tạo thành một tam giác) Tam giác này thường được người xác định
lựa chọn theo nguyên tắc tam giác Delaunay. Và biến dạng tính được trong tam giác
thể hiện và qui về trọng tâm của tam giác đó.
A’
A
C’
B’
G
C
B
Hình 1.3: Minh họa biến dạng xoay trong tam giác địa động lực
Trong hình 1.3 thể hiện một tam giác địa động lực trong đó thể hiện 3 đầu
của tam giác là 3 điểm đo được bố trí trên bề mặt trái đất. các mũi tên màu đỏ thể
hiện các tốc độ dịch chuyển, ký hiệu biến dạng xoay được thể hiện trên trọng tâm G
của tam giác.
SV: Trần Văn Phong
11
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
1.1.4.2 Tính biến dạng xoay trong một tam giác địa động lực.
Trong không gian Decac 2 chiều của một tam giác địa động lực.Gọi
,
푥푖푗 푦푖푗
푣
푣
là vận tốc dịch chuyển của điểm thứ tới điểm thứ lần lượt theo trục
và . Gọi
표푥 표푦
푖
푗
,
là khoảng cách của điểm thứ tới điểm thứ lần lượt theo trục
và
.
푥 푦
푖푗 푖푗
푖
푗
표푥 표푦 푣
푥푖푗
,
có đơn vị là m/năm,
,
đơn vị là met. Theo đó ta sẽ có:
푥 푦
푖푗 푖푗
푣
푦푖푗
,
푥푗 푦푖푗 푦푖 푦푗
푣
푥푖푗
= 푣 ― 푣
푣
= 푣 ― 푣
푥푖
Ta có công thức
(1.12)
푉 = 퐴.퐹
푖푗
Trong đó:
푣
푣
푣
푣
푥12
푦12
푥13
푦13
là vector vận tốc dịch chuyển.
푉 =
푖푗
푥
푦
12
12
0
12
0
0
13
0
푥
푦
12
là ma trận khoảng cách.
퐴 =
푥
푦
13
0
13
0
13
0
0
푥
푦
∂푣
푥
∂푥
∂푣
푥
∂푦
∂푣
là gradient vector vận tốc( chưa biết).
퐹 =
퐹
푦
∂푥
∂푣
푦
∂푦
―1
―1
―1
푡
푡
Từ công thức (1.12)
(1.13)
퐹 = 퐴 퐶 퐴
.퐴 퐶 푉
푖푗
푉
푉
Trong đó
là ma trận hiệp phương sai của vận tốc dịch chuyển.
퐶
푉
Tính được ta có thể tính được biến dạng xoay theo công thức :
퐹
휔
1
2
∂푣
∂푣
푦
푥
(1.14)
휔 =
―
∂푦
∂푥
Tuy nhiên để tính được ma trận theo công thức (1.13) đòi hỏi một kiến
퐹
thức chuyên sâu về xác xuất thống kê, địa thống kê và trắc địa cao cấp. Do trình độ
cũng như thời gian nghiên cứu có hạn nên em chưa thể tính theo công thức (1.13).
퐹
Nhưng theo đại số tuyến tính ta có thể tính theo công thức ma trận nghịch đảo đó
퐹
là :
―1
퐹 = 퐴 푉
(1.15)
푖푗
Việc tính theo phương pháp này cũng sẽ dẫn tới kết quả tương đối chính xác
và có thể chấp nhận được. Tuy nhiên nếu có thời gian nghiên cứu em sẽ xác định
퐹
SV: Trần Văn Phong
12
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
để tính biến dạng xoay theo công thức (1.13). Hiện tại trong đồ án em chỉ trình bày
tính toán kết quả biến dạng xoay thông qua việc tính Gradien vector vận tốc
휔
퐹
theo công thức (1.15).
1.2 MA TRẬN
1.2.1 KHÁI NIỆM
1.2.1.1 Định nghĩa ma trận
Định nghĩa 1.1:
Một bảng số có hàng và cột được ký hiệu :
푚
푛
푎
푎
푎 ⋯ 푎
12 1푛
11
푎 ⋯
⋱
푚2 푚푛
푎
21
22
2푛
⋮
=
(1.16)
퐴
⋮
푚1
푎
푎
⋯ 푎
Được gọi là một ma trận cỡ
với
là phần tử thuộc hàng thứ cột
푖푗
푚 × 푛
푎
푖
푗
Khi
,
thì được gọi là ma trận nguyên.
,
thì được
푎 ∈ ℤ ∀푖,푗
퐴
푎 ∈ ℂ ∀푖,푗
퐴
푖푗
푖푗
gọi là ma trận phức. Nếu không chỉ rõ
thì gọi là tập số thực.
푎
퐴
푖푗
Một ma trận A có cỡ
có thể được viết tắt dưới dạng :
푚 × 푛
푖 = 1,푚
푗 = 1,푛
=
hay =
[푎 ]
푖푗 m×n
(1.17)
퐴
[푎 ]
퐴
푖푗
Khi
ta nói là ma trận vuông cấp hoặc .
푚 = 푛
퐴
푛
푚
Tập hợp tất cả các ma trận cỡ
được ký hiệu là
.
푚×푛
푚 × 푛
ℳ
1.2.1.2 Ví dụ:
2 3 0
4 5 7
Ma trận
Ma trận
là một ma trận cỡ 2
3
×
4 5
là một ma trận vuông cấp 2
7 2
1.2.2 CÁC PHÉP TOÁN TRONG MA TRẬN
1.2.2.1 Phép cộng
Phép cộng chỉ thực hiện được bởi 2 ma trận cùng cỡ. Tổng hai ma trận có
cùng cỡ = và là một ma trận cùng cỡ được định nghĩa :
=
[푎 ]
퐵
푏
푖푗
퐴
푖푗 m×n
m×n
SV: Trần Văn Phong
13
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
=
,
=
+
, với mọi
푏
푖푗
,
.
(1.18)
[푐 ]
푐
푖푗
푎
푖 = 1,푚 푗 = 1,푛
퐴 + 퐵
푖푗 m×n
푖푗
2 3 0
4 5 7
1 5 0
2 6 3
3
8
0
Ví dụ 1.1:
+
=
6 11 10
1.2.2.2 Phép nhân ma trận với một số
Cho ma trận
=
cỡ
, và số thực . Ta định nghĩa và ký hiệu
퐴
[푎 ]
푚 × 푛
푘
푖푗 m×n
phép nhân ma trận với một số như sau :
=
(1.19)
푘퐴 푘푎
푖푗
m×n
1
2
2 3 0
4 5 7
1 3/2
2 5/2 7/2
0
Ví dụ 1.2:
=
Tính chất 1.1: Các tính chất sau đúng với ma trận cùng cỡ :
1.
;
퐴 + (퐵 + 퐶) = (퐴 + 퐵) + 퐶
2. Ma trận có các phần tử đều bằng 0 gọi là ma trận không và ký hiệu 0.
Khi đó :
;
퐴 + 0 = 0 + 퐴 = 퐴
3.
4.
5.
6.
7.
8.
, trong đó
;
퐴 + ( ― 퐴) = 0
– 퐴 = [ ―푎 ]
푖푗 m×n
;
퐴 + 퐵 = 퐵 + 퐴
;
푘(퐴 + 퐵) = 푘퐴 + 푘퐵
;
(푘 + ℎ)퐴 = 푘퐴 + ℎ퐴
;
푘(ℎ퐴) = (푘ℎ)퐴
;
1퐴 = 퐴
1.2.2.3 Phép nhân ma trận
Định nghĩa 1.1: Tích hai ma trận
và
là ma
퐴 = [푎 ]
퐵 = 푏
푖푗 m×p
푖푗
p×n
trận cỡ
được ký hiệu và định nghĩa bởi
, trong đó
푚 × 푛
퐴퐵 = [푐 ]
푖푗 m×n
푝
푘=1
∑
=
với mọi
,
.
(1.20)
푐
푖푗
푎 푏
푖푘 푘푗
푖 = 1,푚 푗 = 1,푛
Vậy tổng phần tử của hàng thứ cột thứ của
bằng tổng của tích các
푖
푗
퐴퐵
phần tử của hàng thứ của với các phần tử tương ứng của cột thứ của .
푖
퐴
푗
퐵
1
2
2 3 0
4 5 7
―1
13 36
4
―1 0
2
Ví dụ 1.3:
=
4
Ta thấy rằng tích của hai ma trận và được định nghĩa khi số cột của
퐴
퐵
퐴
bằng số hàng của .Vì vậy có thể định nghĩa
nhưng không định nghĩa được
퐵퐴
퐵
퐴퐵
nếu số cột của không bằng số hàng của .
퐵
퐴
SV: Trần Văn Phong
14
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
Khi
là hai ma trận vuông cùng cấp thì ta có đồng thời
và . Mặc dù
퐴퐵 퐵퐴
퐴,퐵
vậy chưa chắc có đẳng thức
퐴퐵 = 퐵퐴
có tính giao hoán. Chẳng hạn, xét:
, hay nói cách khác tích của ma trận không
2 0
3 5
2 4
5 1
퐴 =
퐵 =
4
8
16 20
13 15
퐴퐵 =
≠
퐵퐴 =
31 17
Tính chất 1.2: Giả sử
là các ma trận với số cột số hàng thích hợp để
퐴,퐵,퐶
các phép toán sau được xác định thì ta có đẳng thức :
1.
2.
tính kết hợp.
퐴(퐵퐶) = (퐴퐵)퐶
tính phân phối bên trái phép nhân ma trận với
퐴(퐵 + 퐶) = 퐴퐵 + 퐴퐶
phép cộng.
3.
tính phân phối bên phải phép nhân ma trận với
(퐵 + 퐶)퐴 = 퐵퐴 + 퐶퐴
phép cộng.
4. Với mọi
푘 ∈ ℝ, 푘(퐴퐵) = (푘퐴)퐵 = 퐴(푘퐵).
5. Với mọi số tự nhiên dương n ta xét ma trận vuông cấp có các phần
퐼
푛
푛
tử trên đường chéo bằng 1 và ở các vị trí khác đều bằng 0.
1 0
⋱
=
퐼
푛
0 1
ta có
퐼 퐴 = 퐴 = 퐴퐼
Khi đó ma trận cỡ
퐴
푚 × 푛
푚
푛
Ma trận được gọi là ma trận đơn vị cấp
퐼
푛
푛
1.2.2.4 Ma trận chuyển vị
Định nghĩa 1.2: Cho ma trận cỡ
,nếu ta đổi các hàng của ma trận
푚 × 푛
퐴
thành các cột (do đó các cột thành các hàng)thì ta được ma trận mới cỡ
,
퐴
푛 × 푚
푡
gọi là ma trận chuyển vị của ma trận trên ký hiệu
퐴,
퐴
푡
;
,
.
(1.21)
퐴 = [푐 ]
푐
푖푗
= 푎
푖푗
푖 = 1,푛 푗 = 1,푚
푖푗 n×m
1
2
1
2
―1 2
푡
―1 0
2
Ví dụ 1.4:
;
.
퐴 =
퐴 =
0
4
4
Tính chất 1.3:
푡
푡
푡
1.
2.
.
(퐴 + 퐵) = 퐴 + 퐵
푡
푡
.
(푘퐴) = 푘퐴
SV: Trần Văn Phong
15
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
푡
푡 푡
3.
(퐴퐵) = 퐵 퐴 .
Định nghĩa 1.3:
푡
1. Nếu
thì được gọi là ma trận đối xứng ( là ma trận vuông có
퐴 = 퐴
퐴
퐴
các phần tử đối xứng nhau qua đường chéo thứ nhất).
푡
2. Nếu
thì được gọi là phản đối xứng (hay đối xứng lệch) ( là
퐴 = ― 퐴
퐴
퐴
ma trận vuông có các phần tử đối xứng và trái dấu qua đường chéo thứ
nhất, các phần tử trên đường chéo thứ nhất bằng 0).
1.2.3 ĐỊNH THỨC
1.2.3.1 Định nghĩa
푎푥 + 푏푦 = 푐
푎′푥 + 푏′푦 = 푐′
Khi giải hệ phương trình tuyến tính
ta tính các định thức
푎
푏
푐
푏
푎
푐
,
퐷 =
= 푎푏’ ― 푏’푎 퐷 =
= 푐푏′ ― 푏푐′, 퐷 =
= 푎푐′ ― 푐푎′
|
|
|
|
|
|
푥
푦
푎′ 푏′
푐′ 푏′
푎′ 푐′
푎
푎
12
11
21
Như vậy định thức của ma trận
vuông cấp 2 là :
퐴 =
푎
푎
22
푎
푎
12
11
21
|
|
.
|퐴| =
= 푎 푎 ― 푎 푎
11 22 12 21
푎
푎
22
Định nghĩa 1.4: Định thức của ma trận vuông
được ký hiệu
퐴 = [푎 ]
푖푗 m×n
là
hay
và định nghĩa bởi biểu thức :
|퐴|
푑푒푡 퐴
∑
(1.22)
là tổng tất cả các tích
푑푒푡 퐴 =
푛 푠푔푛휎.푎
…푎
1휎(1)
푛휎(푛)
휎휖푆
Như vậy định thức của ma trận vuông
퐴 = [푎 ]
푖푗 m×n
gồm phần tử trên hàng mà ở trên cột khác nhau của ma trận
và nhân với
푛
푛
푛
퐴
+1 hoặc -1.
푎
푎
푎
푎
푎
푎
푎
푎
푎
11
21
31
12
22
32
13
23
33
Ví dụ 1.5: Tính định thức của một ma trận bậc 3 có dạng
Có dấu
.Vậy
푠푔푛휎 = 푠푔푛휎 = 푠푔푛휎 = 1, 푠푔푛휎 = 푠푔푛휎 = 푠푔푛휎 = ― 1
1
4
5
2
3
6
푎
푎
푎
푎
푎
푎
푎
푎
푎
11
21
31
12
22
32
13
23
33
∑
휎휖푆
=
3 푠푔푛휎.푎
.푎
.푎
1휎(1) 2휎(2) 3휎(3)
|
|
=
푎 푎 푎 ― 푎 푎 푎 ― 푎 푎 푎 + 푎 푎 푎 + 푎 푎 푎 ― 푎
11 22 33
11 23 32
12 21 33
12 23 31
13 21 32
13
푎 푎
22 31
SV: Trần Văn Phong
16
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
1.2.3.2 Tính chất của định thức
Tính chất 1.4:
1. Nếu đổi chỗ hai hàng của ma trận thì định thức đổi dấu:
푎 푛ế푢 푖 ≠ 푘,푚
푖푗
푎
푎′ = 푘푗
푖푗
푛ế푢 푖 = 푚
푛ế푢 푖 = 푘
,
,
퐴 = [푎 ]
퐴′ = 푎′
푖푗
푖푗 n×n
n×n
푎
푚푗
thì
.
푑푒푡퐴’ = ― 푑푒푡퐴
2. Định thức có tính chất tuyến tính đối với mỗi hàng:
Cho hai ma trận và ma trận
퐶 = [푐 ]
푖푗 n×n
,
có
퐴 = [푎 ]
퐵 = 푏
푖푗 n×n
푖푗
n×n
hàng thứ là tổ hợp tuyến tính của hàng thứ của và
.
퐵
푘
푘
퐴
푐 = 푎 = 푏 푛ế푢 푖 ≠ 푘
푖푗
푖푗
푖푗
Nghĩa là
với mọi
푗 = 1,...,푛
푐 = 훼푎 + 훽푏
푘푗
;
푖푗
푘푗
Thì
.
푑푒푡퐶 = 훼푑푒푡퐴 + 훽푑푒푡퐵
3. Từ 1. và 2. suy ra rằng trong một ma trận có hai hàng tỷ lệ thì định thức
bằng 0.
4. Nếu ta cộng vào một hàng một tổ hợp tuyến tính các hàng khác thì định
thức không thay đổi.
5. Định thức của ma trận chuyển vị bằng định thức của ma trận đó:
푡
Giả sử
,
,
n×n
퐴 = [푎 ]
퐴 = 푎′
푎′ = 푎 ,푖,푗 = 1,…,푛
푖푗 푗푖
푖푗 n×n
푖푗
푡
thì
푑푒푡퐴 = 푑푒푡 퐴.
6. Từ 5. suy ra rằng các tính chất của định thức đúng với hàng thì cũng đúng
với cột và ngược lại.Vì vậy ta chỉ cầ n chứng minh các định lý về định
thức đúng với hàng.Chẳng hạn, từ 4. suy ra nếu ta cộng vào một cột một
tổ hợp tuyến tính các cột khác thì định thức không thay đổi. Định thức của
mọi hệ véctơ phụ thuộc tuyến tính đều bằng 0.
1.2.3.3 Cách tính định thức
(푖+푗)
Định lý 1.1:
(1.23)
퐴 = ( ―1)
푖푗
M
푖푗
Trong đó
là định thức của ma trận cấp
có được bằng cách xoá hàng i cột
푛 ― 1
M
푖푗
j của ma trận .
퐴
1.2.4 MA TRẬN NGHỊCH ĐẢO
1.2.4.1 Định nghĩa ma trận nghịch đảo
Định nghĩa 1.5: Ma trận vuông được gọi là khả nghịch nếu tồn tại ma trận
퐴
vuông cùng cấp sao cho
Trong đó là ma trận đơn vị.
퐵
퐼 = 퐵퐴 = 퐴퐵.
퐼
SV: Trần Văn Phong
17
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
Phép nhân ma trận có tính kết hợp nên ma trận ở định nghĩa trên nếu tồn
퐵
― 1
tại thì duy nhất, ta gọi ma trận này là ma trận nghịch đảo của , ký hiệu
.
퐴
퐴
1.2.4.2 Điều kiện cần và đủ để tồn tại ma trận nghịch đảo
Định lý 1.2 : (điều kiện cần) Nếu khả nghịch thì
(lúc đó ta nói
푑푒푡 퐴 ≠ 0
퐴
ma trận
không suy biến)
퐴
Định nghĩa 1.6: Ma trận
trong đó
là phần bù đại số của
푖푗
퐵 = 퐴
퐴
푖푗
n×n
phần tử
của ma trận
, được gọi là ma trận phụ hợp của .
푖푗 n×n
푎
퐴 = [푎 ]
퐴
푖푗
Định lý 1.3 : (điều kiện đủ) Nếu
thì
khả nghịch và
푑푒푡 퐴 ≠ 0
퐴
1
― 1
푡
(1.24)
퐴
=
퐵
푑푒푡퐴
Với là ma trận phụ hợp của .
퐵
퐴
1.2.4.3 Ví dụ tính ma trận nghịch đảo theo công thức (1.24)
1 2 3
2 5 3
1 0 8
Ví dụ 1.6: Ma trận
có
푑푒푡퐴 = ― 1
퐴 =
5 3
2 3
1 8
1+1
1+2
,
,
= ― 13
퐴
퐴
퐴
퐴
퐴
= ( ―1)
= ( ―1)
= ( ―1)
= ( ―1)
= ( ―1)
= 40
퐴
= ( ―1)
|
|
|
|
|
|
|
|
|
|
|
|
11
13
22
31
33
12
0 8
2 5
1 0
2 3
0 8
1+3
2+2
3+1
3+3
2+1
,
,
,
= ― 16
= ― 5
퐴
= ( ―1)
|
|
21
1 3
1 8
1 2
1 0
2+3
,
,
= 5
퐴
= ( ―1)
= 2
|
|
23
2 3
5 3
1 3
2 3
3+2
,
= ― 9
퐴
= ( ―1)
= 3
|
|
32
1 2
2 5
,
= 1
Vậy :
푡
40
―13 ―5
40
―16 ―9
―40 16
9
1
― 1
―16
―9
5
3
2
1
―13
―5
5
2
3
1
13
5
―5 ―3
―2 ―1
.
퐴
=
= ―
=
1
SV: Trần Văn Phong
18
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
1.2.5 GIẢI HỆ PHƯƠNG TRÌNH TUYẾN TÍNH BẰNG MA TRẬN
NGHỊCH ĐẢO
1.2.5.1 Hệ phương trình tuyến tính
Hệ phương trình tuyến tính ẩn có dạng tổng quát:
푚
푛
푎 푥 + 푎 푥 + … + 푎 푥 = 푏
11 1
12 2
1푛 푛
1
2
푎 푥 + 푎 푥 + … + 푎 푥 = 푏
21 1
22 2
2푛 푛
……………………… . …………… ..
푥 + 푎 푥 + … + 푎 푥 = 푏
푚
푎
푚1 1
푚2 2
푚푛 푛
푛
푗=1
∑
Hay
Trong đó :
(1.25)
푎 푥 = 푏 ,푖 = 1,…,푚
푖푗 푗
푖
,
,..., là ẩn
푥 푥
푥
푛
1
2
푛
là hệ số của ẩn thứ trong phương trình
푎
푏
푗
푖,
푖; 푖 ― 1,....,푛;푗 = 1,...,푚.
thì hệ phương trình được gọi là thuần nhất.
푖푗
là vế phải của phương trình thứ
푖
Khi các vế phải
푏 = 0
푖
1.2.5.2 Giải hệ phương trình tuyến tính bằng ma trận nghịch đảo
Từ công thức (1.25) ta có dạng ma trận của hệ phương trình tuyến tính :
⋯
⋯
푎
푎
푎
푎
푎
푎
11
12
1푛
푏
푥
1
2
1
2
푥
푏
21
⋮
22
⋱
2푛
⋮
=
,
,
푋 =
(1.26)
퐴
퐵 =
⋮
⋮
푥
푛
푏
⋯
푎
푎
푎
푚
푚1
푚2
푚푛
Trong đó
lần lượt được gọi là ma trận hệ số, ma trận vế sau và ma
퐴, 퐵, 푋
trận ẩn. Khi đó hệ phương trình (1.25) được viết lại dưới dạng ma trận:
(1.27)
Giải phương trình (1.27) theo phương pháp ma trận nghịch đảo ta có công
퐴푋 = 퐵
― 1
thức :
(1.28)
푋 = 퐴 퐵.
1.3 SAI SỐ
1.3.1 KHÁI NIỆM
∗
∗
Giả sử là số gần đúng của
(
: số đúng),
푥
푥 푥
∗
Khi đó
gọi là sai số thực sự của .
∆ = |푥 ― 푥 |
푥
SV: Trần Văn Phong
19
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
Vì không xác định được nên ta xét đến 2 loại sai số đó là sai số tuyệt đối
∆
và sai số tương đối :
∗
- Sai số tuyệt đối: Giả sử
đủ bé sao cho
. Khi đó
|푥 ― 푥 | ≤ ∆푥
∆푥
∃∆푥 > 0
gọi là sai số tuyệt đối của x.
- Sai số tương đối :được định nghĩa và ký hiệu bởi công thức:
∆푥
(1.29)
훿푥 =
|푥|
1.3.2 CÁC LOẠI SAI SỐ
Dựa vào nguyên nhân gây sai số, ta có các loại sai số sau:
- Sai số giả thiết: xuất hiện do việc giả thiết bài toán đạt được một số điều
kiện lý tưởng nhằm làm giảm độ phức tạp của bài toán.
- Sai số do số liệu ban đầu: xuất hiện do việc đo đạc và cung cấp giá trị
đầu vào không chính xác.
- Sai số phương pháp : xuất hiện do việc giải bài toán bằng phương pháp
gần đúng.
- Sai số tính toán : xuất hiện do làm tròn số trong quá trình tính toán, quá
trình tính càng nhiều thì sai số tích luỹ càng lớn.
1.3.3 SAI SỐ TÍNH TOÁN
Giả sử dùng số gần đúng
để tính đại lượng ,
푛
푥 푖 = 1,푛
푖
푦
Với
. Trong đó là hàm khả vi liên tục theo các
푦 = 푓(푥 ) = 푓(푥 ,푥 ,… ,푥 )
푓
푖
1
2
푛
đối số của . Khi đó sai số của được xác định theo công thức sau :
푥
푦
푖
∂푓
∂푥
푛
푖=1
∑
Sai số tuyệt đối:
Sai số tương đối:
(1.30)
(1.31)
∆푦 =
훿푦 =
∆푥
|
|
푖
∂푙푛푓
푛
푖=1
∑
∆푥
|
|
∂푥
푖
Ta tính sai số cho các trường hợp của hàm như sau :
푓
- Trường hợp có dạng tổng:
푓
푦 = 푓(푥 ) = ± 푥 ± 푥 ± … ± 푥
푖
1
2
푛
∂푓
푛
푖=1
∑
suy ra
(1.32)
= 1 ∀푖
∆푦 =
∆푥
|
|
∂푥
푖
- Trường hợp có dạng tích :
푓
푥 × 푥 × … × 푥
1
2
푘
푦 = 푓(푥 ) =
푖
푥
× … × 푥
푛
푘+1
SV: Trần Văn Phong
20
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
푥 .푥 …푥
푚
1
2
푙푛푓 = 푙푛
= (푙푛푥 + 푙푛푥 + … + 푙푛푥 ) ― (푙푛푥
+ … + 푙푛푥 )
푚+1
1
2
푚
푛
푥
…푥
푚+1
푛
1
∂푙푛푓
∆푥
푖
푛
푖=1
푛
⟹
∑
∑
푖=1
=
∀푖
훿푦 =
=
훿푥
푖
|
|
|푥 |
푖
∂푥
|푥 |
푖
푖
푛
푖=1
∑
Vậy:
(1.33)
훿 =
푦
훿푥
푖
- Trường hợp có dạng lũy thừa :
푓
∝
. Ta có :
푦 = 푓(푥) = 푥 ( ∝> 0)
푙푛푦 = 푙푛푓 = ∝ 푙푛푥
∝
∆푥
∂푙푛푓
Suy ra
(1.34)
=
훿 = ∝ . = ∝ 훿푥
|
|
푦
|푥|
|푥|
∂푥
Ví dụ 1.7: Tính sai số của:
3
푎
3
;
푦 =
1
푦 = 푎 ― 푏 푐
2
푏 푐
1
3
Giải:
훿푦 = 훿(푎 ) + 훿(푏 푐) = 3훿푎 + 훿푏 + 훿푐
1
2
∆푎 ∆푏 1 ∆푐
= 3
+
+
|푎| |푎푏| 2 |푐|
∆
푦
2
∆푎
3
3
3
3
= ∆
(푎 )
+ ∆
=
훿
+
훿
= 3
|푎 |
+ 푏
(푏 푐) |푎 | (푎 ) |푏 푐| (푏 푐)
푐
|푎|
∆푏 1 ∆푐
+
|푏| 2 |푐|
SV: Trần Văn Phong
21
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
CHƯƠNG 2 : XÂY DỰNG CHƯƠNG TRÌNH
2.1 NGÔN NGỮ LẬP TRÌNH
Để xây dựng chương trình tính biến dạng xoay trong một tam giác địa động
lực, em lựa chọn xây dựng chương trình là thành lập một tool (công cụ) của phần
mềm Mapinfo. Đây là phần mềm GIS được dùng phổ biến và rộng rãi trên thế giới
và Việt Nam, và thành lập tool này dựa trên ngôn ngữ lập trình mở rộng của nó, đó
là MapBasic. Cụ thể trong chương trình được trình bày trong đồ án này em sử dụng
MapBasic 9.5 và Mapinfo 11.0 là những phiên bản mới nhất hiện nay.
2.1.1 TỔNG QUAN VỀ PHẦN MỀM MAPINFO
MapInfo là một phần mềm nhằm giúp chúng ta xử lý bản đồ số cũng như các
thông tin liên quan đến địa lý. Trước đây xử lý bản đồ là một chức năng chuyên
nghiệp của ngành bản đồ học. Với sự ra đời của Mapinfo, việc xử lý bản đồ trở nên
một công việc mà mọi người đều có thể làm được. Không những có các chức năng
của bản đồ thông dụng như cung cấp thông tin địa lý, giúp định vị trong thực địa,...
Mapinfo còn là một phần mềm rất mạnh giúp xử lý và phân tích thông tin trên bản
đồ số. Chức năng này của Mapinfo khiến cho nó trở thành một hệ cơ sở dữ liệu địa
lý. Tính năng này còn được tăng cường thêm nhờ khả năng liên kết được với các hệ
cơ sở dữ liệu như Microsoft Access, SQL Sever, Oracle,... Sử dụng Mapinfo có thể
hỗ trợ giải quyết được nhiều vấn đề thực tế một cách nhanh chóng và chính xác.
Một bản đồ trong Mapinfo bao gồm hai phần : phần bản đồ (hay phần đồ
họa) và phần dữ liệu (hay thông tin).
2.1.1.1 Đồ họa trong Mapinfo
Phần đồ họa của Mapinfo là những vật thể được biểu hiện trên màn hình máy
tính giống như bản đồ giấy nhưng có bản chất khác. Phần đồ họa được hiển thị
trong cửa sổ bản đồ (Map Window). Mapinfo sử dụng các khái nệm toán học để
biểu diễn các chi tiết trên bản đồ. Có 3 kiểu khái niệm toán học chính được sử dụng
để xây dựng bản đồ trên Mapinfo (Hình 2.1) :
SV: Trần Văn Phong
22
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
-
Điểm : là một vật thể toán học không có kích thước, không có chiều dài, chỉ
có tọa độ (trong một hệ trục tọa độ nào đó). Người ta sử dụng vật thể điểm để
minh họa cho một thành phố,một trạm xăng,một trường học,... Điểm được
tượng trưng bằng một chấm trong toán học. Trong Mapinfo,tùy theo nội
dung của điểm đó (minh họa cho cái gì) mà người ta có thể sử dụng một
trong nhiều biểu tượng khác nhau để minh họa một điểm. Vì vậy điểm trong
Mapinfo được gọi là biểu tượng (symbol).
-
-
Đường: là một vật thể hình học không có chiều rộng nhưng có chiều dài.
Đường trong Mapinfo bao gồm các thành phần nhỏ được gọi là đoạn
(segment). Giữa hai đoạn liền nhau gọi là nốt (node). Các điểm nốt này cho
phép ta chỉnh sửa các đường.Đường được sử dụng để minh họa cho một con
sông, một đường giao thông,....
Vùng : là một vật thể có diện tích.Vùng cũng bao gồm các thành phần nhỏ là
đoạn và các điểm nốt nhưng đoạn đầu tiên và đoạn cuối cùng gặp nhau nên
tạo ra một đường khép kín và phần phía trong đường ranh giới đó có diện
tích. Vùng có chu vi là đường giới hạn ranh giới của vùng đó. Vùng thực
chất là một hình đa giác.Vùng được sử dụng để minh họa cho một quận, một
tỉnh,một cái ao,...
Hình 2.1: Minh họa các kiểu đồ họa chính trong Mapinfo
Các thông tin đồ họa trên Mapinfo được gọi là các đối tượng (object).
Người làm bản đồ số cần phải biết cách số hóa những thông tin địa lý từ bản
đồ giấy vào bản đồ số sao cho đúng cách.Ví dụ như khi nói đến một cái ao có thể
“nhìn” thấy (tức là thấy được bằng mắt thường trên bản đồ giấy hình dạng của cái
ao ở một tỉ lệ nào đó) thì ta số hóa nó thành một vùng, nhưng khi làm một bản đồ tỉ
lệ rất nhỏ thì ta lại không nhìn thấy hình dạng cái ao đó nên được minh họa thành
SV: Trần Văn Phong
23
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
một điểm.Tương tự như vậy,một con đường trên một bản đồ tỉ lệ nhỏ thì được minh
họa bằng kiểu đường, nhưng trên một bản đồ tỉ lệ lớn thì con đường sẽ có chiều
rộng, lúc đó ta minh họa con đường bằng đối tượng có chiều rộng,lúc đó ta minh
họa con đường bằng một đối tượng kiểu vùng...
Phần đồ họa trong Mapinfo được quản lý theo lớp (layer), có nghĩa là các
thông tin địa lý được tố chức theo từng nhóm,ví dụ như trên bản đồ của một thành
phố, ta có lớp đường xá, lớp quận, lớp địa danh, lớp sông suối... Nhờ khả năng này
mà ta có thể hiển thị thông tin theo ý muốn.Khi muốn sử dụng những thông tin nào
ta có thể mở những lớp thông tin đó ra. Cửa sổ bản đồ có thể chứa một hay nhiều
lớp bản đồ đang được mở. Nếu các lớp bản đồ thuộc cùng một vị trí địa lý thì có thể
hiển thị chồng lên nhau. Ta có thể hình dung mỗi lớp bản đồ như là một tờ giấy
kính (transparency) có hình vẽ và bản đồ giống như nhiều tờ giấy kính chồng lên
nhau để tạo ra một cái nhìn cuối cùng. Các lớp bản đồ được sắp xếp theo thứ tự trên
dưới, có nghĩa là lớp ở dưới bị lớp ở trên che khuất những phần chung.Ngoài ra
phía trên cùng các lớp bản đồ được mở luôn luôn có một lớp mặc định được gọi là
lớp Cosmetic (Cosmetic Layer).Lớp này giống như một lớp nháp, ta có thể đánh dấu
chỉnh sửa vào lớp này và thêm bớt các vật thể đồ họa vào nó nhưng không ảnh
hưởng đến các lớp bản đồ khác ở dưới. Những vật thể được vẽ thêm vào lớp bản đồ
này có thể được lưu dưới dạng được mở hoặc lưu thành một lớp bản đồ riêng. Lớp
Cosmetic còn được sử dụng trong việc trình bày bản đồ khi in ấn, ví dụ như thêm
các chi tiết để trình bày bản đồ. Các đối tượng trong lớp này không có phần dữ liệu.
2.1.1.2 Dữ liệu trong Mapinfo
Ngoài phần đối tượng đồ họa,bản đồ số trong Mapinfo còn có dữ liệu được
hiển thị trong một cửa sổ được gọi là cửa sổ Brower(cửa sổ dữ liệu). Dữ liệu trong
Mapinfo được hiển thị trên một bảng và chúng được cấu trúc theo dữ liệu tương tự
các kiểu dữ liệu khác như Excel,Access,.... Ngoài ra Mapinfo cũng có thể mở các
dữ liệu khác. Ta có thể mở một tập tin Excel hay Access trong Mapinfo và xử lý
chúng như những bảng dữ liệu bình thường của Mapinfo.
Mỗi cửa sổ dữ liệu có thể hiển thị thông tin của một lớp bản đồ hay một phần
của một lớp bản đồ. Cửa sổ này bao gồm các ô giống nhau như bảng tính Excel.
Các ô được xếp theo chiều dọc được gọi là trường(field) hay cột (column). Mỗi cột
hiển thị một loại thuộc tính của đối tượng trên bản đồ số, ví dụ đối với bản đồ các
tỉnh của Việt Nam chẳng hạn, ta có thể có các cột tên tỉnh,diện tích tỉnh,chu vi
tỉnh,dân số,... Mỗi một cột có một định dạng khác nhau tùy theo nội dung chứa
trong cột đó. Ta có thể thêm hay bớt trường cũng như thay đổi định dạng các
trường. Tên trường không hiển thị tiếng Việt được nên khi tạo trường ta không được
gõ dấu tiếng Việt vào tên trường. Trên cùng cửa sổ dữ liệu có tiêu đề cột (in đậm),
tức tên trường. Các hàng trong cửa sổ dữ liệu được gọi là bản ghi (record). Bên trái
SV: Trần Văn Phong
24
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
mỗi hàng có một ô vuông. Khi sử dụng công cụ chọn, ta có thể nhắp chuột lên ô
vuông đó để chọn bản ghi đó. Khi được chọn ô vuông biến thành màu đen. Mỗi một
bản ghi liên kết với một vật thể đồ họa trên cửa sổ bản đồ,hay nói cách khác mỗi đối
tượng đồ họa trên cửa sổ bản đồ có thông tin nằm trên một hàng trong cửa sổ dữ
liệu. Đối tượng đồ họa và dữ liệu là hai thành phần thống nhất của một bản đồ số
trong Mapinfo. Nếu mở cửa sổ đồ họa và cửa sổ dữ liệu của một lớp bản đồ cùng
lúc thì khi sử dụng công cụ chọn, ta có thể nhắp chuột lên chọn một vật thể đồ họa
trên cửa sổ bản đồ. Khi một dối tượng trên cửa sổ bản đồ được chọn thì bản ghi
tương ứng trong cửa sổ dữ liệu cũng được chọn và ngược lại.
Nếu ta quan niệm bản đồ số như là các lớp đối tượng đồ họa thì cửa sổ dữ
liệu là thông tin của vật thể trên bản đồ. Nếu ta quan niệm bản đồ số như là một cơ
sở dữ liệu thì các đối tượng đồ họa trên một lớp bản đồ là một “cột” được gọi là
“cột đối tượng” (object column hay obj column),vì cột đó không hiển thị được trong
cửa sổ dữ liệu nên được hiển thị riêng trong cửa sổ bản đồ. Vì Mapinfo quan niệm
bản đồ số như một cơ sở dữ liệu với các đối tượng trong cửa sổ bản đồ được coi như
một “ cột” nên một bản đồ cũng được gọi là một bảng (table). Mapinfo sử dụng
thuật ngữ này để chỉ cả dữ liệu lẫn đồ họa(“cột” đối tượng) trong một bản đồ số.
Một bảng của Mapinfo có thể không có “cột” đối tượng. Lúc đó chúng hoàn toàn
giống như một cơ sở dữ liệu bình thường, kiểu dữ liệu của Excel hay Access. Cửa
sổ dữ liệu có thể là dữ liệu nguyên thủy của Mapinfo (native) hay dữ liệu của các
định dạng khác (như Excel, Access,...) nhưng được đăng ký vào Mapinfo.
Những tính chất liên quan đến đồ họa của bản đồ số được xử lý trong cửa sổ
bản đồ. Những thông tin liên quan đến dữ liệu (tên,dân số,thuộc tính,đặc điểm,...)
được xử lý trong các trường của cửa sổ dữ liệu. Những thông tin về dữ liệu này có
thể được đưa lên bản đồ bằng một số lệnh khác nhau để minh họa làm rõ bản đồ lúc
trình bày bản đồ để in hoặc tiến hành phân tích như một hệ cơ sở dữ liệu bình
thường và kết quả phân tích cũng có thể được phản ánh trên cửa sổ bản đồ. Ngược
lại một số thông tin trên bản đồ có thể được cập nhật vào dữ liệu bằng một số lệnh.
Tùy nhu cầu của người dùng có thể mở cửa sổ bản đồ hay cửa sổ dữ liệu hoặc mở
cả hai. Ngoài ra còn một số loại cửa sổ khác nữa trong Mapinfo.
2.1.1.3 Giao diện Mapinfo
Khi khởi động Mapinfo trên màn hình có các thành phần chính sau:
-
-
Menu chính : gồm các menu lệnh chính của Mapinfo là File,Edit,Tool,
Object, Query, Table, Options,Map/Browse (hay một menu khác, tùy
vào cửa sổ nào đang được kích hoạt), Window, Help.
Thanh công cụ: Có 3 thanh công cụ chính là Standard, Main, Drawing
SV: Trần Văn Phong
25
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
Thanh công cụ Standard gồm các lệnh thường được sử dụng trên
các menu chính.
Thanh công cụ Main gồm 23 nút lệnh liên quan đến các thành phần
chính của một bản đồ số như lệnh chọn, chỉnh thiết lập cửa sổ bản đồ,
biểu đồ/đồ thị, kiểm soát lớp,...
Thanh công cụ Drawing bao gồm các nút lệnh liên quan đến việc vẽ
và chỉnh sửa phần đồ họa của bản đồ.
Ngoài ra nếu còn có thanh công cụ DBMS.Đây là thanh công cụ cho
phép liên kết và thao tác dữ liệu của các hệ dữ liệu khác nhau như
Access, SQL Server,...
Dưới cùng cửa sổ Mapinfo là thanh trạng thái (Status Bar). Thanh
này cho biết thông tin cũng như tình trạng của cửa sổ đang được kích
hoạt.
SV: Trần Văn Phong
26
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
Menu chính
Thanh công cụ Main
Thanh công cụ Drawing
Thanh công cụ Standard
Cửa sổ Bản đồ
Cửa sổ chính của Mapinfo
Cửa sổ Dữ liệu
Thanh trạng thái
Hình 2.2: Giao diện Mapinfo
Ta mở một bản đồ là bản đồ Việt Nam. Bảng này có tên là vietnam. Cách mở
như sau :
-
Khới động Mapinfo, cửa sổ Quick Start hiện ra.
Chọn Open a Table > Open, vào thư mục chứa tập tin vietnam.tab rồi
chọn nó và tiếp chọn Open.
-
SV: Trần Văn Phong
27
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
Ta sẽ thấy cửa sổ bản đồ được mở ra. Để thấy cửa sổ dữ liệu ta chọn
Window > New Browser Window, cửa sổ dữ liệu của bản đồ vietnam
được mở ra (Hình 2.2).
Ta có thể mở nhiều cửa sổ khác nhau cùng một lúc trong Mapinfo. Tuy nhiên
vào một thời điểm chỉ có một cửa sổ được kích hoạt. Cửa sổ được kích hoạt là cửa
sổ màu xanh trên thanh tiêu đề (màu mặc định, màu này có thể khác tùy thiết lập
màu trên HĐH), những cửa sổ không được kích hoạt có màu xám. Ta kích hoạt một
cửa sổ bản đồ bằng cách nhắp chuột vào thanh tiêu đề của cửa sổ từ menu chính
chọn Window > <tên cửa sổ>. Những thao tác ta thực hiện chỉ tác động lên cửa sổ
nào đó đang được kích hoạt. Cửa sổ kích hoạt luôn nằm trên cùng.
2.1.2 NGÔN NGỮ LẬP TRÌNH MAPBASIC
2.1.2.1 Tổng quan về Mapbasic
MapBasic là ngôn ngữ lập trình trong môi trường MapInfo. MapBasic làm
tăng thêm sức mạnh của MapInfo lên nhiều lần. Nó làm cho tự động hóa được
MapInfo và làm cho các hệ thống GIS làm bằng MapInfo trở nên thương mại hóa.
Bằng MapBasic, chúng ta có thể làm thay đổi hay làm mới hoàn toàn các
thanh menu, các hộp hội thọai của MapInfo. Điều này có nghĩa là, với MapBasic,
chúng ta có thể tạo ra các giao diện hết sức thuận tiện cho MapInfo.
MapBasic được đánh giá cao bởi các tính năng đặc sắc của nó, như:
•MapBaic dễ học, vì nó được phát triển từ Basic chuẩn, và nó rất gần gũi với
Visual Basic.
•Khả năng tự động hóa MapInfo: Nếu thao tác MapInfo bằng "tay" chúng ta
tốn nhiều công sức hơn là khi dùng MapBasic để lập trình cho MapBasic điều khiển
MapInfo thực hiện tự động các thao tác. Trong thực tế, nhiều công việc làm trên
MapInfo không thể thực hiện nổi nếu như không có sự trợ giúp của MapBasic. Một
ví dụ đơn giản, chúng ta không thể thể hiện được vệt của một luồng khói khi nó
chạm đất, nếu không biết lập trình bằng MapBasic hoặc chúng ta tốn khá nhiều thời
gian để vẽ một đối tượng như con đường, sông suối.... Với MapBasic chỉ trong nháy
mắt bạn đã vẽ xong một đối tượng như thế.
•MapBasic là công cụ hữu hiệu để truy vấn dữ liệu. Chẳng hạn, các mệnh đề
Select của MapBasic không những vẫn giữ nguyên sức mạnh của ngôn ngữ SQL mà
còn được phát triển thêm với các đối tượng bản đồ. Các phương tiện truy vấn của
MapBasic cho phép chúng ta lọc, sắp xếp, tổng hợp dữ liệu bản đồ theo các yêu cầu
của chúng ta.
•MapBasic là một ngôn ngữ lập trình mở. MapBasic có khả năng liên kết với
các phương tiện lập trình khác, có thể sử dụng DDE (Dynamic Data Exchange).
Chúng ta cũng có thể sử dụng OLE Automation cùng với MapBasic. Các chương
SV: Trần Văn Phong
28
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
trình MapBasic có thể gọi và sử dụng các file thư viện liên kết động của Windows
(các file.DLL). Các file.DLL này có thể được cung cấp thương mại bởi Windows
hay do chúng ta hay ai đó viết trên các ngôn ngữ khác như C, Delphi, Visual Basic.
•MapBasic cho phép chúng ta tích hợp thiết kế bản đồ với sự liên kết Visual
Basic hay C.delphi với các chức năng của MapInfo.
•Cũng như các ngôn ngữ mạnh khác chạy trên nền Windows, MapBasic cho
phép thực thi các chương trình ứng dụng khác khi nó đang chạy. Và sau khi chạy
xong các chương trình ứng dụng này thì nó hòan trả lại môi trường trước đó của
MapInfo.
Tóm lại, nếu chỉ biết MapInfo thôi thì chưa đủ.
Biết MapBasic sau khi đã biết MapInfo là yêu cầu không thể thiếu với những
ai làm về GIS.
2.1.2.2 Nội Dung
a. Biên tập một chương trình MapBasic
Nhấp New để mở cửa sổ biên tập chương trình
Viết các dòng lệnh MapBasic
Chon mục File -> Save để ghi file chương trình, MapBasic sẽ tự động thêm phần
mở rộng cho tên file là.mb
Chọn mục Project -> Compile để dịch chương trình. Chương trình đã được dịch
có phần mở rộng cho tên file là.mbx
b. Chạy chương trình MapBasic:
Trong Mapinfo, chọn mục Run MapBasic Program. Một cửa sổ hội thoai sẽ
xuất hiện để bạn chọn file mbx để chạy chương trình.
Chú ý: (1)- Sau bước 2, nếu bạn Compile ngay chương trình thì MapBasic sẽ
yêu cầu bạn đặt tên cho file chương trình. Nếu đã được đặt tên trước đó thì
MapBasic sẽ yêu cầu bạn Save file chương trình, rồi nó mới compile cho bạn.
(2)- Sau bước Save, nếu bạn chọn mục Project -> Run thì MapInfo tự động
mở ra để chạy chương trình MapBasic.
Vídụ: ở bước 2, bạn viết dòng lệnh MapBasic sau đây:
Note "Welcome to MapBasic!"
Và ghi vào file với tên: WELCOME.MB
Thì sau khi file WELCOME.mb được dịch sẽ có file WELCOME.MBX
Và bạn chọn file.mbx để Run là WELCOME.MBX
SV: Trần Văn Phong
29
Lớp: Tin học địa chất K52
Đồ án tốt nghiệp
Khoa: Công nghệ thông tin
c. Liên kết các modun để có một chương trình MapBasic dạng.mbx:
Các file modun là các file MapBasic chỉ chứa một phần của chương trình, ví dụ
trong nội dung của nó có Declare Sub một thủ tục nào đó có tên là A, nhưng trong
nội dung của nó bạn chưa mở thủ tục A là
Sub A()
...
End Sub
File này khi được dịch không chuyển được thành file mbx mà thàmh file mbo.
Nhấp New để mở cửa sổ biên tập chương trình
Trong cửa sổ Edit viết đoạn chương trìng sau:
[LINK]
Application=textbox.mbx
Modulee=textbox.mbo
Modulee=auto_lib.mbo
(Giả sử bạn đã có trên đĩa 3 file textbox.mbx và textbox.mbo và auto_lib.mbo)
Chọn File > Save. Với phần mở rộng là.mbP (MapBasic Project)
Chọn File > Close
Chọn Project > Select Project File để chọn file.mbP
Chọn Project > Link Current Project để dịch file MBP này thành.mbX
e. Tên file và kiểu file của MapBasic:
Có các lọai tập tin sau đây:
erros.doc là tập tin text, nó listing các mã lỗi của tập tin
mapbasic.exe là tập tin chạy môi trường Basic
mapbasic.def là tập tin include, nó chứa các mã định nghĩa chuẩn.
Menu.def là tập tin include, nó chứa các mã chuẩn liên quan với menu.
Icons.def là tập tin include, nó chứa các mã chuẩn liên quan với con trỏ
chuột.
SV: Trần Văn Phong
30
Lớp: Tin học địa chất K52
Tải về để xem bản đầy đủ
Bạn đang xem 30 trang mẫu của tài liệu "Luận văn Nghiên cứu lập trình tính biến dạng xoay trong một tam giác địa động lực", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.
File đính kèm:
luan_van_nghien_cuu_lap_trinh_tinh_bien_dang_xoay_trong_mot.docx