Tải bản đầy đủ (.doc) (52 trang)

Tin học chuyên ngành của đóng tàu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (599.96 KB, 52 trang )

LỜI GIỚI THIỆU
Tập bài giảng về “ Tự động hoá thiết kế tàu thuỷ A1” do PGS.TS. Lê Hồng Bang –
Bộ mơn Lý thuyết thiết kế tàu thủy khoa Đóng tàu Đại học Hàng hải Việt Nam biên soạn
nhằm mục đích trang bị cho các sinh viên hệ chính qui chuyên ngành Thiết kế thân tàu thủy
một số những kiến thức cơ bản nhất về tự động hóa tính tốn các yếu tố thủy tĩnh và ổn
định của các loại tàu thủy thông dụng. Bài giảng này là một bộ phận của giáo trình về “Tự
động hóa thiết kế tàu thủy và cơng trình nổi “ sẽ ra mắt bạn đọc nay mai. Tập bài giảng được
chia thành 2 phần: Phần I mang tiêu đề “ PHƯƠNG PHÁP TÍNH TỐN". Phần này sẽ giới
thiệu việc ứng dụng phương pháp số để giải các bài tốn về tự động hóa tính toán các yếu tố
thủy tĩnh và ổn định của tàu thủy bao gồm đa thức nội suy Lagrange, phương pháp bình
phương nhỏ nhất, các phương pháp gần đúng để tính các tích phân xác định. Phần II mang
tiêu đề “ HƯỚNG DẪN SỬ DỤNG phần mềm AUTOSHIP”. Do thời lượng của mơn học
có hạn vì vậy ở phần này người biên soạn chỉ tạm dừng lại ở chổ giới thiệu và hướng dẫn sử
dụng 3 module trong 5 module của phần mềm nêu trên bao gồm: AUTOSHIP;
AUTOHYDRO và AUTOPOWER. Hai
module còn lại là ; AUTOPLATE và
AUTOSTRUCTURE sinh viên sẽ tự nghiên cứu áp dụng khi thấy cần thiết bởi lẻ trong phần
hai của “Tự động hoá thiết kế tàu thuỷ A2” chúng tôi sẽ tập trung hướng dẫn sử dụng phần
mềm SHIPCONSTRUCTOR dành cho tự động thiết kế công nghệ mà trong đó có chứa hai
Module có tính năng mạnh hơn AUTOPLATE và AUTOSTRUCTURE trong AUTOSHIP.
Riêng Phần II của Tập Bài giảng “Tự động hoá thiết kế tàu thuỷ A1” sẽ được in thành một
bộ riêng đủ để các sinh viên và các kỹ sư cũng như các học viên cao học ngành Kỹ thuật tàu
thủy sử dụng một cách có hiệu quả trong q trình thực hiện các bài tốn cụ thể.
Để học và nghiên cứu có hiệu quả môn học này người biên soạn mong muồn bạn đọc
và các em sinh viên chuyên ngành Thiết kế tàu thủy hãy dành một phần thời gian để ôn lại
các kiến thức thuộc chương trình tốn cao cấp dành cho kỹ sư, tham khảo các tài liệu nói về
phương pháp tính, tĩnh học tàu thủy, động lực học tàu thủy, giáo trình tốn ứng dụng trong
kỹ thuật ....
Người biên soạn xin bày tỏ lòng biết ơn chân thành đối với các ý kiến góp ý để tập bài
giảng này sẽ ngày càng hoàn thiện hơn cả về nội dung lẫn phương pháp trình bày. Mọi ý kiến
góp ý xin bạn đọc gửi về cho tác giả theo địa chỉ sau: Bộ mơn Lý thuyết thiết kế tàu thủy


khoa Đóng tàu Đại học Hàng hải hoặc E-Mail:

TÁC GIẢ

MỤC LỤC
1


Chương ,
mục
Chương 1
1.1
1.2
Chương 2
2.1
2.1.1
2.1.2
2.2
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.2.7
2.2.8
2.2.9
2.3.
2.3.1
2.3.2.

2.3.3
2.4
2.4.1
2.4.2
2.4.3
2.4.4
2.4.5
2.4.6
2.5
2.5.1
2.5.2
2.5.3
2.5.4
2.5.5

Tên chương, mục
NGƠN NGỮ LẬP TRÌNH VÀ TỰ ĐỘNG HỐ THIẾT KẾ
Khái niệm về ngơn ngữ lập trình
Giới thiệu một số ngơn ngữ lập trình điển hình
TỰ ĐỘNG HĨA TÍNH TỐN CÁC YẾU TỐ THỦY TĨNH
VÀ TÍNH CÂN BẰNG-ỔN ĐỊNH CỦA TÀU
Phương pháp số dùng trong tự động hố tính tốn các yếu tố thủy
tĩnh và tính cân bằng-ổn định của tàu
Đa thức nội suy Lagrange
Phương pháp bình phương bé nhất
Các phương pháp tính gần đúng tích phân xác định
Đặt bài tốn
Cơng thức hình thang
Đánh giá sai số
Ví dụ

Sơ đồ tóm tắt
Cơng thức Simson
Đánh giá sai số
Ví dụ
Sơ đồ tóm tắt cơng thức Simson
Ứng dụng các phương pháp tính gần đúng tích phân xác định để
tính tốn các yếu tố tính nổi thủy lực và ổn định cho tàu thủy
Phương pháp hình thang
Phương pháp Simpson
Phương pháp Tre-bư-sev
Tính nổi tàu thuỷ
Tính các đại lượng hình học vỏ tàu
Tỉ lệ Bonjean
Thể tích phần chìm và các đại lượng liên quan đển thể tích
Biện pháp nâng cao độ chính xác của các phương pháp tích phân
gần đúng
Tính các đường thuỷ tĩnh trên máy cá nhân
Biểu đồ mang tên Firsov
Cân bằng-Ổn định tàu
Ổn định ngang ban đầu
Ổn định khi tàu nghiêng góc lớn
Đồ thị ổn định
Thuật tốn xác lập họ đường Pan-tô-ka-ren
Dựng đồ thị ổn định trên cơ sở Pan-to-ka-ren
TÀI LIỆU THAM KHẢO

Trang
số
4
4

4
9
9
9
13
15
15
16
17
17
18
19
19
20
20
21
21
22
25
26
26
28
28
31
35
40
41
41
44
46

51
53
54

b¶ng ký hiƯu thêng dïng
2


Ký hiệu
Tên gọi
AV
Diện tích hứng gió
AW
Diện tích mặt đường nước
AM
Diện tích mặt sườn giữa

Ký hiệu
MTRIM
Mchf
M0y

a

M0x

B
Bmax
CB
CM

CW
CV
CP

∆d
∆L
D, d

h
h0, MG
IT
IL
I ’L
kg
L
Lmax
Lkwl
LPP
Lk
lθ, GZ
lchf
Mhp
MV

Khoảng cách từ trọng tâm đến tâm
nổi
Chiều rộng tính tốn
Chiều rộng tồn bộ
Hệ số béo chung
Hệ số béo sườn giữa

Hệ số béo đường nước
Hệ số béo thẳng đứng
Hệ số béo dọc
Lượng chiếm nước trọng lượng
Khoảng cách giữa các đường
nước
Khoảng cách giữa các sườn
Chiều cao mạn, Chiều chìm
cánh tay địn ổn định động
Chiều cao tâm nghiêng ngang
Chiều cao tâm nghiêng ban đầu
Mô men qn tính diện tích
đường nước đối với trục dọc
Mơ men qn tính diện tích
đường nước đối với trục ngang
Mơ men quán tính diện tích
đường nước đối với trục 0’- y’
Hệ số cao độ trọng tâm
Chiều dài tính tốn
Chiều dài tồn bộ
Chiều dài đường nước thiết kế
Chiều dài giữa hai đường vng
góc
Cánh tay địn ổn định hình dáng
Tay địn ổn định tĩnh
Tay địn mơ men nghiêng cho
phép
Mơ men hồi phục
Mơ men nghiêng do gió tác dụng


ZM, KM
ZB, KB
ZC
ZG, KG
ZV
Ω

Tên gọi
Mơ men chúi trên 1 cm
Mô men nghiêng cho phép
Mô men tĩnh diện tích mặt đường
nước đối với trục 0y
Mơ men tĩnh diện tích mặt đường
nước đối với trục 0x
Mơ men tĩnh thể tích đối với xoy
Mơ men tĩnh thể tích đối với y0z
Hoành độ trọng tâm
Hoành độ tâm nổi
Hoành độ trọng tâm đường nước
Góc nghiêng ngang của tàu
Góc chúi của tàu
Tung độ tâm nổi
Nửa tung độ đường nước khảo sát
ứng với sườn thứ i
Cao độ tâm nghiêng ngang
Cao độ tâm nổi
Cao độ tâm nổi
Cao độ trọng tâm
Cao độ trọng tâm hứng gió
Diện tích mặt sườn khảo sát


