tính toán khoa học - chương 0: introduction

35
Tính toán khoa học Scientific Computing

Upload: chien-proger

Post on 26-May-2015

572 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Tính toán khoa học - Chương 0: Introduction

Tính toán khoa học

Scientific Computing

Page 2: Tính toán khoa học - Chương 0: Introduction

GiẢNG VIÊN: TS. VŨ VĂN THIỆU

Bộ m«n Khoa häc M¸y tÝnh

Viện Công nghệ thông tin và truyền thông

§¹i häc B¸ch khoa Hµ néi

Office: P.602, B1

Email: [email protected]

Page 3: Tính toán khoa học - Chương 0: Introduction

Giới thiệu môn học

• Đối tượng: Sinh viên đại học ngành công nghệ thông tin

• Khối lượng:

– 60 tiết (45 tiết lý thuyết + 15 tiết bài tập và đồ án môn học)

– 90 tiết tự học

• Nhiệm vụ của sinh viên:

– Dự lớp: đầy đủ theo quy chế

– Bài tập: hoàn thành các bài tập của học phần

• Đánh giá kết quả:TN/BT/KT(0,3)- T(0,7)

– Điểm quá trình: trọng số 0.3

• Bài tập làm đầy đủ (chấm điểm các bài tập)

• Hoàn thành bài tập lớn (các bài tập)

• Kiểm tra giữa kỳ

– Thi cuối kỳ (trắc nghiệm và tự luận): trọng số 0.7

Page 4: Tính toán khoa học - Chương 0: Introduction

Các ví dụ về tính toán khoa học

Page 5: Tính toán khoa học - Chương 0: Introduction

VD1: Phương trình nhiệt

Page 6: Tính toán khoa học - Chương 0: Introduction

Kết quả VD1

Page 7: Tính toán khoa học - Chương 0: Introduction

VD2: Mô hình dự báo mực

nước sông, suối

Page 8: Tính toán khoa học - Chương 0: Introduction

Kết quả VD2

Page 9: Tính toán khoa học - Chương 0: Introduction

VD3: Mô hình phát triển