V

Thể tích lượng chiếm nước

VZ

Thể tích ngâm nước ứng với
đường nước z
Diện tích mặt đường nước tại z
Mơ men tĩnh diện tích mặt sườn
Trọng tâm diện tích mặt sườn
Bán kính tâm nghiêng ngang
Bán kính tâm chúi

Mx0y
My0z
XG
XB
Xf
θ
ψ
YB
yi

SZ
mz
Cz
r, BM
R, BM L


3


Chương 1

NGƠN NGỮ LẬP TRÌNH VÀ TỰ ĐỘNG HỐ THIẾT KẾ
1.1. KHÁI NIỆM VỀ NGƠN NGỮ LẬP TRÌNH
Ngơn ngữ lập trình là những phần mềm để phát triển các ứng dụng. Ngơn ngữ lập trình
đã trải qua q trình phát triển và khơng ngừng hồn thiện, nó là cơng cụ quan trọng đối với
sự phát triển của công nghệ thông tin. Tự động hố tính tốn, thiết kế và hiển thị kết quả tính
đều thơng qua ngơn ngữ lập trình. Những ngơn ngữ lập trình có ứng dụng rộng rãi và hiệu
quả có thể nêu lên sau đây.

1.2. GIỚI THIỆU MỘT SỐ NGƠN NGỮ LẬP TRÌNH ĐIỂN HÌNH

FORTRAN (viết tắt từ FORmula TRANslation) ra đời từ những năm năm mươi,
chính xác hơn năm 1957, ứng dụng chủ yếu trong các ngành khoa học, kỹ thuật.
Phiên bản đầu của FORTRAN thường được nhắc đến với tên gọi FORTRAN II , song
phiên bản được dùng phổ biến nhất là FORTRAN IV. Các dàn máy IBM thời bấy giờ nhận
dạng phiên bản phổ thơng này dưới tên viết ghép FORTRAN. Ngơn ngữ thích hợp cho việc
xử lý những bài toán cỡ lớn của thời đại, được dùng trong các chương trình tính tốn thiết kế
ơ tơ, tàu thuỷ, máy bay, tính tốn độ bền các cơng trình xây dựng, thiết kế tối ưu. Có thể coi
hơn 90% những chương trình lớn trong các lĩnh vực khoa học, kỹ thuật được viết bằng ngôn
ngữ này.
Thực tế sử dụng đã nảy sinh vài vấn đề phiền tối. Các nhà sản xuất các chương trình đa
năng tự cho phép mình viết các bộ dịch cho FORTRAN theo sở trường của riêng mình. Tuy
phần lớn các nhà sản xuất vẫn dựa vào tiêu chuẩn của ANSI - American National Standards
Institute để biên soạn compiler cho FORTRAN IV song chẳng có bộ dịch nào giống bộ dịch
nào, vì người nào cũng cố xé rào khỏi chuẩn ANSI. Tình hình ấy bắt buộc ANSI phải ra tay

thống nhất, năm 1978 phiên bản cuối cùng mang tên ANSI X3.9 - 1978 đã đặt dấu chấm cho
sự bùng phát tự do. Phiên bản này có tên gọi FORTRAN 77, ngày nay được dùng tương đối
rộng rãi.

Algol, viết tắt từ Algorithm, ra đời vào đầu những năm sáu mươi với sự tham
gia rất đơng các nhà tốn học, những người viết chương trình của châu Âu. Ngơn ngữ được
thiết kế rất trong sáng, dễ học, dễ thực hiện. Đây là phiên bản của bộ mơn tốn tính dùng
trong máy tính. Ngơn ngữ thích hợp cho việc giải quyết những vấn đề khoa học của thời đại.
Tất cả các thuật toán chuẩn ra đời trong thời kỳ này được chuyển thành chương trình viết
bằng Algol 60. Cho đến cuối những năm bảy mươi chương trình bằng ngơn ngữ Algol cịn
được chạy trên các dàn máy lớn. Những chương trình mẫu giải quyết những vấn đề tính tốn
theo phương pháp số, đặc biệt phần đại số tuyến tính, viết bằng Algol từ những năm sáu mươi
cho đến tận ngày nay vẫn là những chương trình ưu việt, chưa gì thay được.
Ngơn ngữ này là ngơn ngữ tốt song khơng sinh ra tại Mỹ, có lẻ đó là căn cứ để giải thích
câu hỏi tại sao ngơn ngữ này khơng tìm được chỗ đứng ở Mỹ, việc này đồng nghĩa với sự hạn
chế số người dùng và sự phát triển tiếp theo.

4



COBOL (Common Business Oriented Language) ra đời năm 1960, áp dụng chủ
yếu trong lĩnh vực kinh doanh, thương mại. Ngôn ngữ này được hồn thiện và cịn tìm thấy
chỗ đứng tận hơm nay.

BASIC (viết tắt từ Beginner's All-purpose Symbolie Instruction Code) do
Kemeny và Kurtz phát triển từ năm 1964 tại Mỹ, là ngơn ngữ dùng cho máy tính nhỏ. Basic
dễ học và sử dụng khơng khó lắm, song khả năng giải quyết cơng việc khơng lớn. Điều phiền
tối nữa là ngơn ngữ này thuộc dạng "dễ tính" nên được phát triển gần như khơng kiểm sốt
được. Tồn tại q nhiều "thổ ngữ" từ Basic nên khó chọn thứ tiếng chuẩn mực cho ứng dụng.

Năm 1975 Gates W. viết ngôn ngữ cũng mang tên BASIC cho máy Altair, dạng
microcomputer đầu tiên. Ngôn ngữ mang tên BASIC ngày nay thực tế là các cải biên của thứ
tiếng mà Gates đã đưa ra thời đó.

Ngơn ngữ PL ( Programming Language ) cịn được viết dưới dạng PL1 hoặc
PL/I, cải biên cách viết PL1, được người khổng lồ lúc bấy giờ IBM đặt ra trong thời gian
1963 - 1966 sau thành công của FORTRAN và các ngôn ngữ khác tại Mỹ. Ngôn ngữ thừa kế
những kết quả tốt đẹp của FORTRAN, Algol , Cobol . Bản thân ngơn ngữ bậc cao này cũng
đã có tham vọng sử dụng ngôn ngữ assembly làm các phương tiện nối ghép, chạy chương
trình mẫu. Người ta đặt thêm số 1 cuối tên gọi với hàm ý "ngôn ngữ lập trình số 1". Tuy ý
tưởng hay, thiết kế chuẩn song thực tế không được như ý muốn chủ quan của những người
sinh non ra nó. Ngơn ngữ được quảng cáo rùm beng, song người dùng khơng nhiều vì các
compiler của PL làm việc quá tồi. Ngôn ngữ không thọ được bao lâu, ngày nay thế hệ trẻ khỏi
phải nghe quảng cáo ngơn ngữ number one nữa .

Pascal ra đời chính thức 1971. Người có cơng thiết kế ngơn ngữ là Niklaus
Wirrth . Tên gọi của ngôn ngữ Pascal để ghi nhớ cơng lao của nhà tốn học lớn thế kỷ 17
Blaise Pascal. Ngơn ngữ Pascal thuộc nhóm có cấu trúc chặt, là ngơn ngữ lập trình tiêu chuẩn
bất cứ người lập trình nào cũng nên biết. Theo nhận định của các nhà chuyên môn, đây là thứ
ngôn ngữ "lingua franca", làm cả chức năng "common tongue", là tiếng nói chung cho lập
trình. Ngày nay trong các trường học, trong các lớp học về lập trình, tại các kỳ thi năng khiếu
ngơn ngữ này cịn là ngơn ngữ chính thức để truyền thụ và thi tài.

C là ngơn ngữ lập trình đa năng, ứng dụng vào việc giải quyết những công việc
thực tế nảy sinh từ cuộc sống. C được coi là ngơn ngữ gần "ngơn ngữ máy", có khả năng giải
quyết mọi công việc mà những ngôn ngữ lập trình "bậc cao" sinh trước nó như FORTRAN,
PL1, Pascal đã làm, đồng thời còn giải quyết cả những việc mà đàn anh không muốn chạm
tới, những việc chỉ giành cho ngôn ngữ gần gũi máy như Assembler giải quyết.
Lịch sử phát triển của C có nhiều điều đáng nhắc. Yêu cầu thực tế của AT & T là phải
có ngơn ngữ dùng cho hệ điều hành UNIX, sử dụng trên máy DEC PDP - 11. Việc này được

giao cho Nennis Ritchie. Hệ điều hành, compiler và chương trình ứng dụng đều được
D.Ritchie viết bằng C năm 1972. Thực ra, trước đó Martin Richards đã được giao cơng việc
tương tự và kết quả của nó là ra đời ngơn ngữ có tên viết tắt BCPL. Trên cơ sở BCPL năm
1970 Ken Thompson soạn ngơn ngữ B (có thể bắt nguồn từ cái tên BCPL) và đã soạn đủ phần
mềm để điều hành DEC PDP - 7. Vào năm 1972 với sự cộng tác của K.Thompson , D.Ritchie
đã đi từ B đến C. Nguồn gốc của tên gọi "C" chỉ đơn giản vậy. Năm 1978 nhà xuất bản
Prentice - Hall tung ra thị trường "The C Pragramming Language" do Brian W . Kernighan và
Dennis M.Ritchie, viết tắt là K & R cùng viết. Sách ra đời là món q vơ giá đối với giới lập
trình. C vượt ra khỏi ranh giới ban đầu là ngôn ngữ của hệ điều hành UNIX để thâm nhập vào
DOS và hệ điều hành của IBM. Năm 1983 American National Standarts Institute (ANSI)
thành lập uỷ ban này là khẳng định tính đúng đắn của C và uỷ ban chấp nhận (có thêm bớt)
ngơn ngữ C với tên "ANSI C". ANSI C chính thức có hiệu lực từ năm 1988. Cuối những năm

5


tám mươi và đầu những năm chín mươi thế giới lập trình chứng kiến sự bùng nổ ứng dụng C.
Ngơn ngữ C đang lấn sân những ngơn ngữ lập trình đàn anh đã một thời vang bóng.
Ngồi hệ điều hành UNIX của AT & T, nhiều hãng sản xuất phần mềm xây dựng các bộ
dịch C để đưa vào hoạt động. Các bộ dịch có độ tin cậy cao gồm :
• Turbo C ++ Professinal, Borland C++
• Zortech C cho máy IBM PC
• Microsoft C
• Mixsoftware's Power
Điểm mạnh của C được thể hiện trên nhiều mặt. C rất gần với ngôn ngữ Assembly và
giao tiếp dễ dàng với Assembly. C thao tác trên các bit nhanh chóng, chính xác và hiệu quả
như ngôn ngữ máy vẫn làm. C chấp nhận làm việc với mọi kiểu dữ liệu, với độ chính xác do
người dùng đặt. Với biến con trỏ C phát huy thế mạnh khi thao tác mảng, chuỗi, hàm, v v...
So với các ngơn ngữ lập trình khác, C điều khiển con trỏ thuần thục, dễ dàng hơn. Con trỏ
giúp C đẩy nhanh tốc độ tính tốn, giảm chi phí bộ nhớ. Con trỏ làm cho C vượt trội các ngơn

ngữ khác về tính mềm mại, dễ sử dụng và tạo cho C sức mạnh để chinh phục các vấn đề phức
tạp.

Ngơn ngữ C++
Bản thân C++ là sự phát triển ở mức cao từ C, song nó lại khơng hồn tồn là C. Ngơn
ngữ C thuộc nhóm ngơn ngữ lập trình có cấu trúc chặt, cịn C ++ lại tạo cho người viết những
thoả mái ngoài mong đợi .
Trong C chương trình được xây dựng với mục đích rất cụ thể, để giải quyết một việc cụ
thể nào đó. C ghi nhận dữ liệu và dữ liệu đó có thể ở dạng đơn giản hoặc phức tạp, xử lý dữ
liệu và thông báo ra cũng là dữ liệu là đối tượng phục vụ của nó. Cịn C++, hiểu theo nghĩa
lập trình hướng đối tượng (OOP) thì lại nhắm vào đối tượng, mà đối tượng theo nghĩa chung
nhất là một cái gì đó có giới hạn.
Trong đối tượng người ta đưa dữ liệu vào và cả các phương pháp khai thác, sử dụng dữ
liệu nữa. Và lập trình hướng đối tượng không chỉ hạn chế làm một việc cụ thể mà giải quyết
bất kỳ việc gì cần cho đối tượng.
Trước khi mang tên C++ ngơn ngữ này có tên ban đầu là "C with Classes" tức là "C với
các lớp". Lớp đi liền với chúng ta khi còn dùng C++.
C ra đời trên thực tế từ 1972 từ Bell Labs do Dennis Ritchie và Ken Thompson viết. Ban
đầu C chưa nổi tiếng ngay, nó phát triển âm thầm cho đến năm 1978 khi Brian Keringhan và
Dennis Ritchie tung ra "The C Programming Language". Từ đó ngơn ngữ C phát triển nhanh
và được tiêu chuẩn hoá bằng hội đồng của ANSI ( Mỹ ), từ 1983 đến năm 1988. Ngôn ngữ
ANSI C được chính thức khai tên từ 1988.
C++ tự nó đã là ngơn ngữ lập trình như tên gọi của cuốn sách, song nó thừa kế một cách
hồn mỹ những gì tốt đẹp nhất của C và phát triển sự tốt đẹp ở mức cao hơn. Thực tế đã
chứng minh C là ngơn ngữ uyển chuyển, có khả năng thâm nhập vào các lĩnh vực tính tốn,
quản lý song C++ cịn linh hoạt và uyển chuyển hơn. C là ngôn ngữ vô cùng mạnh song C ++
được coi là mạnh hơn.
Giống như các ngơn ngữ lập trình khác, C theo nghĩa cũ vẫn bị rào cản trong một vài
hạn chế, còn C++ đang phá bỏ rào cản đó. Trong thực tế có thể coi C++ là cơng cụ làm việc
thích hợp cho những người lập trình. Trong quản lý dữ liệu, C và nhiều ngơn ngữ khác sử

dụng struct (hay cịn gọi là record nếu hiểu theo nghĩa chung nhất) để quản lý các đối tượng.
Cơng việc quản lý đó khơng có gì chê trách được. Song khác với struct, khi C ++ đưa vào lớp
(class) cả đối tượng và công cụ quản lý đối tượng nó liền phát huy thế mạnh đến mức không
ngờ được.
6


Ngơn ngữ lập trình nếu kể đầy đủ phải bao gồm từ ngôn ngữ máy và ngôn ngữ gần với
ngôn ngữ máy. Có thể xếp các ngơn ngữ máy tính vào trong năm nhóm, hay nói cách khác
trong năm thế hệ của ngơn ngữ lập trình.
Thế hệ đầu tiên giành chỉ các mã số 0 và số 1 mà mỗi bit của máy tính đều hiểu. Ngơn
ngữ này làm người thông ngôn duy nhất trong những năm bốn mươi đến đầu những năm năm
mươi. Tại thời điểm này máy chỉ có thể "hiểu" ngơn ngữ độc nhất là mã nhị phân (binary
code), gồm 0 và 1. Ngôn ngữ đầu tiên này cịn mang tên gọi "ngơn ngữ máy".
Thế hệ thứ hai của ngơn ngữ máy tính đánh dấu bằng sự ra đời của ngơn ngữ Assembly,
ngày nay có người dịch là hợp ngữ. Assembly giúp cho máy tính nhận diện và dịch sang ngôn
ngữ máy các mã mnemonic như ADD (cộng, thêm vào), SUB (trừ), MOV (dịch chuyển) v v...
Các chương trình sử dụng các mnemonic để viết được gọi là assembly, cịn chương trình dịch
assembly sang ngơn ngữ máy có tên gọi là Assembler. Ngơn ngữ Assembly ra đời trong
những năm năm mươi và đến tận hơm nay cịn giữ được vị trí rất cao trong làng ngơn ngữ lập
trình, mặc dầu bản thân nó là cầu nối giữa "ngôn ngữ bậc thấp" với "ngôn ngữ bậc cao".
Thế hệ thứ ba đánh dấu bằng sự ra đời và thống trị của "ngôn ngữ bậc cao" (tiếng Anh
viết là HLL - high level languages), kể từ Algol, FORTRAN,... Ngôn ngữ bậc cao cịn được
gọi là ngơn ngữ thủ tục hố. Sở dĩ có tên gọi như vừa nêu vì rằng cách diễn đạt bằng ngôn từ
khi dùng HLL không khác gì làm thủ tục tính tốn. Người ta viết các lệnh dưới dạng cơng
thức tính như đang viết cơng thức tốn vậy, khơng hề để ý đến ngun lý làm việc của ngôn
ngữ máy là thứ ngôn ngữ duy nhất máy có thể hiểu. Ví dụ khi cần tính "số quả còn lại C, nếu
biết rằng tổng số quả A, em đã ăn B quả", người lập trình chỉ cần ra lệnh:
C=A-B
Để máy hiểu được ý trên nhất thiết phải dịch dịng lệnh này ra ngơn ngữ máy. Những bộ

dịch cho HLL mang một trong hai tên gọi "compiler" hoặc "interpreter". Thứ tự truyền đạt
lệnh đến máy có thể hình dung như sau: người lập trình → compiler hoặc interpreter →
Assembler → máy tính.
Bạn đọc cần phân biệt hai tên gọi vừa nêu "compiler" và "interpreter" cùng làm một
việc, trong tiếng Anh người ta dùng khái niệm "translation" (nghĩa của nó là dịch) để diễn
đạt việc ấy. Compiler dịch tồn bộ chương trình giống như cách dịch tồn bộ bài nói của một
ai đó từ tiếng nước này sang ngơn ngữ của nước chủ nhà. Trong khi đó interpreter dịch từng
câu lệnh một, giống kiểu người phiên dịch (tiếng Anh gọi là interpreter) chuyển từng câu nói
của một vị khách sang tiếng chủ nhà. Trường hợp bắt buộc phải có mặt cả hai thành phần cho
công việc dịch là người phát biểu bằng tiếng nước ngoài và người phiên dịch. Compiler thực
hiện công việc nhanh hơn, gọn hơn. Công việc kiểu sau chậm hơn vì phải chờ thơng tin qua
lại giữa người phát biểu và phiên dịch viên. Tuy nhiên interpreter có ưu điểm nổi trội là làm
cho chương trình hoạt động thuận lợi và dễ dàng hơn. Vì khơng cần thiết phải dịch xong tồn
bộ chương trình mới chạy chương trình, interpreter chuyển từng phần chương trình vào hoạt
động nếu phần việc ấy đã được viết đúng bằng ngôn ngữ lập trình. Trường hợp có lỗi trong
câu lệnh, interpreter phát hiện lỗi ngay tức thì và yêu cầu chỉnh lại ngay lúc đó. Sau mỗi lần
chỉnh, nếu đúng, câu lệnh sẽ được thực thi ngay. Trong thực tế người ta đang kết hợp cả hai
cách làm việc nhằm đẩy mạnh tốc độ thực hiện và tạo thuận lợi tối đa cho người dùng.
Tại đây bạn đọc cần làm quen thêm với khái niệm mã nguồn và mã đối tượng. Mã
chương trình được gọi là mã nguồn. Sản phẩm có xuất xứ từ mã nguồn, sau khi dịch gọi là
mã đối tượng. Tất cả phần mềm khi bán ra đều được ghi lại dưới dạng mã đối tượng. Với các
bản dịch người dùng khơng cịn một khả năng nào để đọc, để nhận biết và khơng có cách nào
để cải biên, thay đổi.

7


Thế hệ thứ tư giành cho ngôn ngữ bậc rất cao (Very high level languages). Trong trào
lưu này, nhờ những Generator, người ta chỉ cần đưa những đặc trưng chính của công việc,
generator chuyển thông tin vào hệ thống làm việc của máy như đã miêu tả cho thế hệ trước,

máy tính "tự động" tạo ra những chương trình ứng dụng. Ý này, phục vụ công việc quản lý cơ
sở dữ liệu (tiếng Anh: Database Management) mang dáng dấp của ngôn ngữ thế hệ thứ tư
này. Các ngôn ngữ SQL (viết tắt từ Structured Query Language), QBE (Query-by-Example)
và QUEL (Query Language) là đại biểu xuất sắc nhất trong nhóm. Từ 1986 bắt đầu q trình
tiêu chuẩn hố SQL. Năm 1992 ANSI chính thức thơng qua tiêu chuẩn cho SQL-92. SQL
đang được dùng trong các phiên bản Sybase SQL Server, Microsoft SQL Server, IBM OS/2
Extended Edition Database Manager, DEC RDb/VMS và Oracle Server for OS/2 vv... Trong
tài liệu này sẽ không đề cập đến ngơn ngữ này, người viết chỉ có thể hứa nhanh chóng hồn
tất bản thảo giới thiệu tài liệu về các ngôn ngữ này.
Thế hệ thứ năm gắn liền với nhóm ngơn ngữ trí tuệ nhân tạo (AI-Artificial Intelligence).
Đây là ngôn ngữ không - thủ tục (khác với khái niệm ngôn ngữ thủ tục vừa nêu trên), gắn liền
với trạng thái của đối tượng trong vấn đề đang giải quyết, với quan hệ giữa các đối tượng.
Một trong các ngơn ngữ đang dùng có kết quả PROLOG, đang được người Nhật chấp nhận,
phát triển và hồn thiện. Ngơn ngữ mang tên Nhật HIMIKO xuất phát từ PROLOG, đang là
cơ sở cho nhóm ngơn ngữ thế hệ thứ năm này. Trong lĩnh vực quản lý dữ liệu, sự gắn bó giữa
ngơn ngữ thế hệ thứ tư và thứ năm đã sinh ra DATALOG chuyên phục vụ công tác hệ thống
dữ liệu. Ngôn ngữ LDL (Logic Data Language) đang chiếm vị trí xứng đáng trong lĩnh vực
truyền dữ liệu.
Cần nói thêm, ngơn ngữ LISP cũng thuộc nhóm ngơn ngữ trí tuệ nhân tạo, được phát
triển từ những năm sáu mươi tại Mỹ, ngày nay đang đóng vai trị hết sức quan trọng trong
cơng cuộc tự động hố thiết kế. Tài liệu về LISP và AutoLISP đề nghị bạn đọc tìm hiểu thêm
qua sách chuyên đề của cùng người viết.

Chương 2

8


TỰ ĐỘNG HĨA TÍNH TỐN CÁC YẾU TỐ THỦY TĨNH VÀ
TÍNH CÂN BẰNG-ỔN ĐỊNH CỦA TÀU

2.1. PHƯƠNG PHÁP SỐ DÙNG TRONG TỰ ĐỘNG HỐ TÍNH TỐN
CÁC YẾU TỐ THỦY TĨNH VÀ TÍNH CÂN BẰNG-ỔN ĐỊNH CỦA TÀU
Chương này sẽ giới thiệu với bạn đọc việc sử dụng các phương pháp tính thơng dụng
khi xử lý những bài tốn thường gặp trong tính tốn các yếu tố tính nổi – thủy lực của tàu.
Các phương pháp được đề cập ở trong phạm vi tài liệu này bao gồm: phương pháp tích phân
gần đúng, phương pháp nội suy và phương pháp bình phương nhỏ nhất.

2.1.1. Đa thức nội suy Lagrange
Trong thực tế nhiều khi người ta phải giải bài toán ngược sau đây: Người ta khơng biết
chính xác hàm số f(x) mà chỉ biết một tập rời rạc hữu hạn của đồ thị biểu diễn nó và một vài
nét hết sức khái quát của hàm f(x); người ta muốn dựng lại hàm số f(x) và dĩ nhiên không
thể nào dựng đúng nguyên xi hàm f(x) (vì bản thân hàm số f(x) cũng chưa được biết) nhưng
người ta hy vọng rằng sẽ dựng được một hàm số có các tính chất như hàm số f(x) và dĩ nhiên
đồ thị biểu diễn hàm số được dựng nên ít ra thì cũng gần trùng với đồ thị của hàm f(x) tại
tập hợp các điểm rời rạc đã cho trước ví dụ như từ số liệu thống kê các đặc trưng của một số
đối tượng khảo sát bất kỳ nào đó; từ kết quả thí nghiệm tại phịng thí nghiệm; từ số liệu thử
mơ hình tàu thủy tại bể thử v.v….
Ví dụ ta muốn phục hồi một hàm số f(x) tại mọi giá trị của x X [ a, b] nào đó mà chỉ biết
một số hữu hạn gồm (n +1) giá trị của hàm số đó tại các điểm rời rạc x0 , x1, …, xn X [a, b] .
Các giá trị rời rạc này được cho dưới dạng bảng sau:
x
y

x0
y0

x1
y1

x2

y2




xi
yi

….


xn
yn

Khi đó ta đặt vấn đề là tìm một đa thức bậc n :
Pn(x) = a0 + a1x + a2x2 + … + anxn, an ≠ 0 với a0, a1, …., an X R sao cho Pn(x) trùng với f(x)
tại các nút xi , i = 0, n nghĩa là Pn(xi) = f(xi) = yi.
Đa thức Pn(x) tìm được đó được gọi là đa thức nội suy. Ta chọn đa thức nội suy hàm số
f(x) vì đa thức là loại hàm số đơn giản nhất và dễ xác định nhất.
Như vậy ta sẽ có định lý sau: Nếu tồn tại đa thức nội suy Pn(x) của hàm số f(x) thì đa
thức đó là duy nhất.
CM: Thật vậy nếu có hai đa thức Pn(x) và Qn(x) cùng là đa thức nội suy của hàm f(x).
Lúc đó theo định nghĩa ta có:
Pn(xi) = yi ; Qn (xi) = yi.
Vậy hiệu số Pn(xi) – Qn(xi) cũng là môt đa thức có bậc khơng vượt q n và bị triệt tiêu
tại n + 1 giá trị khác nhau xi, i = 0, n (Vì Pn(xi) – Qn(xi) = yi – yi = 0, i = 0, n ). Do vậy đa thức
hiệu Pn(x) – Qn(x) phải đồng nhất bằng khơng, nghĩa là Pn(xi) ≡ Qn(xi).
Có thể tồn tại nhiều đa thức nơi suy nhưng do tính duy nhất nên chúng có thể đều được
quy về nhau được. Dưới đây chúng ta sẽ xây dựng đa thức nội suy theo kiểu Lagrange, gọi
là đa thức nội suy Lagrange và được ký hiệu là Ln(x).

Đa thức nội suy Lagrange được viết dưới dạng:
f(x) = Pn(x) + Rn(x)
(2.1)
9


hoặc dạng đầy đủ:
n
 n
 f ( n +1) (ξ )
f ( x) = ∑ Li ( x) f ( xi ) + ∏ ( x − xi )
, a <ξ i =0
 i =0
 (n + 1)!

n  x− x
j
Li ( x) = ∏ 

j = 0  xi − x j
j≠ i

trong đó
Cụ thể như sau:
Li ( x) =







( x − x 0 ) ( x − x1 ) ... ( x − xi −1 ) ( x − xi +1 ) ... ( x − x n ),
( xi − x 0 )( xi − x1 ) ... ( xi − xi −1 )( xi − xi +1 )... ( xi − x n )

(2.2)

(2.3)

, i = 0, n

Hiển nhiên Li(x) là đa thức bậc n và
1 khi j = i
Li ( x j ) = 
0 khi j ≠ i

(2.4)

Li(x) được gọi là đa thức Lagrange cơ sở.
n

Đa thức Pn ( x) = ∑ Li ( x ) f ( xi ) mang tên gọi đa thức Lagrange, còn số hạng thứ hai
i =0

của vế phải công thức (2.2) gọi là hàm sai số.
Đa thức Pn(x) được hiểu là đa thức bậc n và được khai triển dưới dạng:
Pn(x) = a0 (x - x1)(x - x2)... (x - xn) +
+ a1(x - x0)(x - x2)... (x - xn) +
+ a2(x - x0)(x - x1) (x – x3) ... (x - xn) +
...

+ ai(x - x0)(x - x1)... (x - xi-1)(x - xi+1)... (x - xn)
...
an(x - x0)(x - x1)... (x - xn-2)(x - xn-1)
(2.5)
Các hệ số a0, a1, a2, ... được xác định từ quan hệ:
Pn(xi) = f(xi) = yi; i = 0, 1, 2, ...
(2.6)
Lần lượt thay x = x0, x = x1, ... vào cơng thức (2.5) ta có thể xác định được cơng thức
tính các hệ số ai .
Ví dụ, từ Pn(x0) = f(x0) = y0 = a0(x0 - x1)(x0 - x2)... (x0 - xn) sẽ nhận được:
f ( x0 )

a0 =

f ( x0 )
n
= Π (x − x )
i
j
( x0 − x1 )( x0 − x2 )...( x0 − xn )
j =0
j ≠i

tương tự ta có thể viết:

a1 =

f ( x1 )
( x1 − x0 )( x1 − x 2 )...( x1 − x n )


...
an =

f ( xn )
( x n − x0 )( x n − x1 )...( x n − x n −1 )

Hệ số thứ i có dạng tổng quát:

10


ai =

f ( xi )
( xi − x0 )( xi − x1 )...( xi − xi −1 )( xi − xi +1 )...( xi − xn )

(2.7)

Thay các biểu thức vừa xác định vào vị trí a0, a1, ..., an sẽ nhận được cơng thức nội suy
hay cịn gọi đa thức Lagrange:

Pn ( x) =

( x − x1 )( x − x2 )...( x − xn )
( x − x1 )( x − x2 )...( x − xn )
y0 +
y1 +
( x0 − x1 )( x0 − x2 )...( x0 − xn )
( x1 − x0 )( x1 − x2 )...( x1 − xn )


( x − x1 )( x − x2 )...( x − xn )
+ ... +
yn
( xn − x0 )( xn − x1 )...( xn − xn−1 )

(2.8)

hoặc dưới dạng tổng quát ta có:
n  x − x
j
Li ( x ) = ∏ 
Pn ( x) = ∑ Li ( x) f ( xi ) , với

j =0  xi − x j
i= 0
j ≠i
n






Những trường hợp riêng của hàm nội suy Lagrange:
Với n = 1:
x
y

x0
y0


x1
y1

Đa thức nội suy có dạng

( x − x0 )
( x − x1 )
y0 +
y1
(2.9)
( x0 − x1 )
( x1 − x0 )
Hàm P1(x) là đoạn thẳng qua hai điểm (x0, y0) và (x1, y1), có tên gọi cơng thức nội suy
tuyến tính.
Thí dụ:
Cho bảng số:
x
1
2
y
17
27,5
P1 ( x) =

Hãy lập đa thức nội suy tương ứng.
Lời giải:
Ở đây n = 1 nên đa thức nội suy sẽ có dạng đa thức bậc nhất. Như vậy đa thức được viết
như sau:
P1 (x) = 17


( x − 2)
( x − 1)
+ 27,5
(1 − 2)
(2 − 1)

Rút gọn biểu thức ta có:

P1(x)= 6,5+ 10,5x
Với n = 2:
x
y

x0
y0

x1
y1

x2
y2

Đa thức nội suy có dạng
11


P2 ( x) =

( x − x 0 )( x − x 2 )

( x − x 0 )( x − x1 )
( x − x1 )( x − x 2 )
y0 +
y1 +
y2
( x 0 − x1 )( x 0 − x 2 )
( x1 − x 0 )( x1 − x 2 )
( x 2 − x 0 )( x 2 − x1 )

(2.10)

Hàm thứ hai là đường parabol bậc hai qua ba điểm cho trước, gọi là nội suy bậc hai.
Thí dụ:
Cho bảng số:
x
y

1
17

2
27,5

3
76

Hãy lập đa thức nội suy tương ứng.
Lời giải:
Ở đây n = 2 nên đa thức nội suy sẽ có dạng đa thức bậc 2. Như vậy đa thức được viết
như sau:

P2(x) = 17

( x − 2)( x − 3)
( x − 1)( x − 3)
( x − 1)( x − 2)
+ 27,5
+ 76
(1 − 2)(1 − 3)
( 2 − 1)(2 − 3)
(3 − 1)(3 − 2)

Rút gọn biểu thức ta có:

P2(x)= 19x2 – 46,5x + 44,5
Với n =3
Thí dụ:
Cho bảng số:
x
y

1
17

2
27,5

3
76

4

210,5

Hãy lập đa thức nội suy tương ứng.
Lời giải:
Ở đây n = 3 nên đa thức nội suy sẽ có dạng đa thức bậc 3. Như vậy đa thức được viết
như sau:
( x − x1 )( x − x2 )( x − x3 )
( x − x0 )( x − x2 )( x − x3 )
P3 ( x) =
y0 +
y1 +
( x0 − x1 )( x0 − x2 )( x0 − x3 )
( x1 − x0 )( x1 − x2 )( x1 − x3 )

( x − x0 )( x − x1 )( x − x3 )
( x − x0 )( x − x1 )( x − x 2 )
y2 +
y3
( x 2 − x0 )( x 2 − x1 )( x 2 − x3 )
( x3 − x0 )( x3 − x1 )( x3 − x2 )

(2.11)

( x − 2)( x − 3)( x − 4)
( x − 1)( x − 3)( x − 4)
+ 27,5
+
(1 − 2)(1 − 3)(1 − 4)
(2 − 1)(2 − 3)(1 − 4)
P3 (x) =

( x − 1)( x − 2)( x − 4)
( x − 1)( x − 2)( x − 3)
+ 76
+ 210,5
(3 − 1)(3 − 2)(3 − 4)
(4 − 1)(4 − 2)(4 − 3)
17

Rút gọn biểu thức ta có:

P3(x)= -3,5+ 41,5x - 29x2 + 8x3
2.1.2. Phương pháp bình phương nhỏ nhất
2.1.2.1. Đặt bài tốn

12


Giả sử có hai đại lượng (vật lý, hóa học, kỹ thuật …) x và y có mối liên hệ phụ thuộc
nhau theo một số qui luật đã biết nào đó ví dụ như:
1)
y = a + bx
2)
y = a + bx + cx2
3)
y = a+ b cosx + csinx
4)
y = aebx
5)
y = axb
nhưng chưa biết các giá trị cụ thể của các tham số a, b,c. Muốn xác định chúng người ta cần