của vi khuẩn

)(

,

)1(

1,

)(

1,

)1(

,1

)(

,1

)1(

, 14

k

ji

k

ji

k

ji

k

ji

k

ji

k

ji cccccc

cDt

c 2

Page 10: Tính toán khoa học - Chương 0: Introduction

Kết quả của VD3

Page 11: Tính toán khoa học - Chương 0: Introduction

VD4: Mô hình dòng chảy chất lỏng

Page 12: Tính toán khoa học - Chương 0: Introduction

Kết quả của VD4

Page 13: Tính toán khoa học - Chương 0: Introduction

Tính toán khoa học?

• TTKH liên quan đến việc sử dụng máy tính và các

phương pháp số một cách hiệu quả, tận dụng cấu hình

của các máy tính tiên tiến để giải quyết các bài toán kích

thước lớn trong khoa học và kỹ thuật

• TTKH là tập hợp tất cả các công cụ, kỹ thuật và lý thuyết

cần thiết để phát triển và giải quyết các mô hình toán

học trong khoa học và kỹ thuật trên máy tính

Page 14: Tính toán khoa học - Chương 0: Introduction

Tính toán khoa học?

Bài toán thực tế

Mô hình toán học

Thuật toán

Kết quả

Ứng dụng

Khoa học

ứng dụng

Tin học

Toán học

Tính toán

Khoa học

Page 15: Tính toán khoa học - Chương 0: Introduction

Vai trò của tính toán khoa học

• Together with theory and experimentation,

computational science now constitutes the

third pillar of scientific inquiry, enabling

researchers to build and test models of

complex phenomena

(Report to the President, Computational Science: Ensuring

America's Competitiveness, USA, June 2005).

Page 16: Tính toán khoa học - Chương 0: Introduction

Sai số trong tính toán khoa học

• Sai số mô hình

• Sai số trong quá trình tính toán

– Sai số rút gọn

– Sai số làm tròn

• Sai số dữ liệu đầu vào

• Ví dụ:

– Diện tích bề mặt trái đất = 4πR2

– Sai số:

• Trái đất không phải hình cầu tuyệt đối

• R = 6370,….km

• Π = 3,14….

Page 17: Tính toán khoa học - Chương 0: Introduction

Cách tính sai số

• Giả sử x* là xấp xỉ của số thực x:

– Sai số tuyệt đối: | x* - x|

– Sai số tương đối: , x ≠ 0

||

|*|

x

xx

Page 18: Tính toán khoa học - Chương 0: Introduction

Biểu diễn số dưới dạng dấu

phẩy động – VD: 2012 => 0.2012x104

; 0.012 => 0.12x10-1

– Số dấu phẩy động trong hệ đếm cơ số 10

X = ±(.d1d2…dn)10 x 10e

= ±(d1x 10-1 +d2x 10-2 + …dnx 10-n) x 10e

– Số dấu phẩy động trong hệ đếm cơ số 2

X = ±(.d1d2…dn)2 x2e

= ±(d1x 2-1 +d2x 2-2 + …dnx 2-n) x 2e

– Số dấu phẩy động trong hệ đếm cơ số β

X = ±(.d1d2…dn)β xβe

= ±(d1x β -1 +d2x β -2 + …dnx β -n) x βe

Page 19: Tính toán khoa học - Chương 0: Introduction

Chuẩn IEEE đối với phép tính số

học nhị phân • Số V được biểu diễn dưới dạng dấu phảy động

như sau:

V = (-1)s x M x 2e

– Một bit dấu S: s=0 - số dương; s=1 – số âm

– K bit cho trường mũ, để xác định số mũ E trong phạm vi [1-

(2k-1-1), 2k-1-1 ]

– N bit dành cho trường định trị M, để xác định phần định trị M

trong khoảng [0,2)

• Chuẩn IEEE độ chính xác đơn (single precision):

N=24; emin =-125; emax =128

• Chuẩn IEEE độ chính xác kép (double precision):

N=53; emin =-1021; emax =1024

Page 20: Tính toán khoa học - Chương 0: Introduction

Độ chính xác của máy tính (1)

• Giả sử biểu diễn số thực

X = ±(.d1d2…dndn+1dn+2…)β xβe

sử dụng n chữ số. Có hai cách

• Cắt đuôi: Loại bỏ các chữ số: dn+1dn+2…

• Làm tròn: Cộng 1 vào chữ số dn nếu dn+1 ≥ β/2

Page 21: Tính toán khoa học - Chương 0: Introduction

Độ chính xác của máy tính (2) • Gọi fl(x) là biểu diễn số thực dấu phảy động của

x = ±(.d1d2…dndn+1dn+2…)β xβe =fl x βe

• Khi đó sai số tuyệt đối lớn nhất sẽ là:

– β-n x βe : đối với sai số cắt đuôi

– ½ β-n x βe : đối với sai số làm tròn

• Sai số tương đối:

– Ɛm = β1-n : đối với sai số cắt đuôi

– Ɛm = ½ β1-n : đối với sai số làm tròn

• Ɛm gọi là độ chính xác của máy tính, hay đơn vị

làm tròn, hay số epsilon của máy tính; n-1 gọi là

chữ số có nghĩa

Page 22: Tính toán khoa học - Chương 0: Introduction

Tác động của sai số làm tròn đối với

các phép toán số học

• Gọi fl(x) và fl(y) là biểu dưới dạng dấu phảy

động tương ứng của x và y, khi đó ta có:

fl(fl(x) ± fl(y)) = (fl(x) ± fl(y)) * (1+ Ɛ1)

fl(fl(x) * fl(y)) = (fl(x) * fl(y)) * (1+ Ɛ2)

fl(fl(x) : fl(y)) = (fl(x) : fl(y)) * (1+ Ɛ3)

trong đó:

• => sai số tương đối vẫn nhỏ

mi

Page 23: Tính toán khoa học - Chương 0: Introduction

Sai số làm tròn tích lũy (1)

• Nguồn gốc:

– Khi một thuật toán phải thực hiện nhiều phép toán,

sai số của mỗi phép toán nhỏ nhưng sai số của thuật

toán có thể lớn. Ta phải quan tâm xem sai số của từng

phép toán tích lũy trong thuật toán như thế nào.

Page 24: Tính toán khoa học - Chương 0: Introduction

Sai số làm tròn tích lũy (2)

• Sai số đột biến của phép trừ:

– Giả sử giá trị gần đúng của a, b được biểu diễn như sau:

trong đó Δa, Δb là các sai số tương đối thỏa mãn:

– Xét sai số tương đối của phép trừ gần đúng: x=a-b:

– Từ đó sai số tương đối là:

Sai số này rất lớn nếu a ~ b.

),1(),1( bbbaaa

ba ,

)()()1()1( bbaababbaabax

ba

ba

ba

bbaa

x

xx

Page 25: Tính toán khoa học - Chương 0: Introduction

Hiện tượng tràn số

• Hiện tượng tràn số lớn: xảy ra khi số thu

được lớn hơn số lớn nhất mà hệ dấu phảy

động có thể biểu diễn được: e > emax

• Hiện tượng tràn số nhỏ: xảy ra khi

số thu được nhỏ hơn số nhỏ nhất mà hệ

dấu phảy động có thể biểu diễn được: e <

emin

Page 26: Tính toán khoa học - Chương 0: Introduction

Sự ổn định số

• Khái niệm ổn định số liên quan đến độ

chính xác của thuật toán khi có sai số làm

tròn.

• Một thuật toán được gọi là không ổn định

nếu sai số làm tròn có thể dẫn tới sai số

lớn trong kết quả.

Page 27: Tính toán khoa học - Chương 0: Introduction

Ảnh hưởng của sai số đến kết

quả của bài toán • Bài toán có điều kiện tồi

• Bài toán có điều kiện tốt

Page 28: Tính toán khoa học - Chương 0: Introduction

Nội dung • Nhập môn Matlab (8T)

• Hệ phương trình tuyến tính (4T)

• Đường cong khớp (4T)

• Giải phương trình phi tuyến (4T)

• Tính gần đúng đạo hàm và tích phân (4T)

• Phương trình vi phân (4)

• Các phương pháp cực tiểu hóa không ràng

buộc (4)

• Quy hoạch tuyến tính (8T)

• Bài tập

Page 29: Tính toán khoa học - Chương 0: Introduction

Nội dung giảng dạy có sử dụng tài

liệu/slide của PGS Nguyễn Đức Nghĩa và

TS Trịnh Anh Phúc

Page 30: Tính toán khoa học - Chương 0: Introduction

Tài liệu tham khảo

1. T¹ V¨n §Ünh. Ph­¬ng ph¸p tÝnh. NXB Gi¸o

dôc, 1995.

2. Ph¹m Kú Anh. Gi¶i tÝch sè. NXB §¹i häc

Quèc gia Hµ néi, 1996.

3. Lª Träng Vinh. Gi¶i tÝch sè. NXB Khoa häc

Kü thuËt, Hµ néi, 2000.

4. NguyÔn §øc NghÜa. Tèi ­u ho¸ (Quy ho¹ch

tuyÕn tÝnh vµ rêi r¹c). NXB Gi¸o dôc, 1996.

Page 31: Tính toán khoa học - Chương 0: Introduction

Tài liệu tham khảo

5. Michael Heath. Scientific Computing: An

introductory survey. McGraw-Hill Inc. 2001.

6. Charles F. Van Loan, Introduction to

Scientific Computing. A Matrix-Vector

Approach Using Matlab. 2nd Edition.

Prentice Hall, 2000.

Page 32: Tính toán khoa học - Chương 0: Introduction

Michael Heath

Director of Computational Science and

Eingineering at the University of Illinois at

Urbana-Champaign

Page 33: Tính toán khoa học - Chương 0: Introduction

Charles F. Van Loan

Joseph C. Ford Professor of

Engineering Department of

Computer Science, Cornell Univ.

Page 34: Tính toán khoa học - Chương 0: Introduction

Tài liệu tham khảo

7. Duane Hanselman, Bruce

Littlefield.

Mastering MATLAB 7.

Pearson/Prentice Hall,

2005, 852 Pages.

8. K. Sigmon. MATLAB

Primer. Univ. Florida,

1996.

Page 35: Tính toán khoa học - Chương 0: Introduction

Tài liệu tham khảo

9. Gene Golub and Charles Van Loan. Matrix computations. John Hopkins University Press 1996.

10. Dammed J.W. Applied Numerical Linear Algebra, 1996.

11. Iserles. A First Course in Numerical Analysis of Differential Equations, Cambridge University Press, 1996.

12. C. Evans, Partial Differential Equations, AMS, 1998.

13. G. W. Stewart, Introduction to Matrix Computations, Academic Press, 1998

14. Gill, P.E., Murray, W. and Wright, M. H., Numerical Linear Algebra and Optimization, Volume 1, Addison-Wesley, Redwood City, California, 1991.

15. Stephen G. Nash, Ariela Sofer, Linear and Nonlinear Programming. McGraw-Hill, 1998.