thực hiện các thí nghiệm, các đo đạc v.v…. một số cặp giá trị tương ứng (x i, yi), với i =1,2,…,
n theo bảng sau:
x
y

x1
y1

x2
y2




xn
yn

rồi áp dụng phương pháp bình phương bé nhất để xác định các tham số a, b, c.

2.1.2.2. Xét trường hợp y = a + bx
Giả sử y phụ thuộc x dạng bậc nhất y = a + bx và khi đó ta có
yi - a - bxi = εi , i = 1,2, …, n là các sai số tại xi , do đó ta có

S = ∑ ( y i − a − bxi ) 2

(2.12)

là tổng các bình phương của các sai số.
S phụ thuộc vào tham số a và b cịn xi và yi đã biết.
Như vậy mục đích của phương pháp bình phương bé nhất là xác định các tham số a và

b sao cho S bé nhất. Muốn vậy a và b phải là nghiệm của hệ phương trình sau:
∂S
∂S
= 0;
=0
∂a
∂b

tức là:

(2.13)

n a + b ∑ xi = ∑ y i

(2.14)

a ∑ xi + b ∑ x = ∑ x i y i
2
i

Từ bảng 2.1.2 ta sẽ tính được các tổng ∑ xi , ∑ y i , ∑ xi , ∑ xi y i , thay vào hệ phương trình
(2.14) rồi giải hệ đó ta sẽ nhận được a và b.
Hệ (2.14) gọi là hệ chính tắc của phương pháp bình phương nhỏ nhất được viết cho
dạng y = a + bx.
2

2.1.2.3. Thí dụ
Cho biết sự phụ thuộc giữa hai đại lượng x và y có dạng y = a + bx và được cho ở bảng
2.1
x

y

- 1,1
0,78

2,1
7,3

3,2
9,2

4,4
11,9

Bảng 2.1
5,2
13,3

Hãy xác định các tham số a và b bằng phương pháp bình phương bé nhất.
Lời giải:
Bước 1. Lập bảng số như sau (Bảng 2.1.1):
13


Bảng 2.1.1
xi

n =5

∑ xi = 13,8

i =1

x

0,78
7,3
9,2
11,9
13,3

- 1,1
2,1
3,2
4,4
5,2

n=5
Σ

yi

1,21
4,41
10,24
19,36
27,24

5

5


∑ yi = 42,48

∑ xi2 = 62,26

1

xi yi

2
i

1

- 0,858
15,33
29,44
52,36
69,16
5

∑x

i

y i = 165,432

1

Bước 2. Lập hệ phương trình sau:

5a + 13,8 b = 42,48
13,8a + 62,26 b = 165,432
Giải hệ phương trình này bằng một trong những pbhuwowng pháp đã biết chúng ta sẽ
xác định được tham số : a = 2,9939036 y3 và b = 1,9935131y 2.
Vậy ta viết được phương trình cuối cùng như sau:
y=3+2x
(2.15)
Bây giờ chúng ta thử tính các giá trị mới của y tại các xi theo phương trình (2.15) và
so sánh chúng với các giá trị yi đã cho bởi bảng 2.1. (Xem bảng 2.1.2)
Bảng 2.1.2
x
- 1,1
2,1
3,2
4,4
5,2
y (cũ)
0,78
7,3
9,2
11,9
13,3
y (mới)
0,8
7,2
9,4
11,8
13,4
Như vậy quan hệ (2.13) xấp xỉ khá tốt với các số liệu đưa ra ở bảng 2.1.3


2.1.2.4. Các dạng quan hệ khác
Các dạng quan hệ (2), (3) được giới thiệu ở mục 2.1.2.1. là các mối quan hệ tuyến tính
đối với các tham số a, b và c nên cũng có thể giải quyết một cách tương tự. Chẳng hạn,
nếu :
y = a + bx + cx2
thí các tham số a, b và c là nghiệm của hệ phương trình chính tắc sau:

n a + b ∑ x i + c ∑ xi2

=

∑y

i

a ∑ x i + b ∑ xi2 + c ∑ xi3 =

∑x y

a ∑ xi2 + b∑ xi3 + c ∑ xi4 =

∑x

i

i

2
i


(2.16)

yi

Trường hợp các mối quan hệ (4) và (5) ta phải biến đổi đôi chút vì đó là những mối
quan hệ phi tuyến đối với các tham số a và b.
Giả sử y = a ebx , với a > 0
Lấy lơ-ga-rít thập phân hai vế ta được :
lg y = lg a + bx lge.
Đặt lg y = Y, lg a = A, blge = B , x = X Y Y = A + BX
14


Đây chính là mối quan hệ y = a + bx mà ta đã xét ở trên. Từ bảng số liệu về mối quan
hệ giữa y và x ta suy ra bảng số liệu về X và Y với chú ý:
X = x ; Y = lg y
Sau đó áp dụng cách làm ở trên và sẽ thu được A và B rồi từ đó suy ra a và b

2.1.2.5. Sơ đồ thuật tốn của phương pháp bình phương nhỏ nhất
a) Cho mối quan hệ y = a + bx
2
1. Tính các tổng ∑ xi , ∑ y i , ∑ xi , ∑ xi y i
2. Giải hệ chính tắc :
n a + b ∑ xi = ∑ y i

a ∑ xi + b ∑ xi2 = ∑ xi y i tìm a và b
3. Kết luận: Viết ra phương trình cuối cùng
b) Cho mối quan hệ y = a ebx
1. Lấy lơ-ga-rít hai vế của y = aebx
2. Chuyển bảng số giữa x và y thành bảng số X và Y

3. Tính các tổng
4. Giải hệ chính tắc để tìm A và B
5. Tính : a = aA, b = B/lge
6. Kết luận.

2.2. Các phương pháp tính gần đúng tích phân xác định
2.2.1. Đặt bài tốn
b



Xét tích phân xác định : I = f ( x) dx
a

Nếu f(x) liên tục trên [a, b] và có nguyên hàm là F(x) thì cơng thức Niu-tơn - Lép-nít
cho:
b

I = ∫ f ( x) dx = F(b) – F(a)

(2.17)

a

Nhưng nếu khơng tìm được nguyên hàm của f(x) ở dạng sơ cấp hoặc ngun hàm đó
q phức tạp thì tích phân I phải tính gần đúng. Sau đây sẽ trình bày hai cơng thức tính gần
đúng tích phân I dựa trên tư tưởng thay hàm f(x) bằng một đa thức nội suy.

2.2.2. Công thức hình thang
Ta chia [a, b] thành n đoạn con bằng nhau bởi các điểm chia xi :

a = x0 < x1 < ….< xn-1 = b
xi = a + i h, h =

(b − a )
, với i = 0, 1, …, n
n

Đặt yi = f(xi)
b

Ta có

I = ∫ f ( x) dx =
a

x2

x1

∫ f ( x) dx

x0

+

xn

x1

xn −1


∫ f ( x) dx +…+ ∫ f ( x) dx

(2.18)
Để tính mỗi tích phân ở vế phải ta thay hàm f(x) bằng một đa thức nội suy bậc nhất
P1(x). Với tích phân thứ nhất ta có:

15


x1

x1

x0

x0

∫ f ( x) dx ≈ ∫ P ( x)dx
1

Đổi biến x = x0 + ht thì dx = hdt, ứng với x0 là t0 = 0 , ứng với x1 là t = 1, nên ta có
x1
1
t =1
y +y
t2
1



P1 ( x) dx = h ∫ ( y 0 + t∆y 0 ) dt = h ( y 0 t + ∆y 0 )
= h  y 0 + ∆y 0  = h 0 1 .

t =0
2
2
2


x0
0
x1

Vậy ta có :



f ( x) dx ≈ h

x0

y0 + y1
2

Về mặt hình học điều đó có nghĩa là: Thay diện tích hình thang cong x0M0M1x1 bởi
diện tích hình thang thường x0M0M1x1 (Hình 2.1)

M1

M0


x0

Hình 2.1
xi +1

Đối với tích phân thứ i + 1 ta có:



x1

f ( x) dx ≈ h

xi

yi + yi +1
2

Vậy công thức (2.18) được viết lại như sau:
b



f ( x) dx ≈

a

h
[ ( y0 + y1 ) + ( y1 + y2 ) + ... + ( yn−1 + yn )]

2

b

Nghĩa là

I = ∫ f ( x) dx ≈ I T
a

với

 y + yn

IT = h  0
+ y1 + y 2 ) + ... + yn−1 
 2




h=

(2.19)

(b − a )
n

Cơng thức này gọi là cơng thức hình thang.

2.2.3. Đánh giá sai số

16


Người ta đã chứng minh được rằng:
M 2
h (b − a ),
12
M = max f '' ( x) , a ≤ x ≤ b
I − IT = ≤

(2.20)

2.2.4. Thí dụ
Hãy tính gần đúng :
1

dx
2
0 1+ x

I =∫

Lời giải:
Ta đã biết giá trị đúng của tích phân này là π/4. Do đó nếu biết số π thì ta có:
I = 0,78539816 …
Bây giờ ta tính gần đúng I bằng cơng thức hình thang rồi so sánh kết quả.
Cơng việc được tiến hành như sau:
Chia đoạn [0, 1] thành 10 khoảng (n =10) con bằng nhau với h = 0,1. Lập bảng trị số
như sau ( bảng 2.2)
x

0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
1,0
Áp dụng cơng thức hình thang (2.15) ta nhận
0,054 %.

Bảng 2.2
f(x) = 1/(1 + x2)
1,000000 = y0
0,9900990 = y1
0,9615385 = y2
0,9174312 = y3
0,8620690 = y4
0,800000 = y5
0,7352941 = y6
0,6711409 = y7
0,6097561 = y8
0,5524862 = y9
0,500000 = y10
được I y0,7849815 với sai số tương đối

2.2.5. Sơ đồ tóm tắt cơng thức hình thang

Phương án 1: Cho trước số khoảng chia n
b

1) Xét tích phân I =

∫ f ( x) dx

;

a

2) Ấn định số khoảng chia n;
3) Chia [a, b] thành n phần bằng nhau và tính
h=

b−a
; xi = a + i h , i = 0, 1,…,n.;
n

yi = f (xi) , i = 0, 1, …, n.
4) Tính

 y + yn

IT = h  0
+ y1 + y 2 ) + ... + y n−1  ;
 2

17



5) Kết quả:

I y IT
Phương án 2: Cho trước sai số
b

1) Xét tích phân I =

∫ f ( x) dx

;

a

2) Ấn định sai số cho phép ε;
3) Dùng công thức (2.16) để xác định khoảng chia n sao cho sai số bé hơn sai số cho

phép;
4) Tính h =

b−a
; xi = a + i h , i = 0, 1,…,n.;
n

yi = f (xi) , i = 0, 1, …, n.

 y0 + y n

+ y1 + y 2 ) + ... + y n−1 

 2


5) Tính I T = h 
6) Kết quả :

I yIT
Với sai số I − I T 〈 ε

2.2.6. Công thức Simson
Ta chia [a, b] thành 2n đoạn con bằng nhau bởi các điểm chia xi:
a = x0 < x1 < …< x2n = b
xi = a + ih, h =

(b − a )
, i = 0, 1, …, 2n
2n

Giả sử yi = f(xi) . Ta có:
b

x2

x4

x2 n

a

x0


x2

x2 n − 2

∫ f ( x)dx = ∫ f ( x)dx + ∫ f ( x)dx + ... + ∫ f ( x)dx

(2.21)

Để tính mỗi tích phân ở vế phải ta thay f(x) bằng đa thức nội suy bậc hai P2(x). Với tích
phân thứ nhất ta có :
x2

x2

x0

x0

∫ f ( x)dx ≈ ∫ P ( x)dx
2

Đổi biến x = x0 + h t thì dx = h dt, ứng với t = 0, ứng với x2 là t = 2. Do đó:
x2
2

t (t − 1) 2
t2
1  t3 t2  2  t =2
∫ P2 ( x)dx = h ∫ ( y0 + t∆y0 + 2 ∆ y0 )dt = h  y0t + 2 ∆y0 + 2  3 − 2 ∆ y0  t = 0





x0
0



18 4 2  h
= h 2 y 0 + 2∆y 0 +  −  ∆ y 0  = ( y 0 + 4 y1 + y 2 ) .
23 2

 3
x2

Vậy ta có:

h

∫ f ( x)dx ≈ 3 ( y

0

+ 4 y1 + y 2 ) .

x0

Đối với các tích phân sau ta cũng tiến hành tương tự và nhận được:
x2 i + 2


h

∫ f ( x)dx = 3 ( y

2i

+ 4 y 2i +1 + y 2i + 2 )

x2 i

18


Thay vào công thức (2.17) ta được
b

h

∫ f ( x)dx ≈ 3 [ ( y

0

+ 4 y1 + y 2 ) + ( y 2 + 4 y3 + y 4 ) + ... + ( y 2 n− 2 + 4 y 2 n −1 + y 2 n )] .

a

b

Vậy ta có: I =


∫ f ( x)dx ≈ I

S

a

với I S =

h
[ ( y0 + y2 n ) + 4( y1 + y3 + ... + y2 n−1 ) + 2( y2 + y4 + ... + y2 n−2 )]
3

(2.22)

(b − a)
2n
Công thức (2.22) được gọi là công thức Simson.
trong đó h =

2.2.7. Đánh giá sai số
Người ta đã chứng minh được
I − IS =≤

M 4
h (b − a ),
180

M = max f


IV

( x) , a ≤ x ≤ b

2.2.8. Thí dụ
1

dx
2 . Với bảng trị số (Bảng 2.2) đã cho ở trên ta có thể áp dụng
0 1+ x

Xét tích phân I = ∫

cơng thức Simson vì 10 = 2 *5. Ta được I y 0,78539815 với sai số tương đối 0,000002%
Đối chiếu với kết quả được xác định bởi cơng thức hình thang ta nhận thấy kết quả tính
theo cơng thức Simson chính xác hơn nhiều.

2.2.9. Sơ đồ tóm tắt cơng thức Simson
Phương án 1: cho trước số khoảng chia 2n
b



1) Xét tích phân I = f ( x) dx ;
a

2) Xác định số khoảng chia 2n;

3) Chia [a, b] thành 2n phần bằng nhau và
(b − a)

tính h =
; xi = a + ih, với i= 0,1,…,2n; yi = f(xi ), i= 0,1,…, 2n
2n
4) Tính I S =

h
[ ( y0 + y2 n ) + 4( y1 + y3 + ... + y2 n−1 ) + 2( y2 + y4 + ... + y2 n−2 )]
3

5) Kết quả I yIS

Phương án 2: Cho trước sai số
b



1) Xét tích phân I = f ( x) dx ;
a

2) Ấn định sai số phép tính ε;

3) Dùng cơng thức (2.19) để xác định số khoảng chia 2n sao cho sai số < sai số cho
phép;
19


4) Chia [a, b] thành 2n phần bằng nhau và tính
b

I = ∫ f ( x)dx ; xi = a + ih, với i= 0,1,…,2n; yi = f(xi ), i= 0,1,…, 2n;

a

5) Tính I S =

h
[ ( y 0 + y 2 n ) + 4 y1 + y3 + ... + y 2 n−1 ) + 2( y 2 + y 4 + ... + y 2 n−2 )] ;
3

6) Kết quả : I y IS với sai số I − I S < ε .

BÀI TẬP

1. Cho hàm số y = lg x với các giá trị tương ứng của x và y cho trong bảng sau:

x
y

50
1,6990

55
1,7404

60
1,7782

65
1,8129

Hãy tính đạo hàm của y tại x = 50 và so sánh với kết quả tính trực tiếp .

1

dx
1+ x
0

2. Cho tích phân: ∫

Hãy chia đoạn con [0, 1] thành 10 đoạn con bằng nhau ( n=10) rồi tính gần đúng I và
đánh giá sai số bằng :
a) Cơng thức hình thang; b) Cơng thức Simson.
1

3. Cho tích phân

sin x
dx
x
0



1) Hỏi phải chia đoạn [0,1] thành mấy (n = ?) đoạn con bằng nhau để khi tính

I bằng cơng thức hình thang bảo đảm được sai số tuyệt đối < 3*10-4;
2) Với n ấy khi tính bằng cơng thức Simson thì sai số là bao nhiêu?
3) Hãy tính I với n đã chọn ở trên bằng cơng thức hình thang và công thức
Simson đến 6 chữ số lẻ thập phân.

2.3. ỨNG DỤNG CÁC PHƯƠNG PHÁP TÍNH GẦN ĐÚNG TÍCH PHÂN

XÁC ĐỊNH ĐỂ TÍNH TỐN CÁC YẾU TỐ TÍNH NỔI THỦY LỰC VÀ CÂN
BẰNG-ỔN ĐỊNH CHO TÀU THỦY
2.3.1. Phương pháp hình thang
Cho đường cong y = f(x) được thể hiện trên hình 2.2.
Tọa độ các tung độ có khoảng cách ∆L bằng nhau.
Diện tích hình phẳng được giới hạn bởi đường cong trong khoảng từ a đến b với trục
hoành ox sẽ được xác định như sau:
xb

xb

xa

xa

F = ∫ y dx = ∫ f ( x) dx ≅
y 0 + y1
y + yn
y + y2
+ ∆L 1
+ ... + ∆L n −1
=
2
2
2
∆L n
∆L ( y 0 + 2 y1 + 2 y 2 + ... + 2 y n −1 + y n ) =
∑ K i yi
2 0
trong đó: Ki = 1, 2, 2, ... , 2, 1 - hệ số tính tốn của phương pháp hình thang.

≅ ∆L

(2.23)

20


yi – giá trị tung độ tại vị trí thứ điểm thứ i trên trục ox.
f(x)

y

y1

y0
a

∆L

∆L

y3

y2

∆L

b

x


Hình 2.2 – Phương pháp hình thang

2.3.2. Phương pháp Simpson
2.3.2.1. Qui tắc thứ nhất của Simpson (Simpson I)

Qui tắc này được áp dụng cho nhóm 3 tọa độ có khoảng cách bằng nhau .Cho đường
cong y = f(x) biểu thị trên hình 2.3. Giả sử đây là đường cong bậc 2 và có phương trình biểu
diễn như sau :
y = a0 + a1x + a2x2.
(2.24)
Khi thay x = 0; x = ∆L và x = 2∆L vào phương trình (2.24) ta thu được
y0 = a0 ;
y1= a0 + a1 ∆L + a2 ∆L2
y2 = a0 + 2a1∆L + 4a2∆L2
Suy ra
a0 = y0;

a1 =

a2 =

− 3 y0 + 4 y1 − y 2
2∆L

y 0 − 2 y1 + y 2
2∆L2

;


.

Diện tích hình phẳng bao hàm dưới đường cong trong khoảng từ a đến b được xác định như
sau:
xb

xb

F = ∫ y dx = ∫ f ( x) dx =
xa

xa

xb

∫ (a

0

+ a1 x + a 2 x 2 )dx ≅

xa

21


8
≅ 2a 0 ∆L + 2a1 ∆L2 + a 2 ∆L3 .
3


(2.25)

y = a0 + a1 x +a2 x2

y

y0
a

y2

y1

∆L

∆L

x

b

Hình 2.3 – Phương pháp Simpson I
Thay các giá trị a0, a1, a2 vào (2.25) ta có :
F = (1y0 + 4y1+ 1y2) ∆L/3.

(2.26)

Trong trường hợp chung có n khoảng chia đều nhau (với n là số chẵn) qui tắc thứ nhất
của phương pháp Simpson cho nhóm 3 tọa độ kế tiếp nhau các hệ số tính tốn được chọn
như sau:

1

4

1
1

4

1 ...
1

4

1
1

+

Ki: 1

4

2

4

2 ... 2

4


4

1

2

4

1

Hình 2.4. Sơ đồ xác định hệ số qui tắc Simpson I.
Như vậy công thức tổng quát để tính diện tích được chắn bởi đường cong (2.24)
trong khoảng a đến b áp dụng chi nhóm 3 tọa độ đều nhau được viết như sau :
xb

xb

xb

xa

xa

xa






F = y dx = f ( x) dx = ∫ (a0 + a1 x + a 2 x 2 )dx ≅
trong đó: ∆L =

∆L n
∑ K i yi
3 0

(2.27)

ab
; Ki = 1, 4, 2, 4, 2, ... ,4, 2, 4, 1 (theo hình 2.4)
n

2.3.2.2. Qui tắc thứ hai của Simpson (Simpson II)

Qui tắc này được áp dụng cho nhóm 4 tọa độ có khoảng cách bằng nhau .
22


Cho đường cong y = f(x) biểu thị trên hình 2.4. Giả sử đây là đường cong bậc 3 và có
phương trình biểu diễn như sau :
y = a0 + a1x + a2x2 +a3x3
(2.28)
Khi thay x = 0; x = ∆L; x = 2∆L và x = 3 ∆L vào phương trình (2.28) ta thu được
y0 = a0;
y1= a0 + a1 ∆L + a2 ∆L2 + a3∆L3;
y2 = a0 + 2a1∆L + 4a2∆L2 + 8a3∆L3;
y3 = a0 + 3a1∆L + 9a2∆L2 + 27a3∆L3.
Suy ra


2 y − 5 y1 + 4 y 2 − y3
− 11y 0 +18 y1 − 9 y 2 + 2 y3
a2 = 0
2∆L2
6∆L
a0 = y0;
;
− y0 + 3 y1 − 3 y 2 + y3
a3 =
6∆L2
.
a1 =

;

Diện tích hình phẳng bao hàm dưới đường cong trong khoảng từ a đến b được xác
định như sau:
xb

xb

F = ∫ y dx = ∫ f ( x) dx =
xa

xa

xb

∫ (a


0

+ a1 x + a 2 x 2 + a3 x 3 )dx ≅

xa

9
81
≅ 3a0 ∆L + a1∆L2 + 9 a 2 ∆L3 + a3 ∆L4
2
4

(2.29)

.

y = a0 + a1 x +a2 x2 + a3x3

y
.

a
y0

y3

y2

y1


x
∆L

∆L

∆L

b

Hình 2.5 Phương pháp Simpson II
Thay các giá trị a0, a1, a2 và a3 vào (2.29) ta có :
F = (1y0 + 3y1+ 3y2 + 1y3) 3∆L/8.
(2.30)
Trong trường hợp chung có n khoảng chia đều nhau (với n là bội số của 3) qui tắc thứ
hai của phương pháp Simpson cho nhóm 4 tọa độ kế tiếp nhau, các hệ số tính tốn được chọn
như sau:

23


1

3

3

1
1

3


3

1
............
1

3

3

1
1

3

3

1

2

3

3

1

+
1


3

3

2

3

3

2 ....... 2

3

3

Hình 2.6 Sơ đồ xác định hệ số Simpson II
Như vậy cơng thức tổng qt để tính diện tích được chắn bởi đường cong (2.28)
trong khoảng a đến b áp dụng chi nhóm 4 tọa độ đều nhau được viết như sau :
xb

xb

xb

F = ∫ y dx = ∫ f ( x) dx =
xa

trong đó: ∆L =


2
3
∫ (a0 + a1 x + a2 x + a3 x )dx ≅

xa

xa

3∆L n
∑ K i yi
8 0

(2.31)

ab
; Ki = 1, 3, 3,2, 3, 3, 2, ... ,2, 3, 3, 2, 3, 3, 1 (theo hình 2.6)
n

Trong trường hợp số khoảng chia đều nhau với n là một số lẻ bất kỳ khơng phải là bội
số của 3, ta có thể kết hợp áp dụng đồng thời cả hai qui tắc của phương pháp Simson.
Ví dụ khi n = 5 ta có thể xác định các hệ số tính tốn như sau (Hình 2.7):
1

4

1
1

3


3

1

2

3

3

1

+
1

4

Hình 2.7 Sơ đồ xác định hệ số khi n = 5
Trong cùng một khoảng tính tốn, nếu có khoảng chia khơng đều nhau giữa các nhóm
tọa độ thì hệ số Simson sẽ được điều chỉnh tỷ lệ thuận với tỷ số giữa các khoảng chia đó.
y

2.3.3. Phương pháp Tre-bư-sev

Giả sử ta có đường cong được biểu diễn trên hình 2.8.
Diện tích hình phẳng được chắn bởi đường cong y = f(x) trong khoảng từ - L/2 đến +
L/2 được xác định như sau:
+L/2


F=
y2

L

∫ y dxy≅ n ( y

y3− L / 2

1

4

+ y 2 + .... + y n ) .
y6

(2.32)

y7

y8
y9
Trong công thức (2.32) khoảng cách giữa các tung độ khơng bằng nhau, vị trí các tung
y1
độ thay đổi tùy theo số đường thẳng góc dùng trong tính tốn n và đối xứng với nhau qua trục
oy. Vị trí các tung độ được cho trong bảng 2.3.
x4

x6


x3

x7

x2

x8

x1

x9
L

24


x

Hình 2.8 Chia tọa độ theo phương pháp Tre-bư-sev
Vị trí các đường thẳng góc xác định theo phương pháp Tre-bư-sev Bảng 2.3
Số đường
thẳng góc
2
3
4
5
6
7
8
9

10

Vị trí đường thẳng góc (khoảng cách tính tới diểm giữa
của đường đáy tính theo nửa chiều dài diện tích)
0,5773
0
0,7071
0,1870
0,7947
0
0,3745
0,8325
0,2666
0,4225
0,8662
0
0,3239
0,5297
0,8839
0,1026
0,4062
0,5938
0,8974
0
0,1679
0,5288
0,6010
0,9116
0,0838
0,3227

0,5000
0,6873 0,9162

Bậc của
phương trình
2
3
4
5
6
7
8
9
10

2.4. TÍNH NỔI - THUỶ LỰC TÀU THUỶ
2.4.1. Tính các đại lượng hình học vỏ tàu
Từ đường hình lý thuyết tiến hành tính các giá trị đặc trưng hình học vỏ tàu. Thứ tự tính
tốn chia làm hai giai đoạn:
1- Các đại lượng đặc trưng của mặt đường nước;
2- Các đại lượng đặc trưng của mặt đường sườn tàu.
Sau hai phần tính vừa nêu tiến hành tính tốn các u tố tính nổi và thủy lực (gọi tắt là
các yếu tố thủy tĩnh) cho toàn tàu.

25


×