Giáo trình phương pháp tính và Matlab Lê Trọng Vinh

Giáo trình phương pháp tính và Matlab (Tác giả: Lê Trọng Vinh, Trần Minh Toàn).

 Cuốn sách này giới thiệu ngôn ngữ lập trình bậc cao Matlab chuyên được sử dụng cho các tính toán kỹ thuật. Đối với hầu hết các vấn đề, tác giả giới thiệu thuật toán và kèm theo chương trình Matlab (đã được chạy thử một cách cẩn thận) để độc giả kiểm nghiệm và có thể dễ dàng sử dụng để giải quyết các vấn đề cần nghiên cứu.

Sách bao gồm 6 chương:

- Chương 1: Sai số

- Chương 2: Matlab cơ bản

- Chương 3: Giải gần đúng phương trình

- Chương 4: Phương pháp số trong đại số tuyến tính

- Chương 5: Phép nội suy và xấp xỉ hàm

- Chương 6: Đạo hàm, tích phân và phương trình vi phân

Giá sản phẩm trên Tiki đã bao gồm thuế theo luật hiện hành. Bên cạnh đó, tuỳ vào loại sản phẩm, hình thức và địa chỉ giao hàng mà có thể phát sinh thêm chi phí khác như phí vận chuyển, phụ phí hàng cồng kềnh, thuế nhập khẩu (đối với đơn hàng giao từ nước ngoài có giá trị trên 1 triệu đồng).....

You're Reading a Free Preview
Pages 8 to 13 are not shown in this preview.

You're Reading a Free Preview
Page 17 is not shown in this preview.

You're Reading a Free Preview
Pages 21 to 40 are not shown in this preview.

You're Reading a Free Preview
Pages 44 to 45 are not shown in this preview.

You're Reading a Free Preview
Pages 49 to 50 are not shown in this preview.

You're Reading a Free Preview
Pages 58 to 63 are not shown in this preview.

You're Reading a Free Preview
Pages 67 to 77 are not shown in this preview.

You're Reading a Free Preview
Pages 84 to 94 are not shown in this preview.

You're Reading a Free Preview
Pages 102 to 104 are not shown in this preview.

You're Reading a Free Preview
Pages 117 to 127 are not shown in this preview.

You're Reading a Free Preview
Pages 136 to 181 are not shown in this preview.

You're Reading a Free Preview
Pages 190 to 205 are not shown in this preview.

You're Reading a Free Preview
Pages 214 to 216 are not shown in this preview.

You're Reading a Free Preview
Page 225 is not shown in this preview.

LÊTRỌNGVINH, TRẨN MINHTOÀN Giáo trình Phương pháp tính và Matlab -t Lý thuyết, bài tập và chương trình minh họa (Dùng cho sinh viên khối các trường Khoa học Công nghệ) ir NHÀ XUẤT BẢN BÁCH KHOA - HÀ NỘI LÊ TRỌNG VINH, TRÁN MINH TOÀN Giáo trình PHƯƠNG PHÁP TÍNH VÀ MATLAB Lý thuyết, bài tập và chương trình minh họa (Dùng cho sinh viên khối các trường Khoa học Công nghệ) NHÀ XƯÁT BẢN BÁCH KHOA - HÀ NỘI Bàn quyền thuộc về trường Đại học Bách Khoa Hà Nội. Mọi hình thức xuất bán, sao chép mà không có sự cho phép bằng văn bản của trường là vi phạm pháp luật. Mã số: 1264 - 2013/CXB/01 - 51/BKHN Biên mục trên xuất bản pháni của Thư viện Quốc gia Việt Nam Lê Trọng Vinh Giáo trình phưưng pháp tính và matlab : Lý thuyết, bài tập và chương trình minh họa : Dùng cho sinh viên khối các trường Khoa học Công nghê / Lê Trọng Vinh, Trần Minh Toàn. - H. : Bách khoa Hà Nội, 2013. - 228tr. ; 24cm Thư mục: tr. 223 ISBN 9786049115578 1. Phương pháp tính 2. Phần mém Matlab 3. Giáo trình 515.0285 - dc 14 BKF0033p-CIP 11 LỜI NÓI ĐẦU P HƯƠNG p h áp tín h còn được gọi là giải tíc h số hay to án học tín h to án là m ôn khoa học nghiên cứu cách giải g ầ n đúng, chủ yếu là giải số các phương trìn h , các bài to á n xấp xi hàm số và các bài to á n tối ưu. N gay từ đầu, to án học sinh ra do yêu cầu giải quyết các vấn đề th ự c tế n h ư tín h diên tích m ôt m ản h đất; do chiều cao của các v ậ t có độ cao lớn; tìm quỹ đạo của sao chổi, đường đi của tà u buôn trê n b iể n ,... N h ư vậy, có th ể nói to á n học ban đầu x u ấ t h iệ n ch ín h là to á n hoc tín h to á n . T ừ n h ữ n g năm cuối của th ế kỷ XX, phương p h á p tín h đươc p h á t triể n m ạ n h m ẽ cùng với sư b ù n g nô của tin học. Đ ặc biệt, với sự x u ấ t hiện của các siêu m áy tín h th ì k h ả n ă n g song song hóa các q u á trìn h tín h to án ngày càng được mỏ rộng. C ác n hiệm vụ chính của phương p h áp tín h là: 1. G iải g ần đ ú n g các loại phương trìn h đại số hay siêu việt; giải hệ phương trìn h ; tìm tr ị riêng, vector riê n g của m a trậ n ; giải gần đúng phương trìn h vi phân,... 2. X ấp xỉ h àm số: T hay h àm có dạng phức tạ p h ay h àm cho dưỏi dạng b ản g số bởi hàm có d ạn g đơn giản hơn để dễ tín h toán. T rong khi đó, tin học có nhiệm vụ cài d ặ t và k h ai th á c th ự c hiện quá trìn h tín h để cho kết q u ả m ong m uốn. Song việc tă n g tốc độ tín h to án (khi khối lượng tín h to á n lớn) đối với m áy g ặp n h iề u khó k h ă n về kỹ th u ậ t và đòi hỏi chi p h í lớn. Do đó, cần th iế t phải cải tiế n th u ậ t to án để iii IV có th ể giải các bài to á n cỡ lón. Điều đó có n g h ĩa là to án học tín h to án và tin hoc có mối q u a n hệ qua lại đặc biệt q u a n trong. H iện nay, đã có n h iều giáo trìn h khác n h a u , giới th iê u các cách sử dung các loai ngôn ngữ lập trìn h khác n h a u để k h ai th á c tín h to án n h ư ngôn ngữ c, M aple,... T rong giáo trìn h này ch ú n g tôi giới th iệ u ngôn ngữ lập trìn h bậc cao M a t L ab chuyên được sử d ụ n g cho các tín h to án kỹ th u ậ t. Đối với h ầ u h ế t các vấn đề, chúng tôi giới th iệ u th u ậ t to án và kèm theo chương trìn h M a t L ab (đã được chạy th ử m ột cách cẩn th ậ n ) để đôc già kiểm nghiệm và có th ể dễ dàng sử dụng đ ể giải quyết các v ấn đề cần nghiên cứu. Giáo trìn h bao gồm 6 chương, tro n g đó p h ầ n các th u ậ t to á n (phương pháp tín h ) do PGS. TS. Lê T rọng V inh biên soạn, p h ầ n lập trìn h M a t L ab do ThS. T rầ n M inh Toàn biên soạn. C h ú ng tôi xin được bày tỏ lòng biết ơn sâu sắc đến TS. H à Thị Ngoe Yến và TS. N guyễn T h a n h H uyền đã đọc b ản th ả o và có n h ữ n g đóng góp vô cùng quý báu. Do giáo trìn h được biên soạn lần đ ầ u nên không th ể trá n h khỏi n h ữ n g th iế u sót. C h ú n g tôi r ấ t m ong sự lượng th ứ và góp ý của bạn đọc. Mọi ý kiến xin chuyển về địa chỉ: V iện Toán ứng d ụ n g và Tin học, Đai học B ách K hoa H à Nội, số 1 Đại c ồ Việt, H à Nôi. Các tác giả Mue LUC Lôi nói đ ầ u ............................................ iii Mue l u• e .................................................. • ( 'h ư ơ n g 1 . S a i s ố ....................................................................................... 1 2 1 7 Số xấp xi, sai s ố ............................................................................. 7 1.1 Sai số tu y ệ t đối ................................................................. 7 1.2 Sai số tương đ ố i ................................................................ 8 1.3 C hữ số có n g h ĩ a ................................................................ 8 1.4 C hữ số tin tưởng, chữ số k h ả nghi tro n g m ột số . . . 8 1.5 Sai số quy trò n và quy trò n s ố ....................................... 9 1.6 C ách viết số xấp xỉ .......................................................... 9 Các phép tín h về sai s ố ................................................................ 9 2.1 Các phép t í n h .................................................................... 9 2.2 C ông thức tổng q u át về sai s ố ....................................... 11 2.3 Bài to án ngươc về sai s ố ................................................. 12 2.4 S ai số phương pháp, sai số tín h toán và sự ổn định . 14 C h ư ơ n g 2 . M a t L a b cơ b ả n ....................................................................... 17 1 Khỏi đông M a t L a b ....................................................................... 18 2 Biểu th ứ c M a t L a B: biến, số, toán tử , h à m ............................. 19 2.1 B i ế n ....................................................................................... 19 2.2 S ố ................................................................................... 20 2.3 Toán t ử ................................................................................. 20 2.4 H à m ....................................................................................... 21 1 2 MỤC LỤC 3 4 5 6 Các dang dữ liệu cơ bàn tro n g M a t L ab .............................. 22 3.1 V e c to r .................................................................................. 22 3.2 Đ a t h ứ c .............................................................................. 27 3.3 Ma t r ậ n .............................................................................. 30 Vẽ đồ th ị tro n g M a t L a b ........................................................... 37 4.1 Đồ th ị 2 D .............................................................................. 37 4.2 Đồ th ị 3 D ........................................................................... 41 L ập trìn h với M a t L a b .............................................................. 43 5.1 T h ủ tục ( S c r i p t ) .............................................................. 44 5.2 H àm "m-files" (F u n c tio n ).............................................. 45 5.3 N hập, x u ấ t dữ l i ệ u ........................................................... 48 5.4 Điều k h iển l u ồ n g ........................................................... 55 5.5 Vector hóa (V e c to riz a tio n )........................................... 61 5.6 T ính giá trị hàm m ột cách gián tiế p ......................... 66 5.7 C hú t h í c h ........................................................................... 66 5.8 Gỡ l ỗ i .................................................................................. 67 5.9 P h â n tích m ột chương trìn h sử d ụ n g "The Profiler" 68 Bài t ậ p ........................................................................................... 69 C h ư ơ n g 3 . G iả i g ầ n đ ú n g p h ư ơ n g t r ì n h .......................................... 79 1 2 3 4 Tìm kh oảng p h â n ly n g h i ệ m .................................................... 80 1.1 K hoảng p h â n ly n g h i ệ m .............................................. 80 1.2 Phương p h áp hìn h hoc tìm k hoảng p h â n ly nghiêm 80 Phương pháp lặp d ơ n ................................................................. 82 2.1 Nội dung phương p h á p ................................................. 82 2.2 Sự hội tụ của phương p h á p ........................................... 82 2.3 Sai s ố .................................................................................. 84 2.4 C hương trìn h M a t L ab 85 .............................................. Phương p h áp N ewton (phương p h áp tiế p tu y ến ) ............. 87 3.1 Nội d u n g phương p h á p .................................................... 87 3.2 Sự hội tụ của phương ph áp N e w to n .............................. 88 3.3 Sai s ố ..................................................................................... 89 3.4 C hương trìn h M a t L ab ................................................. 90 Phương p h áp dây c u n g ................................................................. 92 M Ụ C L ỰC__________________________________________________________ 3 5 6 7 4.1 Nội d u n g phương p h á p ............................................... 92 4.2 Sự hội tụ của phương pháp dây c u n g ..................... 93 4.3 S ai s ố ............................................................................... 94 4.4 C hương trìn h Mat L ab P hư ơng tr ìn h đa thức bậc n ................................................ 94 ....................................................... 96 5.1 M iền chứa nghiệm của đa t h ứ c ............................... 96 5.2 Sơ đồ H o rn er tín h giá trì của đa t h ứ c ..................... 97 5.3 C hương trìn h M at L ab ................................................ 97 G iải g ầ n đ ú n g hệ phương trìn h phi t u y ế n ............................. 98 6.1 P hư ơng pháp N e w to n ....................................................... 99 6.2 Phương pháp lặp 6.3 C hương trìn h M at L ab ................................................................. 100 .....................................................101 B ài t ậ p ..................................................................................................102 C h ư ơ n g 4 . P h ư ơ n g p h á p số tr o n g đ ạ i số tu y ế n t í n h .................105 1 2 3 Mở đ ầu về hê đai số tuyến t í n h .....................................................105 1.1 Đ ặ t vấn đ ề .......................................................................105 1.2 P hư ơng pháp C r a m e r ....................................................106 P hư ơng p h á p giải đúng và chương trìn h M a t L ab ................. 107 2.1 P hư ơng pháp G a u s s .......................................................... 107 2.2 C hương trìn h M at L ab 2.3 P hư ơng pháp G auss-Jordan (trụ tối đ ạ i ) ........................112 2.4 P hư ơng pháp Cholesky (khai c ă n ) .....................................116 2.5 Công thức truy đuổi giải hê có ma trận dạng ba đường chéoi21 2.6 C hương trìn h M at Lab .....................................................111 .....................................................122 P hư ơng p h á p lặp đ ơ n ........................................................................123 3.1 C h u ẩ n của m a trâ n và sự hội tụ của dãy m a trcận . . 123 3.2 P hư ơng p h áp lặp dơn (lặp cổ điển) ................................. 125 4 S ự k h ông ổn định của hệ đại số tuyến t í n h ................................. 128 5 M a tr ậ n nghịch đảo và chương trìn h M a t L ab ........................130 5.1 B ài to án ..................................................................................130 5.2 P hư ơng pháp tìm A~l trong đại số tu y ế n tín h . . . . 5.3 P hư ơng pháp G a u s s - J o r d a n .......................................131 5.4 T rường hơp m a trậ n đối xứng. Phương p h áp C holeskyl34 131 4__________________________________________________ 6 7 8 M Ự C LUC T rị riêng, vector riê n g của m a trậ n và chương trìn h M a t L ab 137 6.1 K hái niệm về trị riên g và vector r i ê n g ....................... 6.2 T rị riê n g và vector riêng của các m a trậ n đồng dạng 137 6.3 Phương p h á p D a n h ile p s k i.............................................. 6.4 Phương p h áp K rưlôp A.N......................................................145 Tìm gần đúng tr ị riê n g và vector r i ê n g .................................... 137 138 147 7.1 Nội dung phương p h áp tìm trị riê n g t r ộ i ........................147 7.2 T rường hợp m a trậ n đối xứng, xác định dương . . . 152 Bài t ậ p .............................................................................................. 157 C h ư ơ n g 5 . P h é p n ô i s u y v à x ấ p x ỉ h à m .......................................... 161 1 2 3 4 5 K hái niệm về nội s u y .................................................................... 161 1.1 Bài to án 161 1.2 Sự duy n h ấ t của đa thức nôi suy .............................................................................. ................................. 163 Đa thức nội suy L a g r a n g e .......................................................... 163 2.1 Đ a thứ c nội suy L a g r a n g e .............................................. 163 2.2 Sai số của đa thức nôi suy L a g r a n g e .............................. 164 2.3 C hương trìn h M a t L ab ................................................. 165 Đa thức nội suy N ew ton có mốc cách đ ề u ................................. 166 3.1 K hái niệm về sai p h â n .................................................... 166 3.2 Đa thức nội suy N ew ton tiến có mốc nội suy cách đều 168 3.3 Đa thức nội suy N ew ton lùi có mốc nội suy cách đều 169 3.4 Sai s ố ..................................................................................... 170 3.5 C hương trìn h M a t L ab ................................................. 172 P hép nội suy n g ư ợ c ....................................................................... 173 4.1 Sử dụng đa thứ c nội suy L a g r a n g e ..................................173 4.2 T rường hợp các mốc nội suy cách đ ề u .......................... 174 4.3 C hương tr ìn h Mat Lab ................................................. 174 Phương p h áp bình phương tối th iể u ............................................ 175 5.1 K hái niệm về sai số tru n g bình p h ư ơ n g ........................175 5.2 Bài to án 5.3 Xây dựng phương p h áp t í n h ...............................................177 5.4 Sai số của phương pháp 5.5 T rường hợp {a (x')} a.=õ77 là hệ trự c c h u ẩ n .....................180 .............................................................................. ................................................. 176 179 M Ụ C LỤ C 6 7 5 5.6 T rương hợp hệ cơ bàn là hệ đại s ố .....................................181 5.7 T rưòng hơp hệ cơ bàn là hệ lương g i á c ...........................182 5.8 C hương trìn h Mat L ab .................................................... 185 Tìm hàm thưc nghiệm theo phương pháp b ìn h phương tối th iể u l8 5 6.1 H àm thực nghiệm dang y = a e 1>x. (a > 0 ) ......................186 6.2 H àm thực nghiệm dang y = a x 1’, (a > 0, 6.3 C hương trìn h M a t L ab X > 0) . . 187 .................................................... 189 Bài t ậ p ............................................................................................... C h ư ơ n g 6 . Đ ạ o h à m , tíc h p h â n v à p h ư ơ n g t r ì n h v i p h â n . . . 1 2 3 4 5 T ính dạo h à m .................................................................................. 189 193 193 1.1 T ính đao hàm nhờ đa thức nôi suy L ag ran g e . . . . 1.2 Trưòng hơp các mốc nôi suy cách đều n h a u ...................194 1.3 Trưòng hợp n = 2 ................................................................. 194 1.4 Trưồng hơp n = 3 ................................................................. 195 T ính gần đúng tích p h ân xác định 193 ................................................ 197 2.1 Mỏ đ ầ u .................................................................................. 197 2.2 Công thức h ìn h t h a n g ...........................................................197 2.3 Công thức S im p s o n ..............................................................202 2.4 Chương trìn h M at Lab .................................................... 205 Giải gần đúng phương trìn h VIphản (bài to án Cauchy) . . 205 3.1 Mỏ đ ầ u .................................................................................... 205 3.2 Bài toán C a u c h y ....................................................................206 3.3 Phương pháp giải bài toán C âuehy............................ 206 3.4 C hương trìn h M a t L ab .................................................... 216 Giải phương trìn h vi p h ân cấp cao và hê phương trìn h vi phân217 4.1 Bài toán .................................................................................217 4.2 Công thức E u l e r .................................................................... 218 4.3 Công thức dạng R u n g e - K u tta ........................................... 218 4.4 Chương trìn h M at Lab .................................................... 219 Bài t ậ p ................................................................................................. 220 Tài liệu tham k h ả o ...................................................... 223 6 MỤC LUC CHƯƠNG 1 S ai s ồ §1. SỐ rong T XẤP XỈ, SAI SỐ tín h toán, ta phải làm việc với các giá trị g ần đúng của một đại lượng, vì vậy luôn có sai số. Việc hiểu rõ sai số đó là r ấ t cần th iế t. G iả sử A là đại lương cần nghiên cứu, n h ư n g thưc tế ta chỉ th u được đại lượng gần đú n g với nó, ký hiệu là a. Khi đó, ta nói a là số xấp xỉ của A và ký hiệu a. « A. 1.1 Sai số tu yệt đối Đại lượng A = |a - A\ được gọi là sai số tu y ệt đối của số xấp xỉ o. Do A nói chung không biết n ên không th ể biết được A. Vì vậy, người ta đưa ra càn trên củ a A và goi là sai số tuyệt đối giới h a n cho phép của a. D in h n g h ĩa 1.1. Sai số tu y ệ t đối giới h an cho phép của số gần đúng a là số A„ > 0 th ỏ a m ãn a — A I < A a hay a — A a < A < a + A„. ( 1 . 1) T ất nhiên, ta luôn m ong tìm đươc A(1 càng nhỏ càng tốt. Khi đó, bất đẳn g thức (1.1) cũng có th ể đươc th ay th ế bởi đẳn g thức Ia - A\ - A„ hay A = a ± Aa. 7 8 Chương 1. Sai NO 1.2 Sai số tương đối Để mô tả ch ất lương của viêc xấp xỉ, người ta goi ỏa = (a ■ 0) |«| là sai số tương đối của đai lương a. Sai số tương đối ổ„ thường cỉươc tín h theo tỷ lệ phần tră m (%), n ghĩa là ỏ, = 7 7 X 100%. M 1.3 Chữ số có n ghĩa Để th ố n g n h ấ t việc biểu diễn các số th ậ p p h ân tro n g giáo trìn h , ta đưa ra quy ước sau. Q u y ư ó c : Với dạng số th ậ p p h ân a — ± *** Oio0.o_i ***, từ đày về sau ta hiểu dấu "chấm" chính là dấu "phẩy" để ph ân biệt p h ần nguyên và phần th â p p h â n của số đó. Ví du khi ta viết 2.5 chính là 2,5 như cách viết tay thông thường. Trong tín h to á n cũng như tro n g máy tín h thường sử dụng số tro n g dang chữ số th ậ p p h â n do 10 ký tự 0 , 1 , 2 , . . . , 9 tạo nên. Trong m ột số có nhiều chữ số, người ta quy ước những chữ số có nghĩa tro n g số đó là nhữ ng chữ số kể từ chữ số khác "0" đầu tiên tín h từ trá i q u a phải. Ví d ụ 1.1. Số 0.003042 có 4 chữ số có nghĩa là 3, 0. 4, 2. Xét một ví dụ khác, số 3600 = 360 X 10 chi có 3 chữ số có nghĩa. Mcăt khác, nếu viết 3600 = 36 X 102 th ì chi có 2 chữ số có nghĩa. N hư vậy, th ừ a số 10* tro n g số đó không đươc tín h vào chữ số có nghĩa. C ũng với số trê n , để có 5 chữ số có nghĩa th ì ta viết 3600 = 36000 X 10“ 1. 1.4 Chữ số tin tưởng, chữ số khả nghi trong m ôt số Đ ịn h n g h ĩ a 1.2. G iả sử số « — ±a„ ... a^aião, a _ i a _2 .. . íỉ-n ... có sai số tu y ệt đối giới h ạ n là Aa. Khi đó, nếu 0 < A„ < 0.5 X 10* th ì ta nói chữ số as là chữ số tin tưởng] ngược lại (Aa > 0.5 X 10*) th ì chữ số as dươc gọi là chữ số khả nghi. Từ định n g h ĩa trê n ta dễ dàng suy ra, nếu chữ số as là chữ số tin tường th ì moi chữ số đứng trưóc nó đều là chữ số tin tưởng, n ếu as là chữ số khà 9 2. Các phép tín h về sai số nghi th ì mọi chữ số đứng sau nó đều là chữ số k h ả nghi. Ví dụ 1.2. G iả sử số a — 2.5785030 có sai số tu y ệ t đối là Aa = 0.0043. Do Aa 0.43 X 10 2 < 0.5 X 10 2 nên chữ số th ứ hai sau dấu chấm là chữ số tin tưởng. Vây số a có 3 chữ số tin tường là 2,5, 7 còn các chữ số 8. 5, 0, 3,0 là các chữ số k h ả nghi. 1.5 Sai số quy tròn và quy tròn số T rong tín h toán, ta tín h đươc số n có nhiều chữ số, thư ờ ng phải n g ắt bớt và chỉ giữ lai m ột số chữ số trong số đó và th u được số ã để tín h tiếp. Việc thay a bởi ã đươc gọi là sự quy tròn số và đại lượng tía = Ia —ã I đươc gọi là sai số quy tròn. Q u y ước: N ếu chữ số dầu tiên (kể từ trá i sang phải) tro n g các số bị bỏ di của số a lớn hơn hoặc bằng 5 th ì chữ số cuối cùng được giữ lại liền kề trước nó được tă n g lên m ột đơn vị, ngược lại th ì giữ nguyên. V í d ụ 1.3. 1. H ãy quy trò n số a = 237.542457 để được số ã có 2 số lẻ th à p phân. Theo quy ước trê n th ì ã — 237.54. 2. Cho số h — 237865. H ãy quy trò n số h để th u đươc số ỉ) chỉ gồm 4 chữ số. Theo quy ưóc trê n ta có h — 2379 X 102. 1.6 Cách v iết số xấp xỉ Giả sử A là số cần tính, ta ehỉ tính được và Au là sai số tuyệt đối giới (1 h ạ n cho phép. Ta viết A — n ± A„ để biểu diễn k ết q u ả tín h toán. Còn cách viết .4 ~ n (xấp xỉ) là cách viết chì gồm các chữ số có n g h ĩa (thưồng là số tin tưởng n hư tro n g bảng tín h , bảng logarit, b ản g giá tri các hàm số lương giác,...). §2. CÁC p h é p t ín h VỀ SAI s ố 2.1 Các p h ép tính G iả sử đại lương / có sai số tu y ệt đối giới h ạ n là A ; và sai số tương đối là Ố/. Ta đả biết A / - |A /| ( A / là số gia của đai lượng /) . Khi đó: 10 Chương 1. S a i số 1. N ếu u = X + y + z th ì A u = A x 4- Ay + A j, (.T. y . z > 0). 2. Nếu XI — X — X) th ì ốu — (.T, y > 0). F - yI 3. N ếu u — X 1JZ th ì ốu — ốx + ổy + ¿2, ( x , y , z > 0 ) . 4. Nếu u — — th ì ốu — óx + óy, (x, y > 0). Chứng minh. Ta sẽ chứng m inh cho trư ờng hợp 2 và 3 còn các trường hợp 1 và 4 được chứng m in h tương tự. 2 . Vói =>■ A?í — A.r —A y =>■ |A?/| < |A.r| 4- |Ay| Ax + Ay hay A u < A r + Ay = > -ị-Ỵ < \x-y\ M Ax 4 Ay u —X —y l*-y| ’ 3. Ta có u — xyz = > ln u — ln X + ln y + ln í ==> A(ln u) = A(ln x) + A(ln y) + A(ln z). M ặt khác, A (lntt) ~ (ỈClnu) = — ~ XI. u . Tương tự ta củng có A(ln.r)w— ; A (ln y )^ = ^ ; X y A(ln z) « — . z Khi đó Au u A.r X Au XI. Ay y Ax X Az z Ay Az + + V hay Au A x Ay Aổ„ — -—- — 7 + T—7 + -Ị—Ị- — Óx + Ốy + ổ2. I y \z\ ỉi C hú ý 1.1. T rong công thứ c hiệu, nếu \x —y\ quá bé th ì sai số sẽ lớn. Vì vậy, tro n g tín h to án ngưòi ta tìm cách trá n h phép tr ừ các số khá gần n h a u khi tín h sai số tương đối của hiệu hai số. 2. Các phép tín h về sai số 11 2.2 Công th ứ c tổ n g quát về sai số G iả sử u - / (:t'i, X'2, . . . , £•„) với / là hàm khả vi liên tụ c th ì df A„ = Ẻ dxị A,.. 1= 1 ( 1. 2 ) và nếu / > 0 th ì ta có: dln/ A, dxị ỏu= t 1=1 (1.3) Chứng minh. B ằng cách sử dụng công thức số gia h àm số n Qf An ~ du = > - - A x ị , Ế í dxi ta có |An| < ¿ 1=1 hay df |A.r,l dXị n df A„ = Ẻ dXị A x, 1=1 Còn df s' = v r m 1 ớ/ ÌỊ ị ỞXị n A 1=1 / ỡln/ - T' Ax.. i=1 dx.ị Dây chính là đ iều phải chứng m inh. V í d ụ 1.4. Tìm sai số tu y ệ t đối và sai số tương đối giỏi h ạ n của th ể tích hình cầu V = ^7rá3, nếu đường kín h d = 3.7±0.05 (cm) và 7T = 3.14±0.0016. 6 Giải: Xem H và 7T là các đối số của hàm V, ta có: ĩ - ỉ ' ■ ỉ ' « - - « = I ttíÌ2 = i(3.14)(3.7)2 = 21.5. 12 Chương 1. S a i số Theo công thứ c (1.2) ta được sai số tu y ệt đối giói h ạn Av - dv dn An dv I A,i = 8.44 dd X 0.0016 I 21.5 X 0.05 = 1.088 a» 1.1 (cms). Vậy V = - Tĩd3 = --(3.14)(3.7)3 ± 1.1 = 27.4 ± l.l(c m 3). „ . X 3 . Av 1.088 Sai số tương đối ổv — 7777 — - ” « 0.04 = 4%. IV I 27.4 2.3 Bãi toán ngược v ề sai số Trong p h ầ n trước ta đã tín h sai số của hàm số tù y thuộc vào sai số của đối số. Bây giờ ta xét trư ờ ng hợp cho sai số của hàm th ì giới h an sai số của đối số cần cho phép là bao nhiêu? Bài toán: Cho hàm số u = f (xi, X2,. . . , :/:„). Hỏi sai số tu y ệ t đối (hay tương đối) giới h ạ n của mỗi đối số là bao n h iêu để sai số tu y ệ t đối (hay tương đối) giới h ạ n của hàm số không vượt q uá m ột số dương cho trước (số dương này được gọi là sai số cho phép)? Để giải quyết vấn đề đã đ ặ t ra , có hai cách thườ ng được sử dung. 1. Cách giải quyết theo nguyên tắc sai số của các đối số ngang bằng nhau. Theo công thứ c (1.2) ta có: i—\ df\ A dxị I Z| • Ta xem ản h hưởng của mọi th à n h phần n h ư n h a u , tức là àf dĩ Ar - ■■■A r_ d xn dl2 df df A r.. A, — n dxị i—1 tìxị d f Ar Í-3X1 dxi Au = t Từ đó ta có công thức sai số tu y ệt đối giới h ạ n cho phép của mỗi th à n h phần: A = L*Xl - A df dxị ¿ = 1.2,...,«. (1.4) 13 2. Các phép tín h về sai số V í dụ 1.5. Cho h ìn h tr ụ đứng, hán kín h R — 2(m); chiều cao II 3(m). Hỏi sai số tu y ệ t đối của R và II là bao n h iêu để th ể tích V ttR2H của h ìn h tr u đ a t sai số tu y ệt đối giới h a n là 0.1 (m3). Giải: T a có V - 7r/?2//, A y = 0.1(ra3), R = 2(ra), u = 3(m) và số 7T = 3.14 th ì khi đó: ¿>v = /?2/ / = 22 X 3 = 12; = 7r/?2 = 3.14 = 2tĩRII = 2 Ớ7T 6>v > c o l_ a r r = [ 1 ; 2 ; 3 ] c o l_ a r r = 1 2 3 Để tạo vector rỗng (không chứa p h ầ n tử nào) ta khai báo n h ư sau: >> emp_arr = [] emp_arr = (] 3.1.2. Chỉ số Giá trị của m ột p h ầ n tử tạ i m ột vị tr í b ấ t kỳ tro n g vector được ti uy x u ấ t th ô n g q u a chi số. T rong M at L a b , chi số lu ô n b ắ t đ ầ u từ 1 và có th ể là m ột giá trị đơn hoặc m ột m ảng. S au đây là qui tắc tru y câp đến các p h ần tử của m ản g X thô n g qua chi số. • T rích p h ầ n tử th ứ i: X ( i ) • T rích nh iều p h ầ n tử: X ( [danh sách các vị tri]) >> arr = 10 : - 1 : 3 arr = 10 9 8 7 6 5 4 3 >> a r r ( 5 ) ans = 6 >> a r r ( [ 4 , 5 , 8 ]) ans = 7 6 3 Để xóa các p h ầ n tử tro n g vector, ta gán ch úng vói vector rỗng: 3. Các dạng dữ liệu cơ bản trong MatL ab 25 >> a r r ( [ 2 5 ] ) = [] arr = 10 8 7 5 4 3 B iểu thức logic cho phép ta tru y x uất một cách lin h h o ạ t đến các th à n h p h ần của một vector hay m a trậ n . Ví dụ: >> = [-1 0 2 3 5 X 6 7 4 9 ]; >> x>0 ans = 0 0 1 1 1 1 1 1 1 X (x>0 ) >> ans 2 >> X 3 5 6 7 4 9 (x>2 & x> x>2 ans = 0 1 1 1 1 1 1 Biểu thức logic thường được sử dụng cùng vói các h àm a n y , a l l và f i n d , được mô tả chi tiế t dưới đây. • any: Kiểm tra xem có tồn tạ i một phần từ cùa vector th ỏ a m an điều kiên nào đó không. N ếu có th ì trả về 1, ngược lại là 0. Ví dụ: >> x = [ - l 2 3 ] ; >> ar.ỵ ( x > 0 ) ans = 1 • a l l : Kiểm tr a xem tấ t cả các phần tử của vector th ỏ a m ãn điều kiện nào đó không. Ví dụ: >> a l l ( x < 0 ) 26 Chương 2. Mat Lab cơ bản ans = 0 * find: tr ả về các chi số của môt vector th ỏ a m ãn m ôt điều k iê n nào đó. Ví du: >> A = [4 3 6 5 7 9] ; >> find(isprime(A)) % trả về các vị trí có giá trị là một số nguyên tố ans = 2 4 5 3.1.3. C ác p h é p to á n cờ b ả n trên v e c to r G iả sử a,b là hai vector có cùng kích thước. Khi đó ta có các phép to án cơ b ản n h ư sau: a.*b; % nhân từng từ a.Ab % trả về vector dạng (a_lA ( b _ l a _ n A (b_n} ) a.An; % lũy thừa từng từ a.\b; % chia trái từng từ a./b; % chia phải từng tù a & b; % phép hội từng từ a Ị b; % phép tuyển từng từ ~a; % phủ định sort(a) ; sort (a,'descend' ); % sắp xếp mảng theo thứ tự tăng, giảm dần arrayfun(@fn,a); % tính giá trị hàm fn tại tùng thành phần của a isequal(a,b); % Đúng nếu a==b ismember (a,b); % đúng khi moi phần tử của a đều là phần tủ của b intersect(a,b); % phép giao 2 tập hợp union(a,b); % phép hợp 2 tập hợp setdiff(a,b); % hiệu 2 tập họp 27 3. Các dạng dữ liệu cơ bản trong MatLab setxor(a,b) ; % các phần tử không thuộc phần chung của a và b 3.2 Đa thứ c Môt đa thứ c bao giò cũng có dạng f(x) - anxn + an- i x n 1-ị------f aiX- + a0, tro n g đó n ếu an Ỷ b th ì n là bậc của đa thức và an. an- 1 ,..., ao là các hệ số. T rong MatLab , m ột đa thức được biểu diễn bỏi m ột vector h àn g có các th à n h p h ầ n là các hệ số theo th ứ tư bậc giảm dần, k ể cả hệ số 0. Việc b iểu diễn này có ưu th ế là rấ t gọn nhẹ và cũng th u â n tiệ n cho việc thực h iệ n các phép toán đối vói đa thức sau này. Ví du: • p= [ 8 5 ] biểu diễn đa thức 8.r + 5; • h= [ 6 0 - 1 5 0 ] biểu diễn đa thủc 6.T2 - 150. Sa u đây, chúng ta xét một số phép toán cơ bản về đa thức trong MatLab . 1. Tính giá trị của đa thức Để tín h giá trị của m ột đa thức tai điểm polỵval(p,x) ; trong đó, • p là vector biểu diễn hệ số đa thức; • X là một số, biến hoăc biểu thức. Ví dụ: >> p = [5 6 - 7 3] ; >> x=2; >> y = p o l y v a l ( p , x ) ỵ = 53 X ta sử d u n g hàm 28 Chương 2. Mat L ab cơ bản 2. T ìm nghiệm của da thức Nhắc lại rằng nghiêm của đa thức là các giá tri của biến sao cho giá tri của đa thức tại đó bằng 0. MatLab có thể tìm các nghiêm của một đa thức bằng lệnh r=root3 (p); trong đó, • D là vector biểu diễn đa thức; • r là vector cột chứa các nghiệm của đa thức. 3. T ìm đ a thức k h i biết trước các nghiệm Cho trước các nghiêm của một đa thức, MatLab số của đa thức đó bằng lệnh có thể tính các hệ p=polỵ(r); trong đó, • r là vector hàng hoặc cột chứa các nghiệm của đa thức; • p là vector hàng chứa các hệ số của đa thức. 4. Cộng đa thức Đ ể cộng, trừ hai đa thức trong Mat L ab thì các vector hệ số cần phải cùng kích cd, do đó vector có độ dài ngắn hơn phái dưdc thêm các phần tử 0 vào phía bên trái. Ví dụ, để công hai đa thức /i(.r) 3.T6 + 15z5 —10.T3 —3.T2 + 15.T —40 và / 2 (3?) = 3.T3 —2z —6 ta thưc hiên như sau: » p l = [3 15 0 - 1 0 - 3 15 - 4 0 ] ; » p 2 = [0 0 0 3 0 - 2 -6]; >> p = p l + p 2 p = 3 15 0 - 7 -3 Đa thức kết quả f ( x ) = 3x6 + 15x5 —7x3 13 — -46 ‘Ằ x2 + 13x —46. 3. Cäc dang dü lieu cö bän trong MatL ab 5. N h ä n da thüc Cü phäp: c=conv(a,b); trong dö, • a vä b lä cäc vector he so cüa cäc da thüc • c lä vector he so cüa tich 6. C hia da thüc Cü phäp: [ q , r ] = deconv(u, v) ; trong dö, • u lä vector he so cüa cäc da thüc bi chia; • v lä vector he so cüa cäc da thüc chia; • q lä vector he so cüa thiiöng; • r lä vector he so cüa phan du. 7. Dao h ä m cüa da thüc Mat Lab cö the tinh dao häm cüa da thüc böi lenh k .- p o ly d e r ( p ) ; trong dö, • p lä vector he so cüa da thüc; • k lä vector he so cüa dao häm. Vi du: » p = [3 -2 4]; >> k=polyder(p) k = 6 -2 29 30 Chương 2. Mat L ab cơ bản 8. N guyên h àm của đa thức Ma t L ab có th ể tín h nguyên hàm của đa th ứ c bởi lênh g = p o lỵ in t( h ,k ) ; tro n g đó, • h là vector hê số của đa thức; • g là vector hệ số của nguyên hàm ; • k là h ằ n g số tích p h ân , mặc định là 0. 3.3 Ma trận 3.3.1. N h ậ p m a tr ậ n Khi n h ậ p m a tr â n tro n g môi trư ờng dòng lện h , ta phải tu â n theo các qui đ ịn h sau: • N găn cách các p h ần tử trê n m ôt h àn g của m a trậ n bời dấu hay khoảng trắn g ; • D ùng dấu để kết th ú c m ôt hàng; • Bao các p h ầ n tử của m a trậ n bời cặp dấu [ ]. Ví dụ: » A = [163213; 510118; 96712 ; 415141] A = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 Khi muốn nhâp một ma trận có kích thước lỏn thì cách nhâp trưc tiếp tư cửa sổ lệnh là không phù hợp, ta thưòng sử dụng hàm "m-íìle". Hàm load load hoặc tao một đọc một file văn bản chứa các dữ liệu số. File văn bản phải được tổ chức như là môt bảng chữ nhật của các số, cách nhau bời 3. Các dang dữ liệu cơ bản trong MatL ab 31 các k h o ản g trắ n g , mỗi h à n g trê n mỗt dòng và số p h ầ n tử trê n mỗi h àn g là n h ư n h a u . Ví dụ, ta tạo file m atrix .d at có nôi d u n g sau: 16. 0 3. 0 2 . 0 13. 0 5. 0 10. 0 11. 0 8. 0 9. 0 6. 0 7. 0 12. 0 4. 0 15. 0 14. 0 1. 0 Khi đó, lệnh >> load matrix.dat sẽ doc file và tạo ra một biến matrix chứa các phần tử như trên. Ta có thể tạo ra các ma trận bằng cách sử dụng các file văn bản chứa mã MatLab C’m-files"). Sử dụng trình soạn thảo Matlab Editor hoặc môt trình soan thảo bất kỳ tao ra mót file chứa các lênh giống như dùng trong môi trường dòng lệnh MatLab , sau đó lưu file này dưới dạng ”.m”. Ví dụ, tạo ra một file chứa 5 dòng sau: A = [ ... 16.0 3.0 2.0 13.0 5. 0 1 0 . 0 1 1 . 0 8.0 9.0 6.0 4.0 15.0 7.0 12.0 14.0 1.0 ]; Lưu file trê n dưới tê n matrix.m. Khi đó lệnh >> matrix sẽ đọc file và tạo ra một biến A có các phần tử như trên. Ngoài ra, MatLab củng cung cấp các hàm đê tạo các ma trận cơ bản, được liệt kê trong bảng sau: 32 Chương 2. Mat Lab cơ bả.n zeros T ất cả các p h ần tử bằng 0 ones T ất cả các p h ần tử bằng 1 rand Các p h ầ n tử có p h ân bố đều trê n [0,1] randn Các p h ầ n tử có p h ân bố ch u ẩn m a g i c (n) Tạo ra m a trậ n cấp n gồm các số nguyên từ 1 đến n2 với tổng các h à n g bằng tổng các cột n > 3 p a s c a l (n) Tạo ra m a trậ n có các p h ầ n tử lấy từ ta m giác Pascal e y e (n) Tạo m a tr ậ n đơn vị cấp n S au đây là m ôt số ví dụ: >> Z = z e r o s ( 2 ,4 ) z = 0 0 0 0 0 0 0 0 >> F=5* o n e s ( 3) F = 5 5 5 5 5 5 5 5 5 >> R=randn(4) R = 0.5377 0.3188 3.5784 0.7254 1.8339 -1.3077 2.7694 -0.0631 -2.2588 -0.4336 -1.3499 0.7147 0.8622 0.3426 3.0349 -0.2050 3.3.2. C h ỉ số S au đây là quy tắc tru y cập đến các p h ầ n tử của m a trâ n th ô n g q ua chỉ số. • P h ầ n tử ỏ h à n g i , cột j của m a trậ n (cỡ n i X n) A là A ( i , j ) . • Ta cũng có th ể th a m chiếu tói p h ần tử của m ản g nhò m ột chì số. Ví dụ p h ầ n tử A ( i , j ) ứng với A(k) vói k = i + ( j — 1)rn (duyệt theo cột, 3. Các dạng dữ liệu cơ bản trong Mat L ab 33 từ trê n xuống dưới, từ trá i qua phải). Để chuyển từ chì số m a trâ n san g chỉ số m ảng mót chiều dùng lênh >> k = s u b 2 in d ( s i z e (A),i , j ) ; Ngược lai, để chuyển từ chỉ số m ảng môt chiều san g chỉ số m a trậ n , ta d ù n g hàm in d 2 s u b như sau: >> [ i , j ] = i n d 2 s u b ( s i z e (A), k ) ; • T rong M a t L a b , chi số cuối cùng của hàng hay cột của m a trậ n hoặc vector có th ể th a y th ế bỏi end. Ví dụ: >> x = [ l 2 3 ; 4 5 6] ; >> y= x ( 1 : e n d , 1 : e n d - 1 ) ỵ = 1 2 4 5 Dể xác đ inh kích thưỏc của môt m a trâ n ta có th ể d ù n g lên h l e n g t h (trả về kích thước lớn n h ấ t) hay lệnh s i z e (số hàng và cột). Ví dụ: >> c = [ 1 2 3 4 ; 5678]; >> l e n g t h (c) ans = 4 >> [m, n] = size(c) m = 2 n = 4 Các lệnh tín h kích thước của m a trậ n được liệt kê dưới b ản g sau: 34 Chuang 2. MatL ab ca ban H ien th i cac bien tro n g khong g ian lam viec whos cung kich cd tiidng ufng s = size(A) T ra ve la vector h a n g s, s(l) - so h an g va s(2) - so cot [r, c] = size(A) T ra ve hai so r , c dng vdi so h a n g va so cot r = size(A,1) T ra ve so h an g cua A c = size(A,2) T ra ve so cot cua A n = length(A) T ra ve max (size (A) ) khi A kh ac [] Cac bieu th u c chi so co th e th a m chieu den m ot p h a n cu a m a tra n . Vi du, viet A ( 1 : k, j ) la th a m chieu den k p h an tii dau tie n cua cot j cua m a tra n . Ngoai ra to a n tOt th a m chieu tdi ta t ca c a c p h a n tii tro n g m ot h a n g hay m ot cot. Vi du: >> A(:,3) % Tra ve cot thu 3 cua ma tran ans = 2 11 7 14 va: >> A (3,:) % Tra ve hang thu 3 cua ma tran ans = 9 6 7 12 [ 1 3 2 4 ] ) se tao ra ma tran B bang each doi th ii tii Viet B = A ( : , cac cot tit [ 1 2 3 4 ] thanh [1 3 2 4 ] >> B=A(:, [1 3 2 4 ] ) B = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 35 3. Các dạng dữ liệu cơ bản trong MatLab 3.3.3. P h é p g h é p n ố i c á c m a trận Trong Mat L ab ta có thể ghép nối các ma trận nhỏ để tạo thành các ma trận lón hơn một cách rất đơn giản. Cụ thể, vói hai ma trận A, B, ta có th ể có các cách ghép nối như sau: • c= [A B] (vói điều kiện các ma trận A, B phải có cùng số hàng); • D= [A; B] (vói điều kiện các ma trân A, B phải có cùng số cột). Ví dụ: >> A =ones (3) A = 1 1 1 1 1 1 1 1 1 [A A+3; A+4 A+6 ] 1 1 1 4 4 4 1 1 1 4 4 1 1 ] 4 4 4 4 5 5 5 7 7 7 5 5 5 7 7 7 5 5 5 7 7 7 Ta có thể xóa hàng và cột của ma trận bằng cách gán cho chúng giá trị [ ]. Ví dụ: » A=[ l 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9 >> X=A; 36 Chương 2. Mat Lab cơ bàn Để xóa cột th ứ 2 của X, dùng lệnh: » X(:,2) = u X = 1 3 4 6 7 9 3.3.4. M ôt số lệ n h x ử lý m a trận Cộng X = A + B T rừ X = A - B N h ân m a trậ n X = A * B N h ân các p h ầ n tử tương ứng vói n h a u X = A. *B C hia X = C hia trá i X = A\B, khi đó A*X = C hia các p h ầ n tử tương ứng cho n h a u X = A. / B Lũy th ừ a X = AA2 Lũy th ừ a từ n g từ X = A . A2 C huyển vi X = A' A/B, khi đó X*A = B (liên hơp đối vói m a trâ n phức) C huyển vi (không liên hợp) X = A. ' N ghịch đảo X = i nv( A) D inh thức d ■ det (A) H ệ đại số tuyến tín h Ax = b N ghiệm P h â n tích C holesky R = c h o i (A) P h â n tích LƯ [L,Ư]= l u( A) P h â n tích QR [Q,R] G iá tri riêng, vector riêng e i g (A), [d,r ] = e i g (A) Q uay m a trậ n B = r o t 90 (A) Đảo m a trậ n từ trá i sang phải c = f l i p l r (A) Đảo m a trậ n từ trê n xuống dưới D = flipud(A) Đ ịnh dạng lại m a trậ n A r e s h a p e (A, m, n) với số h à n g mỏi m và số cột mỏi n X = A\b = qr( A) 4. Vẽ dồ thị trong Mat L ab 37 Lấy các phần tử trê n đường chéo chính d i a g (A) và lưu th à n h m ột vector Chọn dường chéo tù y theo giá trị của k diag(A,k) k= 0 chon đường chéo chính; k >0 chon đường chéo th ứ k phía trê n đường chéo chính; k < 0 chọn đường chéo th ứ k phía dưới đường chéo chính; §4. VẼ Đồ THỊ TRONG MATLAB 4.1 Đồ th ị 2D L ệnh cơ bản để vẽ đồ thị một hàm số trong không g ian hai chiều: >> p l o t (x , f (x) ) tro n g đó, X là vector chứa m iền xác định của hàm có biểu thức là f ( x ) . V í d ụ 2.1. Vẽ đồ th ị hàm số y - sin(.r) với X biến th iê n tro n g khoảng [0,2*]: X = 0:pi/100: 2*pi; ỵ = s in ( X ) ; plot(x, y); T a có th ể chú th ích th êm cho đồ thị bằng cách d ù n g các lệnh tro n g bảng dưới đây. 38 Chuong 2. Mat LAB co ban 1 0.8 0.6 0.4 0.2 0 - 0.2 -0.4 - 0.6 - 0.8 -1 0 1 2 3 4 5 6 7 H inh 2.2: Do th i ham y — sin(a) t e x t (x , y, D at chu th ich len do th i ta i to a do (x , y) D at chu th ich len do thi, g te x t vi tr i dildc xac d in h bdi click ch u o t t i t l e ( '. : le g e n d Tieu de cua do th i ) ) Them chu giai cho do th i x la b e l Ghi n h a n cho tru e Ox y la b e l Ghi n h a n cho tru e Oy \b f Font in dam \ it Font in nghieng \rm Font chii th iid n g h o ld o n / o f f B a t/ta t che do cho phep ve n h ie u do th i tro n g cung m ot he tru e toa do Ta co th e chon cac tiiy chinh n et ve, d a u va m au sac bang len h >> plot(x,y,'color_style_marker'); 4. Vẽ dồ thị trong MatL ab 39 T rong đó: • M àu sắc (color): 'c '- c y a n , 'm '-tím (m agenta), 'y '- v à n g (yellow), ' r ' -đỏ (red), ' g' -xanh lá cây (green), ' b' -xanh nước biển (blue), 'w' -trắ n g (w hite) và ' k' -đen (black). • N ét vẽ (style): ' : n ét liền, ' — ' : nét đứt, ' : ' : chấm chấm , ' - . ' : gạch chấm . 'o', '*' và 'x';'s':□, ’d’:♦ ,'A': A, 'v' • D ấu (m arker): ▼, 'p':★, 'h':ngôi sao 6 c a n h . Các tù y ch ỉn h m àu sắc và độ rộng của nét vẽ___________ Độ rộng của nét vẽ, tín h b ằn g p t LineWidth MarkerEdgecolor M àu sắc của đưồng viền dấu MarkerFacecolor M àu bên trong dấu Markersize Độ lổn của dấu, tín h bằng p t V í d ụ 2.2. X = -pi : pi/10 : pi ; y = tan(sin(x)) - sin (tan (x) ); plot(x,y,,-rs' LineWidth' ,2 / MarkerEdgecolor' ,' k' , . .. 'MarkerFacecolor',' g', 'Markersize' ,10) H ình 2.3: 40 Chương 2. Mat L ab lơ hàn Đ ể xác đinh tọa độ, tù y chỉnh các kiểu tọ a độ, ta có th ể d ù n g các lênh sau: a x i s ( [xmi n xmax ỵm in ỵ m a x ] ) xlim ([xm in xmax]) ỵlim([ỵmin ymax]) axis on/off/auto axis norm al/square/equal/tight axis ij/xy grid on/off Đ ể vẽ n h iều đồ th ị tro n g cùng m ột cửa sổ, ta có th ể d ù n g lệnh: >> s u b p l o t (m, n, p); L ệnh trê n sẽ tạo ra m ột m a trậ n m hàng, n cót chứa rn X II đồ thị, u là vi t r í của từ n g đồ th ị, th ứ tự từ trê n xuống dưới. V í d ụ 2.3. Vẽ 6 đồ th ị tro n g cùng m ột cửa sổ. >> t = 0 : 0 . 1 : 2 * p i ; >> y l = s i n ( t ) ; >> y 4 = y l + ỵ 2 ; y2=cos(t); y5=y2+y3; >> s u b p l o t ( 2 , 3 , 1 ) >> p l o t ( t , ỵ l ) >> t i t l e ( ' y l ' ) >> s u b p l o t ( 2 , 3 , 2 ) >> p l o t ( t , ỵ2) >> t i t l e ( ' ỵ 2 ' ) >> s u b p l o t ( 2 , 3 , 3 ) >> p l o t ( t , y 3 ) >> t i t l e ( ' y 3 ' ) >> s u b p l o t (2, 3, 4) >> p l o t ( t , y 4 ) >> title ('ỵ4') >> s u b p l o t ( 2 , 3 , 5 ) ỵ3=tan(t); ỵ6=yl+y3; 4. Vẽ đồ thị trong M at L aB >> plot (t,y5) >> title('y5' ) >> subplot(2,3,6) >> plot (t,ỵ6) title ('y6' ) y1 y2 y3 H ình 2.4: 4.2 Đồ thị 3D L ênh cờ b ản >> plot3 (x, y, z) T rong plot3, ta cần xác đ ịn h các vector (x. ụ, z). Đ ể vẽ m ặ t z — f ( x, ụ) ta thường sử d ụ n g lệnh >> meshgrid(x,y) 42 Chương 2. M a t L ab cơ bản V í d u 2.4. (hình 2.5) >> t = 0 : 0 . 0 2 * p i : 2 5 * p i ; >> X = sin(t); y = cos(t); >> z = t ; >> plot3 (x,ỵ,z); H ình 2.5: Ví d ụ 2.5. Vẽ m ă t z(x,y) = x2ye *2 y2 vói —4 > clear >> who (Không có biến nào trong Workspace trước khi chạy thủ tục.) >> easỵplot >> who Your variables are: D X y Trong M a t L ab th ì các hàm có rấ t nhiều tiện ích so vói các th ủ tục, do đó các chuyên gia đều khuyến cáo rằn g luôn luôn sử d ụ n g hàm th ay cho th ủ tục. 5.2 Hàm "m-files" (Function) T rong M a t L ab th ì b at buọc tẻn hàm phải iru n g vói té n cùa file có đuôi ”.m ”. Hcàm là m ôt chương trìn h sử dung các th a m số đ ầu vào/ra để kết hơp chúng vối các hàm khác và các lênh trong C om m and Window. Các biến (ỉươc sử dung trong hàm là các biến đĩa phưnng (local variables), chì tồn ta i khi hàm đ a n g thưc thi. Các biến địa phương này đươc p h ân biêt với các biến trù n g tê n tro n g không gian làm việc hoặc của các hàm khác. Các dử liệu đ ầu vào của hàm cho phép cùng một th ủ tục tín h to án (cùng t h u ậ t toán) có th ê được áp dụng với các dử liệu khác n h a u . Do đó, các hàm "m-files" có th ể dùng lại nhiều lần. Trong M a t L ab th ì các hàm có th ổ gọi các h àm khác đồng thời các th ủ tue riêng có th ể gói vào tro n g một hàm . Các tiế p cận này cho phép p h át triể n lời giải cấu trú c của các bài toán phức tap . về cú pháp, dòng d ầ u tiê n của hàm ”m -file” bao giờ cũng có dạng: function [outArgs]=funName(inArgs) 46 Chương 2. Mat Lab cơ bàn tro n g đó outArgs là d an h sách các biến đầu ra , được đ ặ t tro n g [ ], cách n h a u bỏi dấu N ếu chi có m ột th a m số đầu ra th ì d ấu t ] là tù y chon. H àm m à không có outArgs vẫn là hơp lệ. T rong kh i đó, danh sách các biến đầu vào inArgs được đ ặ t tro n g ( ), cách n h a u bởi dấu H àm m à không có inArgs vẫn là hợp lệ. Có th ể kiểm tr a tín h hơp lệ của tê n hàm bằng cách d ù n g lệnh >> isvarname funName Xét ví dụ v ề c á c h a m : ______________________________________ _ _ tw osum .m : two in p u ts, no o u tp u t function twosum(x,y) % twosum Add two matrices and print the result x+y th reesu m .m : th re e in p u ts, one o u tp u t function s=threesum(x, y, z) % threesum Add three matrices and return t h e r e s u l t s=x+y+z; ad dm ult.m : two in p u ts, two o u tp u ts function [s,p]=addmult(x,y) % addmult Compute sum and product of two matrices s=x+y; p -x * y ;_____________________________________________________________ Bây giò, ta xét cách thưc th i hàm twosum: >> twosum(2,2) ans = 4 >> x=[l 2]; y=[3 4] ; >> twosum(x,ỵ) ans = 4 6 5. Lập trình vói Mat Lab >> A = [1 2 ; 47 3 4] ; B = [5 6; 7 8 ] ; >> twosum (A, B) ; ans = 6 8 10 12 >> clear >> X = 4; y = - 2; >> twosum (1,2) ans = 3 >> x+y ans = 2 >> di s p ([x ỵ]) 4 -2 >> who Your variables are: ans X ỵ T rong ví dụ trê n , các biến X và y được khai báo tro n g không gian làm việc khác với các biến X, ỵ được xác định tro n g h à m twosum. Các biến X, ỵ tro n g twosum là các biến địa phương tro n g h àm này. Có th ể tom t ắ t về các th a m số Input va O u tp u t và việc q u ả n lý chúng tro n g hàm n h ư sau: • Các giá tr ị được kết hơp thông qua các dữ liệu in p u t và ou tp u t. • Các biến đươc đin h nghĩa trong môt hàm là biến đia phương. Các hàm k h ác và môi trư òng cửa sổ lênh sẽ không ’’n h ìn ” đươc chúng. • Khi goi h àm để thực thi th ì số lượng các biến tr ả về n ên trù n g với số lượng các biến o u tp u t trong hàm . • • Mỗi h à m có các biến nội tạ i bao gồm nargin (n u m b er of in p u t arg u m e n ts) và nargout (num ber of o u tp u t arg u m en ts); Chương 2. Mat Lab 48 cơ bân • Sử d ụ n g giá tr ị nargin tro n g phần đầu của hàm để xác đ ịn h có bao n h iêu biến đầu vào sẽ đươc sử dung. • Sử d ụ n g giá tri nargout tro n g phần cuối của h àm để xác đ ịn h số biến đ ầ u ra m ong m uốn. Lợi ích của công việc trê n là cho phép m ôt chương trìn h đơn có th ể thực hiện n h iề u công việc liên quan, đồng thời cho phép các hàm đ ặ t các giá tri m ặc đ in h của m ột số biến đầu vào, do đó làm đơn giản việc sử dụng h àm tro n g m ột số trư ờ ng hợp. V í d ụ 2.7. X ét hàm plot: C âu lện h gọi h àm nargin nargout p lo t (x,ỵ) 2 0 p l o t ( x , ỵ , ' s' ) 3 0 3 0 p lo t ( x , y , ' s ' ) p lo t ( x l , y l , ' s ' , x 2 , y 2 , ' o ' ) h=plot(x,y) 6 2 0 1 Các giá tr ị cù a nargin và nargout được xác đinh khi hàm plot đươc gọi ra. 5.3 N hập, x u ấ t dữ liệu T iếp theo, chúng ta sẽ xét cách nhâp, x u ất dữ liêu tro n g M at L a b . Để n h â p dữ liêu từ bàn phím ta có th ể dùng hàm input, ví du: >> x=input('Enter your age:') % nhập một số >> s=input('Enter your name:','s') % nhập một xâu T uy n h iê n cách n h ậ p các dữ liệu n hư là th a m số đ ầ u vào của các hàm đươc ưa d ù n g hơn. Các h àm x u ấ t dữ liệu th ô n g dung tro n g M at L ab bao gồm hàm disp và fprintf. T rong khi hàm disp thườ ng được sử d ụ n g dể x u ấ t dữ liệu tro n g cửa sổ lện h và chi d ù n g cho các kết quả đơn giản thì hàm fprint f sử d ụ n g cho các dữ liệu đinh dạng trước. Hơn nữa, kh i m uốn ghi dữ liệu vào file th ì b ắ t buộc phải d ù n g hàm fprintf. 5. Lập trình ưói Mat L ab 49 5.3.1. H àm d is p Cii phâp hàm disp nhii sau: >> disp(outMatrix) tro n g dô, outMatrix cô th é là m a trâ n sô hoàc xâu. V i d u 2 . 8 . >> disp (5) 5 >> x = 1:3; disp(x) 1 2 3 >> y = 3-x; disp([x; y]) 1 2 2 3 1 0 >> disp ([x y]) 1 2 3 2 1 0 >> disp([x' y]) ??? Error using ==> horzcat CAT arguments dimensions are not consistent. V i d u 2.9. >> disp ('Hello World!') Hello World! >> s='Have a nice day'; disp(s) Have a nice day >> t='You are using Matlab 7.10.0'; >> disp ([s;t ]) ??? Error using ==> vertcat CAT arguments dimensions are not consistent. >> disp(char(s,t)) Have a nice day You are using Matlab 7.10.0 50 Chương 2. Mat L ab cơ bản C hú ý 2.1. T rong ví dụ trê n , lệnh d i s p ( [ s; t ] ) x u ấ t hiện lỗi bởi vì s có ít ký tự hơn t . H àm c h a r tạo một m a trâ n xâu bằng cách đ ă t mỗi in p u t trê n m ột dòng riê n g và chèn th êm các khoảng trắ n g nếu cần. >> s = c h a r ( s , t ); >> le n g t h ( s ) , le n g t h ( t ) , le n g t h (S (1 , : ) ) ans = 15 ans = 27 ans = 27 Để tạo ra dữ liệu đ ầu ra được gán n h ã n của m ột giá trị số, ta thư ờ ng kết hợp hàm d i s p với hàm num2str. Cụ th ể , lệnh s tr in g V a lu e = n u m 2 s tr (n u m e r ic V a lu e ) sẽ chuyển n u m ericV a lu e th à n h m ột xâu biểu diễn giá trị số đó. Xét các ví dụ: V í d ụ 2.10. >> num2s t r ( p i ) ans = 3.1416 và Ví d ụ 2.11. >> A=e ỵ e ( 3 ) A = 1 0 0 0 1 0 0 >> S = n u m 2 str (A) s = 1 0 0 0 1 0 0 0 1 0 1 5. Lập trình với M at L ab 51 Măc dù A và s có vẻ chứa cùng các giá trị, chúng không tương đương. A là một m a tr ậ n số còn s là m a trậ n xâu. Do đó, các phép to án m a trậ n đối vói A và s là không thự c hiện đươc. Ví dụ: >> A-S ??? Error using ==> minus Matrix dimensions must agree. Tiếp theo, ta xét ví dụ về việc sử dụng num2str kết hơp vói disp: >> x=sqrt (2) ; >> outString=['x=',num2str(x)]; >> disp(outstring) X = 1.4142 hoặc >> disp(['X = ' ,num2str(x)]) X = 1.4142 C hú ý 2.2. C ấu trú c disp (['x=',num2str (x)1) chỉ làm việc khi X là m ột m a trậ n hàng còn với m a tr â n cột th ì không. Ví du: >> y = l : 4; >> z=ỵ' ; >> disp(['z=',num2str(z)]) ??? Error using ==> horzcat CAT arguments dimensions are not consistent. T hay vào đó, ta có th ể sử dụng hai lệnh disp để h iển th ị cột của các vector hay m a trậ n , ví dụ: >> disp('z-'); disp(z) 1 52 Chương 2. MatLAB cơ bán 2 3 4 hoặc đơn giản là n h ậ p vào tê n của biến m à k h ô n g có d ấu cuối dòng >> z z = 1 2 3 4 Ta có th ể dùng hàm f o r m a t điều chinh độ ch ín h xác của dữ liệu in ra, ví dụ: >> f o r m a t s h o r t >> d i s p ( p i ) 3.1416 >> f o r m a t lo n g >> d i s p ( p i ) 3.141592653589793 Ngoài ra, th ô n g số th ứ hai của hàm n u m 2 s t r cũng có th ể dùng với muc đích trôn: >> d i s p ([ ' p i = ' , n u m 2 s t r ( p i , 2 ) ] ) p i = 3 .1 >> d i s p ( [ ' p i = ' , n u m 2 s t r ( p i , 4 ) ] ) pi=3.442 >> d i s p ( [ ' p i = ' , n u m 2 s t r ( p i , 8 ) ] ) p i = 3 . 1415 9 2 7 5.3.2. H àm f p r i n t f Q uay trỏ lại hàm f p r i n t f , cú pháp của h àm này n h ư sau: 5. Lập trình với M atL ab 53 fprintf(outFormat, outVariables) ; fprintf(fileHandle, outFormat, outvariables); H àm fprintf sử dụng outFormat để chuyển outVariables th à n h các xâu được in ra. T rong d ạn g đầu tiên, kết quả sẽ h iể n th ị tro n g cửa sổ lệnh. T rong dạng th ứ hai, kết quả sẽ đươc lưu vào íìle được th a m chiếu bòi fileHandle. Ví dụ: >> x=3; >> íprintf(' Square root of %g is %8.6f\n',X,sqrt (x)) Square root of 3 is 1.732051 T h à n h p h ầ n outFormat định rõ cách các outVariables được chuyển th à n h và h iển th ị. X âu outFormat có th ể chứa b ấ t kỳ m ột ký tự nào. Nó cũng phải chứa m ột m ã chuyển đổi cho mỗi outVariables. Các m ã chuyển đổi cơ b ản được cho dưới bảng sau: Mã D ang %s D ạng xâu %d D ạng số nguyên %f D ạng d ấu chấm động %e D ạng dấu chấm động trong ký hiệu khoa học %g D ạng gon n h ấ t của %f hoăc %e \n C hèn m ột dòng mối sau xấu k ết q u ả \t C hèn m ột ta b sau xâu kết quả Ta có th ể điều chỉnh độ rộng và độ chính xác của k ết q uả bằng các cú pháp: % wd % w.pf % w.pe tro n g đó w là số ký tự tro n g độ rộng của kết quả cuối cùng và p là số chữ số sa u d ấu sẽ được hiển thị. Một số ví dụ 54 Chương 2. Matlab cơ bản G iá trị %8 .4 f %12. 3e %10g %8d 2 2.0000 2.000e+00 2 2 sqrt(2) 1.4142 1.414e+00 1.41421 1.414214e+00 s q rt(2 e -ll) 0.0000 4.472e-06 4.47214e-06 4.472136e-06 s q rt(2 e ll) 447213.5955 4.472e+05 447214 4.472136e+05 Có th ể dùng f p r i n t f để in vector hoặc m a trậ n dưới d an g n g ắ n gon Điều này có th ể d ẫn tói các k ết quả không n h ư m ong m uốn. Ví du >> x = l : 4 ; ỵ = sq rt ( x ) ; >> f p r i n t f ( ' %9. 4 f \ n ' , ỵ) 1 . 0000 1.4142 1.7321 2.0000 0 đây, địn h d ạn g % 9 . 4 f được sử dụng lại cho mỗi th à n h p h ầ n của y. Đ iều này có th ể sẽ không cho kết quả n hư m ong muốn: >> f p r i n t f ( ' ỵ=%9 . 4 f \ n ' , y) y= 1.0000 y= 1.4142 ỵ= 1.7321 y= 2.0000 H à m f p r i n t f duyệt các o u t V a r i a b l e s th eo các cột. Điều này cũng có th ể d ẫn đến các kết q u ả không n hư m ong muốn: » A = [ l 2 3; 4 5 6; 1 2 3 4 5 6 7 8 9 7 8 9] 5. Lập trinh với Mat L ab 55 fprintf (' %8 .2f % 8 , .2f % 1.00 4 .00 7 .00 2.00 5..00 8..00 3.00 6..00 9..00 ỉ)ể ghi dữ liệu r a file cần phải tạo ra m ột fileHandle với lệnh fopen. Khi đó, t ấ t cả tác dụng của các đinh dạng cũng n h ư vector hóa (xem mục 5.5) đều có th ể được áp dụng. V í d u 2.12. Lưu các th à n h phần của m ôt vector vào m ột file. X = 1:10; fout = fopen ('out.dat','wt' ); fprintf (fout,' k x(k)\n'); for k=l:length(x) fprintf(tout,'%4d % 5.2f\n',k,X(k)); end fclose(fout) 5.4 Đ iều k h iển lu ồn g Đ ể có th ể thự c th i m ột th u ậ t toán, m ột ngôn ngữ lập trìn h cần có các cấu trú c điều k h iển bao gồm: • C ấu trú c tu ầ n tự (S equential structure); • C ấu trú c lặp (Looping or Iteratio n stru ctu re); • C ấu trú c điều kiện: rẽ n h á n h (B ranching stru ctu re). 5.4.1. So s á n h (C o m p a ris o n ) Khi sử dụ n g các cấu trú c điều kiện, ta thường gặp các phép so sánh. S ụ so s á n h được th ể h iệ n qua các tcán tử qu an hệ (R elational O perators). Các to á n tử này được dùng để kiểm tr a hai giá tr ị bằn g n h a u , nhỏ hơn, lớn hơn, cu thể: 56 Chương 2. T o á n tử Ý n g h ĩa >= > ~= Ỷ M atLab cơ bản Khi áp dụng các to án tử q u an hệ th ì kết q u ả sẽ là m ột giá trị logic, tức là True hoặc False. T rong M a t L a b , các giá trị khác 0, bao gồm cả môt xâu khác rỗng là tương đương với True. C hỉ có giá trị (} là tương đương vổi False. C h ú ý 2.3. T rong các to án tử q u an hệ = và ~= th ì ký hiệu " = " phải đứng sau. Đ iều này có ng h ĩa = và =~ là không hơp lệ. T rong phép so sán h ta đặc biệt quan tâ m đến hai loại to án tử là to án từ q u a n hệ và to án tử logic. K ết q u ả của m ột phép to á n q u an hệ là True (1 ) hoặc False (0), ví dụ: >> a=3; b=5; >> aIsSmaller=a> bisSmaller=b> x = l : 5 ; ỵ = 5 : - l : l ; >> z=x>y z = 0 0 0 1 1 Các to án tử logic được sử d ụ n g để kết hợp các biểu thức logic (vói ’'a n d ” và ”or”) hoặc th a y đổi giá trị logic vói ”no t”. 57 5. Lập trình vói Mat L ab T o á n tử Ý n g h ĩa && and 11 or ~ not V í d u 2.13. >> a=3; b=5; >> aIsSmaller=a bothTrue=aIsSmaller && blsSmaller bothTrue = 0 >> eitherTrue=aIsSmaller IỊ blsSmaller eitherTrue = 1 >> -eitherTrue ans = 0 Ta có th ể tóm t ắ t về các phép toán so sánh n h ư sau: • C ác toán tử quan hệ liên quan đến các phép so sán h của hai giá tri. • K ét quả u ỉa một phép to án quan hệ là mội, giá trị logic (T iu e (1) hoăc F alse (0)). • C ác to án tử logic k ết hơp (hoặc phủ định) các giá tri logic tạo ra các g iá tr ị logic mói. • L uôn có nh iều hơn m ột cách th ể hiện cùng m ột phép so sánh. Từ đó có m ôt lòi khuyên đối vói ngưòi dùng, đó là để b ắ t đầu, nên tậ p tru n g vào các so sán h đơn giản. 5.4.2. C ấ u t r ú c đ iề u k i ệ n h o ặ c rẽ n h á n h D ựa vào kết q u ả của m ột phép so sánh, hoặc của phép kiểm tra logic, các khối m ã chương trìn h đã chọn sẽ được thực th i hoặc bỏ qua. Các cấu trú c điều kiện bao gồm: if, if. ..else, if. ..elseif và cấu trú c switch. Có 3 d ạn g của cấu trú c if là: 58 Chương 2. Mat L ab cơ ban 1. i f 2. i f . . . e l s e 3. i f . . . e l s e i f C ú p h áp của cấu trú c i f như sau: i f e x p re s s io n b l o c k o f s ta te m e n ts en d N guyên tắc h o ạ t động của cấu trúc trê n có th ể hiểu m ột cách đơn giản, đó là khối b l o c k o f s t a t e m e n t s chỉ đươc thưc th i n ế u e x p r e s s i o n n h ậ n giá tr ị True. V í d ụ 2.14. i f a 4 > 3 & (-6) II 2. 1 3 o 1. 1 & -1 4^ Chương 2. M a t Lab 6. 2 > 3 & 1 B ài tậ p 2.4. Nhâp vào vector X = [ 3 1 5 7 9 2 6], dư đoán kết quả các dòng lệnh sau và thừ lại bằng M at L a b . 1. X ( 3 ) 5. X ( 6 : - 2 : 1) 2. X ( ì : 7 ) 6. X ( [1 6 2 1 1 ] ) 3. X (1: end) 4. X ( 1 : end-1 ) 7. B ài tậ p 2.5. Cho X = [ 1 5 2 8 9 0 1] sum ( x ) , min ( x ) , max ( x ) . và y = [ 5 2 2 6 0 0 2 giải thích kết quả các dòng lệnh sau: >! A X 6. X 1 ỵ 7. x &ỵ * y ) 4. x < = y 5. ỵ>=x 1 (y ỵ ) & ( ỵ < x ) B ài tậ p 2.6. Cho hai vector a = [1 0 2] v à b = [0 2 2 ] , xác đinh giá trị các biểu thức sau, giải thích, sau đó kiểm tra lại bằng M at L a b . 1. a=b 5. a 1 (a) 2. a 3. Viết các chương trìn h M a t L a b : 1. T ính 10 số h ạ n g đầu tiê n của dãy Fibonacci. 2. Vói 50 số h a n g đầu tiê n của dãy, tín h tỷ số Fn Ngưòi ta chứng m inh được rằ n g tỷ số này d ần tói tỷ lệ vàng p= — ■Kiểm định điều này qua kết q u ả củ a ban. 2 6. Bài tập 77 B à i tậ p 2.29. Đ a thứ c L egendre pn(x) đươc định n g h ĩa theo công thức tru y hồi sau: {n + l)P„+i(.r) - (2n + l)xPn(x) + nPn-i{x) = 0. 3 r2 — 1 với / n(x) = 1, Pì{x) = X và p2(x) — --------- . Lập chương trìn h tín h đa thức L egendre bậc n, k ết q u ả lưu dưới dạng vector hệ số. B ài tậ p 2.30. Đ a th ứ c C hebyshev Tn(x) đươc đ ịn h n g h ĩa theo công thức tru y hồi sau: Tn+i(x) = 2xTn{x) - Tn_i(x), vói 7o(.r) — 1, Tị(x) — X. L ập chương trìn h tín h đa thức C hebyshev bậc n, kết q u ả lưu dưới d ạn g vector hệ số. B à i tậ p 2.31. V iết chương trìn h tín h tiền điện cho m ột gia đình, biết rằ n g nếu số K w h sử d ụ n g («): • n < 100 th ì giá 1 Kwh là 500đ; • 100 < n < 200 th ì giá 1 Kwh là 700đ; • 200 < n < 500 th ì giá 1 Kwh là ìooođ; • n > 500 th ì giá 1 Kwh là 1200đ. Đ ồng thời: • Nếu n < 0 th ì in ra : "không họp lê" • N ếu n > 500 th ì sau dòng in tổng số tiền ghi kèm th êm câu: "H ạn chế sử d ụ n g điện!" B à i tậ p 2.32. V iết chương trìn h giải và biện lu ậ n phương trìn h bậc hai ax2 + bx + c = 0. Áp d ụ n g để giải các phương trìn h X2 —3x + 2 = 0 và X2 + 2x - 1 — 0. K iểm tr a lại kết quả bằng cách tín h bằng tay hoặc sử d u n g hàm r o o t s của M a t L a b . B à i tậ p 2.33. V iết chương trìn h vói in p u t là m ột số nguyên dương n và n n’1 * 2012 1 o u tp u t là 2 SÔ Si, S2 , tro n g đó Si — T k. s 2 = 53 Ap d u n g tín h Yl -T, k=i Jk=1 k=\ Kđ sử d ụ n g f o r m a t lo n g để in kết quả. Chương 2. 78 M atLab cơ bản B ài tậ p 2.34. Viết chương trìn h tín h gần đúng căn bậc h ai sfã với sai số £ cho trước theo công thức lãp Newton. • Chọn Xx = • Sử d u n g công thức lăp: Xn+1 = ~(.Tn + — ); 2 T„ • Đ iều k iện dừng: •En+l 3Cjị < e. B ài tậ p 2.35. Viết chương trìn h tín h gần đúng căn bậc ba ) sao cho n < T0 < b, nhưng phải kiểm tr a lại điều kiện của đ inh lý 3.1 hoặc 3.2 (để khẳng định sự duy n h ấ t của nghiệm ). 2. T rường hợp y = f ( x ) khó vẽ, ta viết lại phương trìn h (3.1) dưới dạng h(x) — g(x). K hảo s á t vẽ đồ th ị các hàm y = h(x) và y = q(x) trê n cùng m ột hệ tru c tọa độ, h o ành độ giao điểm của hai đồ th ị là T0. N ếu /¿(.To) = 7 (2.0) th ì To = o là nghiệm của phương trìn h . Nếu h (t 0) ỷ 7 ( x o ) th ì lân cận về hai phía của Xo sẽ là k h o ản g p h ân ly nghiệm n ẻu th ỏ a m ãn điều kiện của định lý 3.1 hoặc 3.2. V í d ụ 3.1. D ùng phương pháp hìn h hoc tìm khoảng p h â n ly nghiệm của phương trìn h 2X + X - 4 = 0. Hình 3.1 82 Chương 3. Giải gần đúng phương trình Giải: V iết lại phương trìn h đã cho dưổi dang 2* = -X + 4. Áp dụng phương p h áp h ìn h học ta th u được phương trìn h đả cho có m ột nghiệm tro n g khoảng (1.2) (xem h ình 3.1). Dễ dàng kiểm tra khoảng p h ản ly nghiệm (1.2) th ỏ a m ãn điều kiện của đinh lý 3.2. §2. P hương p h á f lặp đơn 2.1 Nội d u n g phư ớ ng pháp Giả sử (u, b) là khoảng p h ân ly nghiệm a của phương trìn h (3.1), tức là / (tt) = 0, a e ( a , b). Viết lại phương trìn h (3.1) tro n g dang X = q(x), (3.2) tro n g đó g(x) là h àm số liên tục trê n \n,b}. Chon Xo là điểm b ấ t kỳ thuôc [n, b\ và tín h dãy lăp theo công thức Xn = g(xn- i ) . /1=1,2,... (3.3) Công thức (3.3) được gọi là quá trìn h lặp, n được gọi là th ứ của phép làp. 2.2 Sự hội tụ củ a phương pháp Đ ịn h n g h ĩa 3.2. Q uá trìn h lăp (3.3) được gọi là hội tụ , n ế u dãy } tin h theo (3.3) hội tụ , tức là tồ n tạ i nlim xn =X. ->TC Đ ịn h lý 3.3. N ếu quá trình lạp (3.3) hội tụ, nghĩa là II— lim x„ • >oo X- fì là nghiệm cỉúng của phương trình (3.1). Chứng m inh. Do q(x) là hàm liên tuc nên ta có X = nlim x n = nlim g (.Tn_i) = g (\n-¥ lim x „ -i) = g ( x ) . —KX —ĩoo oo / Vậy X — (X là nghiệm đ ú n g của phương trìn h (3.1). X thì 83 2. Phương pháp lặp đơn Vấn đề đ ă t ra là điều kiện nào để quá trìn h lăp (3.3) hội tụ Ta công n h ân dinh lý sau (chi tiế t có th ể xem trong tài liệu th am khảo). Đ ịn h lý 3.4. Giả sử q{r) là hàm liên tuc và có dao hàm g'(x) liên tuc V.T 6 [n, h]. Giả th iết tồn tai số q > 0 sao cho |ỡ'(r)l < 0 cho trước. Cụ th ể, từ đ á n h giá qn Fn - u < , — F i - £o < e 1- q ta suy ra cần chon số n nhỏ n h ấ t th ỏ a m ãn n > logy ~ h a y Fi - arol n = [log g(l - 7) + 1. |ti —To| T rong khi đó, công thức (3.6) th u ậ n lợi khi tín h trê n máy. M uốn nghiêm gần đúng x„ đ a t sai số e, ta chỉ cần kiểm tr a điều kiện dừng|T"n x n—1 1 > g=@ (X) l+x-xA2/4; >> [ X, k ] =lapdon( g , q , xO,le-5,100) B an đoc hãy tư thực hiện theo cả hai cách trê n và kiểm tr a kết quả. §3. P hương piiáp N ew ton (P H Ư Ơ N G PH Á P T IẾ P T U Y Ế N ) 3.1 Nội d u n g phương pháp G iả th iế t là khoảng phân ly nghiệm tt của phương trìn h (3.1), đồng thòi /(./:) là hàm liên tục và có đao hàm h ên tục trê n [a, / 0. f"{x) > 0 (xem hình vẽ 3.6). y 3 m X o /(« ) H ìn h 3.6 Chương 3. Giải gần đúng phương trình 94 4.3 Sai số Q uá trìn h lặp (3.13) không th ể kéo dài ra vô hạn, dừng ở bước th ứ lap th ứ n ta đươc x„ Rí o. Sai số đươc đánh giá theo công thức (có th ể xem chứng m inh tro n g tà i liệu tham khảo): |zn - ft| < — — — \xn - .T„-i|, Till (3.15) tro n g đó, 0 < mi < Ị / (x)ị < A/ị. V.í;€ ịạ,b\ Từ (3.15) ta thấy, để \xn - o| < £ thì cần TII J ' n — ,X’n _ i n 7» = 1 1 ? « ^ °i=l 1=1 1=1 nên 7i, 7^ 0 . í - 1 , /í. 2.3.2. G iải h ê d ạ n g (4.19) T ừ Ọ'?/ = 6 ta có 9 11 0 921 922 9nl 9ti2 ■. 0 91 0 92 9nn '6 1 ' (>2 = V ỉ/n hay 9n9i = ¿1 9l29l + 92291 — &2 9ln9l + 927192 + • • • + 9nn9ii 118 Chương 4. Phương pháp số trong đại số tuyến tính Từ đó, ta suy ra: y = 1 0, bị > 0, Cị > a, + bị, i — 1, N — 1 011oo = max {0.08: 0.08; 0.03} = 0.08 < 1. C họn xấp xỉ đ ầ u £(0) = (0, 0, 0)', suy ra .r(1) = (2,3. 5)'. Số phép lặp cần th iế t: , , (1 - 0.08) X 0.02 , k - log0°8 | ị ^ _ ^ ( 0)|| = logo.08 0.00368 = 2.2190. Vậy chọn k = [2.2190] + 1 — 3. Áp dung công thứ c lặp ta th u được: x (2) = (1.92; 3.19; 5.05)' ; ,x(3) = (1.9094; 3.1944; 5.0446)'. Vậy nếu lấy X* « x (3) th ì ta có sai số ||.r* - ;ỉ:(3)|| II lloo < 0 .02 . 3.2.4. C h ư ơ n g t r ì n h M a t L a b function [X,numites]=jacobi(A,B,X0,tol, maxl) % Input: _ A is an nxn strictly diagonally dominant matrix % _ B is an nxl matrix “ _ xo is an nxl matrix: the initial guess % _ tol is the tolerance for X % _ maxi is the maximum of number of iteration % Output: _ X is the jacobi approximation to the solution % _ numites is number of iterations if nargin [ A 2J >l A. 1 | > , . . > | A nỊ. (4.66) Từ hệ (4.65) (vói Ci Ỷ 0) ta có: AmY = cl\ ? X l + Ề ck\ ? x k = XT k=2 Do giả th iế t (4.66), khi rn -> oo th ì ( — Ai Cị X i L + Ế Ckiy-rXk k=2 /'1 —> 0 {k — 2, n) và k h i đó ta có: AmY -> \ vìlc1X l (ĩii -> oo), hay khi m đủ lớn th ì AmY 5S A^CiXi, đồng thòi Am+lY w \ ? +lCiXi = A, (A^dXx) « Ax/lmy. (4.67) Từ đó ta có: Al* l k v j = 1’n- (4.68) Từ (4.67) ta lại có: A (AmY) ta XiAmY. Điều này chứng tỏ Ai là trị riê n g của m a trậ n A, vector riên g tương ứng là Xi = AmY hoặc X\ = Am+ÌY. 7. Tìm gần đúng trị riêng và vector riêng Từ (4.68) ta thấy, vói vector Y 149 bất kỳ có c.\ ệ- 0, ta tín h AY, A2Y , . . . . AmY, Am+ÌY. Khi hai phép tín h liên tiế p có xu hướng tỷ lệ vói n h a u th ì rn đươc goi là đủ lón. 7.1.2. T rư ờ n g h ơ p tr i r iê n g th ự c trôi bội r T rong trư ờ n g hợp này, giả sử A i — A 2 = • •• = A r ; |A r|> |Ar+i| > • • • > |A„| (4.69) Từ (4.65) ta có: AmY = \ ? ị i r.kX k + Ề CjXJ'Xj k=\ j=r+l = K ¿ r txt + Ề k= 1 , rk ^ 0, k = l,n . c ,ă rx , j= T + l A1 B ằng cách lập lu ậ n n hư trê n , vói rn đủ lỏn th ì Am+lY as A ,/T y hay A ( AmY ) as Aị (/lmy ). Từ đó suy ra (.Am+1Y ), g Vj= 1,n' (4'70) N hư vậy tro n g quá trìn h tín h AmY và Am+ÌY , n ếu th ấ y tỷ số (4.70) xấp xi bằng n h au , nghĩa là m đủ lớn và A| xác định theo công thức (4.70) trù n g vói (4.68). Đ iều này có nghĩa là tỷ số (4.68) hoặc (4.70) chi xác định đươc Ai th ư c trôi m à không biết được Ai đơn hay bôi. Vector riên g ứng với tr ị riêng Alt như trê n ta có th ể lấy là X\ « AmY hoăc Xì ~ Am+lY; n h ư n g nó chi là một vector riên g tro n g số r vector riên g đôc lâp tu y ến tín h ứ ng vỏi trị riêng Aj. 7.1.3. T rư ờ n g hớ p tr ị r iê n g trô i (thự c đơn) đ ố i d ấ u n h a u Xét trư òng hơp Ai — —A2 ; |Ai I = IA2 1 > IA31> • • • > |An| . (4.71) (4.72) 150 Chương 4. Phương pháp số trong đại số tuyến tính T rong trư ò n g hơp này ta có: AY = Ál (c1X 1 - c 3X 2) + Ề c j Ă j X j (ci.C'2 Ỷ 0); j= 3 A2V = A ( A Y ) = Xi {cl A X l - C2A X 2) + £ r,-Aj/tÀ'j j= 3 —C2X 2) + ^ Cj\2Xj\ — Aj (4.73) j= 3 / t 2/c 'y = A ị *’ 1 ( c' ị A 1 — c2 A^) + y : CjA2fc l Aj! .7=3 Al2fcr = A f ( c 1X 1 + c2X2) + è c j A fX j . j= 3 Lập lu ậ n tương tự n h ư trê n , khi k đủ lớn ta th u được A2k~lY « A?*-1^ ! * ! - C 2X 2); -42fcy « A f (ciXi +C2X 2). Từ đó ta có A 2k+2Y » Af+2 (rjX] + r2X2)= A?A2*{r.ì x l + r2X 2) « X\ A2kY. (4.74) Từ (4.74) ta suy ra (A2kY) Aĩ ~ ’ J~ (4.75) ' T rong công thức (4.75) cũng có th ể lấy: A1 ~ ị 4'2/t-iy) ’ "7 (4.76) n' N hư vây, tro n g quá trìn h tín h , với hai lũy th ừ a liên tiế p n h a u , các tỷ số nói chung không có xu hướng tỷ lệ vói n h a u m à h ai lũy th ừ a cùng chẵn (hoặc cùng lẻ) tỷ lệ vói n h a u th ì ta xác định đươc A2 theo công thức (4.75) hoặc (4.76). Từ đó ta th u được ±Ai. Các vector riê n g X\, x 2 ứng vói trị riêng ±Ai được xác định n h ư sau: Từ các xấp xỉ 2); A2k~xY « A f - 1 {Cl x l - c 2x A2kY « A?fc{Cl x l + C 2X 2), 7. Tìm gần đúng trị riêng và vector riêng 151 su y ra A 2kY + ẰiA2k- 1V « A f 2Ơ ,X 1. (4.77) M àt khác, ta lại có A(A2kY + A1 /t 2fc~ 1r ) w A f 2CV1X), hay A(A2kY + A1 /l 2fc“ 1 X) w Aj*2Ci AXX = Ai (Af 2CjX,) « \ i { A 2kY + \ i A 2k~lY). (4.78) T rong (4.78) chọn Xi w 7l2fcy + Aiyt2fc_1y (4.79) th ì ta có /IXỊ sa A1 A'!; nghĩa là Xi tính theo công th ứ c (4.79) là vector riên g ứng vói trị riê n g Aj. H oàn to à n tương tự ta củng có vector riêng Xi ứng vói tr ị riên g A2 = —Ai đươc tín h bời công thức: x 2 ss A2kY - Aii42fc-1K C h ú ý 4.8. (4.80) 1. T rong quá trìn h biến đổi, nếu các tỷ số dan g (4.68), (4.70), (4.75) không xảy ra thì chắc chắn tri riên g trộ i có cặp nghiệm phức liên hơp. Ta không xét trường hơp này ỏ đây. 2. S au khi tìm đươc tri riêng trội, tri riêng trôi kế tiếp có th ể tìm đươc b ằn g phương p h á p xuống thang, ta cũng không xét ỏ đây. Các vấn đề của chú ý trê n có thê xem trong 12, 5]. 2 3 2 Ví d ụ 4.13. Tìm t r ị riê n g trội của ma trậ n / 1 = 4 3 5 3 2 9 G iải: Chon Y — ( 1 ,1. 1)l và lập bảng tính: 152 Chương 4. Phương pháp số trong đại số tuyến tính A Y AY A2Y Á3Y A4Y AbY A*Y 232 1 7 78 900 10589 125128 1480345 435 1 12 134 1569 18512 218927 2590563 329 1 14 171 2041 24207 286654 3393124 Ta thấy ^ {A*Y)j (AsY)j . è 11.8306, 3= 1 « 11.8330. 3=2 « * 11-8370' 7 = 3 . Vậy chọn trị riê n g trộ i Ai « 11.83; vector riên g chọn là y46y . Do các vector riên g khác n h a u h ằ n g số n ê n có th ể chọn X x w (1; 1.750; 2.991)'. (th u được từ vector AtìY sau khi đã chia tấ t cả các th à n h p h ần cho 1480345). C h ư ơ n g tr ìn h M a t L ab Bạn đọc hãy dựa theo ví dụ để lập chương trình MatLab cho phần này. 7.2 Trường hớp m a trận đối xứng, xác đ ịn h dương Xét ma trận đối xứng A - ịatJ] (av = ũj, Vi,j). Ma trậ n .4 được goi là xác định dương nếu vói moi bộ (.T|, x 2, . . . , x n) không đồng thòi bằng "0" ta đều có ' y 0>ijXịXj 0. Ta đã biết nếu A là m a tr ậ n đối xứng, xác định dương th ì mọi trị riê n g đều là thực, p h â n biệt và dương. N ghĩa là, hai vector riê n g X — (xi,X2 , . . . , x n) và Y = {yi,y2t. . . yn) ứng vói hai tri riên g kh ác n h a u th ì trự c giao vổi n h au , tức là: ( X , Y ) = ± x kyk = 0, ( X j Ề Y ) . k=1 7. Tìm gần đúng trị riêng và vector riêng 153 Điều kiện cần và đủ để A là m a trận xác định dương là: Ai — «11 > 0; A, A2 «11 «12 «21 0.22 > «11 «12 . «lfc «21 «22 • • • n2k Ofcl ak2 (*kk 0; > 0, VẢ; = 1, n. Dối với m a trậ n đối xứng, xác định dương ta có th ể tìm được tấ t cả các trị riên g và vector riê n g dựa vào tín h chất trực giao của các vector riêng. Thuật toán : X uất p h á t từ phương trìn h A X = XX (4.81) hay n y 'aqXi j=i — \Xj, i = l,n. Ta th ấy hê (4.82) gồm 11 phương trìn h , n + 1 ẩn là (4.82) Xị i = I Trĩ và A. N hưng do các vector riê n g ứng với trị riêng nào đó sai khác n h a u m ột h ằn g số Iihân, nên tro n g các ẩ n Xi,X2 , . . . , xn, ta có th ể chọn m ột ẩ n nào đó bằng " 1 ". Khi đó, hệ còn lại đủ n phương trìn h và n ẩn. Q uá trìn h giải (4.82) dược tiế n h à n h q u a các bước: • Bước 1: C hon x„ — 1 , hệ (4.82) được viết lại dưới dạng: Xi - 1 n—l ^ O ịjX j T à 2= 1 n -1 X = 0-ijXj+ O ị.n i — 1 , n —1 (4.83) j=1 Hê (4.83) tu y ế n tín h đối với X, (ỉ = 1, n —T), phi tu y ến theo A. Ta giải hệ này b ằ n g phương pháp lăp. Chon xấp xi đ ầ u b ấ t kỳ 154 Chương 4. Phương pháp số trong dại số tuyến tính sau đó tín h A = j=l ta đươc xấp xỉ đầu của A(0). Q uá trìn h lăp thực hiện theo công thức: (m ) xi T 1 = ry n - l \ -> (m -1) b=' A(m) = + «n,n, i = l,n - 1 + A'°' — 5.42; ỉ/ị1' = 0.52. Kết q u ả tín h chi tiế t được cho tro n g bảng dưới đây: rn (m) V\ \(rn) 0 1 5.42 1 0.52 4.85 2 0.35 4.64 3 0.28 4.56 4 0.25 4.53 5 0.23 4.50 6 0.223 4.494 7 0.220 4.490 8 0.218 4.488 9 0.2174 4.487 10 0.2171 4.486 11 0.2170 4.4867 C họn A2 « 4.4867; yx ~ 0.2170. T hay Vi vào (c) ta có Vậy A2 s s 4.4867 và Y = (0.2170; 1; -0.9473)'. 2/3 « -0.9473. 157 8. Bài tập • Bưốc 3: Tìm A3 và vector riêng tương ứng z — (z 1 , 22 , 23)*. Ta có Ị (Z, X) % 0.807721 + 0.772022 + 23 = 0; Ị x„ ta sử dụng công thức lùi (5.21). G iá tri th u đươc gọi là giá trị ngoai suy. Ví dụ 5.2. G iá tri của tích p h ân xác suất dt được cho tro n g bảng sau: X 1.4 1.5 1.6 $ 0.9523 0.9661 0.9763 1.7 1.8 0.9838 0.9891 1.9 2.0 0.9928 0.9953 Hãy tìm giá trị g ần đ ú n g của $(1.43). Criai: Lập bảng sai p h â n từ hàm số đã cho (mọi cột số nguyên đều được n h â n vói 10 "'): 172 Chương 5. Phép nội suy và xấp xỉ hàm Do điểm X — ] 48 g ầ n đ ầ u bảng nên ta sử đung công th ứ c nội tiến (5.19), vói ĩ = h SUV Newton — = 0 .8 ; h = 0.1. Kết quả th u đươc (1.43) « 0.95686. 3.5 Chương trìn h M at L ab function [V,d]=newtoninterp(x,ỵ,u) % This funtion illustrates the Newton interpolation fomular %Input: _ X, y are vectors of the same length that define % the interpolating points. % _ u is the vector of points where the function is to be % evaluated. % Output: V is the same length as u if nargin i ^ ( - T) j =0 (5.40) xấp xỉ hàm /( .r) (tức là / ( J.) ~ g (.(•)) tốt n h ấ t theo nghĩa tru n g bình phương. 5.4 Sai số củ a phương pháp Ta gọi 1/2 Ỡ,n - (5.41) Y , [.Vi - Ĩ5( ir1)l2j là sai số của phương pháp xấp xì tru n g bình phương. Xét lì 52 lĩii ~ Ĩ--I ^ T')]2= [y - 7- ?/ - 7} = Ị.v- 7. y\ - [y - g- 7] ■ (5.42) 180 Chương 5. Phép nội suy và xấp xi hàm Do nk là nghiệm của hệ (5.38) nôn ta có m [y - ỹ M [y. p\ - = ty- ỳ\ 52 ặj [y, V3j] - = j =0 = U- m 52 a j lP j j= 0 ậj j=0 J rn 52 (ì j p } ' 52 ~ k=0 [_j=0 (ík p k 52 ãfcP k fc=o ự > j> L = ¿ SJ I ỉy- pj) - ê ã* bj> V k \ 1 = 0. j=0 ( k=0 ) Vậy từ (5.42) ta có 52 [Vi i=l v ty i) } 2 = [y - ỹ - y\ = Ịy,. y] j ) 2 (5.43) tro n g đó ăk (k — 0, rn) là nghiêm của hê phương trìn h ch u ẩn (5.38) còn {ý2fc(T)}fc=g-Sĩ là hệ hàm độc lâp tu y ến tín h trê n p h â n hoach A {a =X j < Xi ,.vM)v' gọi là ch u ẩn cùa ipr trê n phân hoạch A. Hệ hàm {*,,(*)} ==ỹ-ĩr gọi là hệ trự c ch u ẩn n ếu nó là hệ trư c giao và các vector đều có ch u ẩn bằng " 1 ", tức là lịi^rỊI = 1 , (r = 0, rn). 5. Phương pháp bình phương tối thiểu... 181 Vây nếu chon {y>r}r=õrũ là hệ trực giao thì từ hệ phương trìn h chuẩn (5.38) ta có ngay ĩỉk = .^■"Pk\ . k - Ữ7m. (5.44) \'p k -p k \ T hay ãk (k = 0, Vĩ) vào (5.43) ta được (íRẵưi) 1/2 (5.45) fc-0 II-pkI Từ (5.45) ta thấy khi rn tă n g th ì ã rn giảm. Vì vậy, k h i tín h có th ể tín h ỡ rn d ầ n từ n g bước từ III = 0, 1, 2, . . . Giả sử tới bước th ứ k = III ta th u được ỡk < e (theo m ong m uốn) th ì dừng quá trìn h tín h . Còn nếu ỡk > £ th ì ta tín h tiế p bước th ứ m — k + 1. Khi tín h đến bưóc th ứ rn — s sao cho ỡs < £ (s > k), ta dừng q u á trìn h tính. 5.6 T rường hơp hệ cơ bản là hệ đại số Xét hê pj(x) = XJ , J = 0, III (m < n — 1). Bài to án trỏ th à n h tìm Ọj, (j = ờ, m) sao cho p{x) = prn{x) = ỵ 2 aJxJ j=n (5.46) chính là đa thức bậc m (vì hệ {l..T,.r2, ...,.Tm} là độc lập tu y ến tính). Các hệ số nj dược xác d ịnh từ nghiệm của hệ phương trìn h ch u ẩn (5.38). T rong trư ồ n g hơp này ta có [ỉ/.v’«] = Ị^rt^íỊ = Y^ỉỉiVÁri) = Y J ĩhx ’ j=l 1=1 'y Pr(Xj)'ps{xt) = j=l i=l x.ị Khi đó, hệ phương trìn h ch u ẩn trỏ thành nao + E "=1 X-Ia \ + E "=1 x ĩ a i + • • • + E ,"=1 x T a m E?=1 W (, f X] 1 ,Ỷr X] cos rx ' + ĨI no Y 1=1 r I 1 1=1 ^ 1=1 11 k ( sin p.r, + 1=1 p = k( X! s' n rj >í J Ẻ 1=1 n sinrxjcospXị c o s p X ị 4- £ « r X I C0S r x i C0S /'•' » + /Y X r=1 l j=l i= n ('V o n 71'Ị x^ ì n E a T r= l l n c o s r.r, sin 1= 1 ỵ, Uic o s p .i, i=l (5.50) ri px, + t% XI sin rxisin pXị > — x ^ J 1=1 1=1 1 . 2 ........... fc. Hệ (5.50) gồm 2Ẳ ; + 1 phương trìn h , 2k + 1 ẩn là ao, a r, Pr, I' 1. Ả. Giải hệ trê n ta th u được ã 0.7Ir. flr và do đó ta có k /(.r) « Tk{x) —7>0 + X^ õ r cos r.r + ftr sin r.T (5.51) r=i C hú ý 5.4. Nếu tâ p hợp các mốc .1 , e (0. 277ị cách đều n h au , khoảng cách ‘V h= — , tức là Xị = i / í , ỉ = 1,«. Trong trường hơp này ta có II ! eo s ra:, = 53Í*=1 SĨ117M;, = 0 £ ’=,ị c o s r.r, sin px-i = 0 , r = 1 , k, p = l,fc E !‘=,ịco s rXị c o s px, — 5Z"=1 sin r.T, sin /).r, — 0 , /) ^ r ; p, r - 1 . Ẳ, , . £ ? = , 1 cosr rx* = E - L ,s i n tl r -' i - 77 . r - o . Khi đó hê (5.50) trở nên đơn giàn hơn (chì còn các p h ần tử trê n đườn^ chéo chính và vế phải của hệ). Ví dụ 5.3. Cho b ân g số //, % / (.7-,): X 0.56 0.84 1.14 2.44 3.16 y -0 .8 0 -0.97 -0089 1.07 3.66 Hãy tìm hàm xấp xi theo nghĩa tru n g bình phương có dạn g da thưc bậc hai. //í sin 184 Chương 5. Phép nội suy và xấp xi hàm Giải: Ta tìm hàm xấp xì có dang p(x) — n0 + (iiT + o2.r2.Theo hệ phưổng trìn h ch u ẩn (5.47) ta có: 5ùo + E?=1 4- Ef= 1 Ậ = E?=1 ì/i 2 Ei=i X ị O o + Ei=i*?0i + £?=ir ?°2 = Ef=i -T.y. Z Ï = iA ao + Ei=i s?«1 1 Ef=i-rS = Ef=i Lâp bảng tín h các hệ số E A 0.18 A 0.09 -0.45 Av> -0.25 0.71 0.59 0.50 -0.81 -0.68 1.14 -0.98 1.30 1.48 1.69 -1.12 -1.27 2.44 1.07 5.95 14.53 35.45 2.61 6.37 3.16 3.66 9.99 31.55 99.71 11.57 36.55 8.14 1.98 18:260 48.335 137.456' 11.791 40.710 0.56 -0.80 A 0.31 0.84 -0.97 Vi Xi ■í , !l ĩ Từ đó ta được hệ 5ũo + 8.14ui + 18.260f¿2 =1.98 « 8.14ao + 18.2600! + 48.335o2 = 11.791 18.260o0 + 48.335o, + 137.456o2 = 40.710 Giải hệ trê n ta th u đươc o0 = 0; 0 , = —2; «2 = 1, từ đó /(:r) «s p ( x ) — X1 —2x. Sai số được đ á n h giá theo công thức (5.43): / Ỡ2 = 1 [Ậ 2 E \ [Vi - V ( x , ) | 2J 1 /2 Ị = (ị X 0.00004),/2 = 0.0063. V í dụ 5.4. Cho bảng số X 30° y 2.611 60° 90° 120° 150° 180° 3.102 2.912 2.105 0.612 -1.321 210° 240° 270" -1.906 -2.412 -2.802 6. Tìm hàm thực nghiệm theo phương pháp hình phương tối thiểu 300" 185 360" 330° -2.703 -1.610 1.500 H ãy tìm đa thức lương giác cấp hai theo phương p h á p bình phương tối th iểu . Giải: Đa thức lương giác cấp hai có dang T2[x ) — ao + «1 cos X+ «2 cos 2x + fi\ sin X+ 02 sin 2x\ , x 2ĩĩ C ác môc Xi 6 (0. 27rỊ cách đêu n h au , có bước /ỉ = — = 30°. Từ hê phương trìn h ch u ẩn (5.50) và công thức (5.52) ta có hệ Vi 12a0 = E !i, « lE ! ! , cos2 X i - E , = 1 >Mcos xt «2 £Ỉ=1 cos2 2xj = E := l y. cos 2x A E S i sin2 Xi = E ,= 1 Vi sin Xi 02 E Ỉll sin2 2xi = E,=i.v.sin2x1 L ập bảng tín h to án các hê số, sau đó giải hệ trê n ta th u được đa thức lương giác T2{x ) —0.007 + 0.860cos.r + 3.004sin X- 0.021 cos2.r + 0.432 sin 2.T. 5.8 Chương trìn h M at L ab Bạn đọc cho phần hãy dựa theo ví dụ để lập chương trìn h M atLab này. §6. T ìm hàm THực nghiệm th eo P H Ư Ơ N G P H Á P B ÌN H PH Ư Ơ N G T ố i T H IỂ U Phương p h áp bình phương tối thiểu thường được d ù n g để tìm hàm thưc nghiệm . G iả sử cần tìm quan hệ hàm số y = f(x) theo quy lu ậ t đã được r ú t ra từ 186 Chương 5. Phép nội suy và xấp xi hàm quá trìn h thực tiễ n của công việc. R ằng th í nghiệm , đo đac ta th u dươc bàng số y¿ ~ /(-Tt) , I - TTñ. Từ bàng số đó qui về việc đi tìm các th a m số của các d an g h à m đơn giàn (đã biết), goi là các hàm số thưc nghiêm . Các d an g hcàm th ư c nghiêm thường găp: 1. ý — a + hr ; 2. y — fì + b.r 4- O.T2; 3. y 4. — a -ị- bx + C.T2 y — a + b cos .T + + r/.T : i ; rsin r; 5. y — aebx (a > 0); 6 . y - axh- (-a > 0 ); T rong ba dcing 1, 2 và 3 th ì hệ cơ bàn chính là hê đại số đ ã xét tro n g mục 5.6. Với d an g 4, hệ cơ bản là hệ lương giác đã đươc xét tro n g m ục 5.7. Các d an g 5, 6 có dạng phi tu y ến đối vói các th am số n, b cần tìm . 6.1 Hàm thự c n ghiệm d ạn g y = aehx, (a > 0) Vấn đề đ ă t ra: Từ bảng số y, RS f (-Xi) , / — l . n; hãy tìm hàm thuc nghiêm tro n g dạng y = aebx. Do hàm số có dạng phi tu y ến dối với các th a m số a và b n ên c ầ n th iế t tìm cách biến đổi để đư a về dang tuyến tính. Từ y = arbx. (5.53) lgy = lgn t bxìgt. (5.54 lấy lô garít hai vế ta dươc Đ ăt Y — lg y; A —lg a: lì — (dgc; X — X. 6. Tìm hàm thực nghiêm theo phương pháp bình phương tối thiểu 187 Từ (5.54) ta suy ra Y - .1 + 13X (5.55) là d ạn g tu y ến tín h đối vói /1 và lì và hài toán được đ ặ t lai n h ư sau: T'im A và lĩ, x u ấ t p h á t từ hảng số ~ lg;v, = lg (/(*■,■)) = igf(X¡) = F {Xi ) , vói X, = Xi, i = TTi. (5.56) C ách tìm A và lì bằng phương phcáp bình phương tối th iể u chính là dang 1 đã xét tro n g m uc 5.6. T ừ đó suy ra a= 6.2 lo'4; b = -— , ( l ge w 0.43429). lge Iĩàm thự c n ghiệm dạng y = axb, (a > o, X > 0) H oàn toàn tươ ng tự n hư trê n , lôgarít hai vế ta th u được lgy = lga 4 b \g x . B ằng cách đổi biến Y — lgy; A = lgn; 13 = b: X = lgx, ta th u dươc bảng số Yị = lg Di, X, = lg.r, hay Y i* i F { X i ) , i = TT7Ĩ. (5.57) 4’ừ (5.57), tìm hcàm thực nghiệm dưới dang: Y - A + BX. (5.58) B ằng phương p h áp bình phương tối thiêu ta th u đươc A. 13 và từ đó suy ra n. b. C hú ý 5.5. Ccà h a i trư ờ ng hợp trê n đều d ẫn đến d ạn g tu y ế n tín h , cho nên khi tìm A, B x u ấ t p h á t từ bảng số X và >', nghĩa là các điểm M, (Xị. lgy.) dược p h â n bố gần n h ư n ằm trê n một đường th ẳ n g th ì q u an hộ giữa X và ỊJ có dang Ị/ — nebl. Tương tự, nếu các điểm (lg T,, lg I/,) có p h â n bố gần như trê n đường th ẳ n g th ì quan hệ giữa Ị/ và r có dang y - axb. 188 Chương 5. Phép nội suy và xấp xi hàm C hú ý 5.6. Các trư ờ ng hợp tìm dạng hàm xấp xỉ tro n g dạng đa thức vỏi hệ cơ sỏ đại số hay lương giác hoăc các dạn g phi tu y ến có k h ả n ăn g tu y ến tín h hóa được là do các đ ịnh lu ậ t vât lý, hóa hoc gơi ra. T rường hơp không th ể biết gì về q u an hê giữa và X, khi đó ta phải làm th í nghiệm nhiều y lần để loại bớt các kết q u ả vô lý, sau đó biểu diễn các căp số (.Tj. ỉii) th à n h n h ữ ng điểm l\ĩ, tro n g m ặ t p h ẳn g tọa độ Oxy, ta suy ra d an g hợp lv n h ấ t của q u an hệ hàm số giữa X và y. Để m inh hoa cho các chú ý trê n , ta xét ví dụ sau. V í d ụ 5.5. Cho bảng số t 14.5 30.0 64.5 74.5 86.7 94.5 98.9 k 0 0.004 0.018 0.029 0.051 0.073 0.090 có được từ mối liên hệ của s u ấ t dẫn điện k của th ủ y tin h phu thuôc vào n h iệ t độ t (tín h theo °C). H ãy tìm công thức th ự c nghiệm của hàm số Giải: Ta đá biết quy lu ậ t s u ấ t d ẫn điện k của th ủ y tin h không th ể biểu diễn tro n g dạng đa thức hay lượng giác. Các điểm .1/, lgk , ) , I — 1.7, trừ điểm đ ầu tiên , nói chung nằm trê n m ột đường th ẳn g . Cụ th ể ta có bảng số sau: t \gk 14.5 — 30.0 64.5 74.5 86.7 94.5 98.9 -2.3979 -1.7447 -1.5376 -1.2924 -1.1367 -1.0458 Vây q u an hệ có d an g k = a e bt hay lgẢ,- = Đ ặt Y = lg k, A = lg a , \ga + bt lg e. B = b lg t ta được Y = A + Bt. Giải hệ phương trìn h ch u ẩn theo (5.47) ta th u đươc A = 0.00335; B 0.01965, từ đó suy ra a b — 10no = 10 ° 00335 = 1.00 774, 0.01965 = 0.04525. 0.43429 \gc 7. Bài tâp 189 Tóm lại ta có: k = 1.00774c°04525 j = 0 , 7i, ( 6 . 1) theo công thứ c nội suy L agrange trong tiết 2, chương 5 ta có n f(x) ĨZ pn(x) = E LÁ*)vp j =0 ( 6 . 2) tro n g dó {x - x 0).(x - X i ) . . .{x - Xj-i)(x - xj +l ) . . . ( x - x„) Li(x) = - - • ------— _ . \ f - ~ t -- T-- / [Xj - ■'■o).(.TJ - .Ti)... (Xj - Xj. I )(Xj - Xj+i ) . . . (Xj - xn) _ 7T 3 = 0. n. (6.3) 193 Chương 6. Đạo hàm, tích phàn và ph ương trình ui phản 194 Từ đó ta suy ra f'{x) « p'n(x) = ]T L]{x)yr j=0 (6.4) R'n(x) = f ' ( x ) - p ; t(x). (6.5) Sai số Từ (6.4) ta cũng có th ể tín h các đao hàm cấp cao f"(:x ) ,... 1.2 T rưòng hợp các m ốc nội suy cách đ ều nhau Theo công thứ c nội suy N ew ton tiế n (5.19) ta có f (x) « Pfi(X) = pn (xo + ht) = V(t) A 2y0 + • • • + = Ưo + ỶỵAyo + t(t — l) • • ■(t —n + \) A"y0, n\ ( 6 . 6) tro n g đó lì — X í + 1 — Xj V?' = 0 ,n - 1; X = .ru f / ư . Vậy / ' ( x ) » 7^(x) = r't .t'x = ị p ' ( t ) = ^ỊAyo + ^ ^ A 2yo + ---]. (6.7) S au đây, ta xét m ột số trư ồ n g hơp riêng. 1.3 T rưòng hợp n = 2 T rong trư ò n g hơp này ta có 3 mốc nội suy X o, X i , x 2 và các giá tri hàm tương ứng là y, = f (x t. = 0, th ay vào (6 .8 ) ta đươc X — / (xo) ~ 2 r (_3ụ° + " y*) ■ (6.9) 2. K hi .r —.Ti => t. = 1 th ì / (x'l) ~ 7ỊT (~yo + 3/2 ) • (6 .10) 3. K hi X —.r2 => t = 2 và ta có / (x2) « 2^ (yo - 4.1/1 + 3y2) . Từ công thức k hai triể n Taylor, các công thức (6.9) - (6.11) đ ạ t ( 6 . 11) số cấp 0 (/i2). 1.4 Trường hơD n = 3 Ta có 4 mốc nội suy là X0,Xi,X2 .X3 . Theo (6.7) ta đươc , l fA 2/-1.2 3t2 — 6í + 2 3 , / (x) ~ P-Áx) = ^[Ayo + — A y0 + -------22----- A 3y0Ị ... ( 6 . 12) X - Xo voi t — —-— — . h 1. Khi X- = £0 => t. = 0 và ta có / (x0) ~ P 3 (.To) = — ( - lly o + 1%) - 9y2 + 2y3) 0/1 (6.13) 2. K hi X = Tj => t = 1, ta có / (Ti) w P 3 (x-i) = -1- (—2yo - % 1 + 6y2 - ĩ/3) 3. K hi X (6.14) = x 2 => t — 2, ta có / (x2) « P 3 ( t 2) = 6/ỉ (yo - 6yi + 3y2 + 2 y3) (6.15) 4. Khi X = x 3 => t — 3, ta có / (t 3) w P-i (*3) = 77 ( - 2yo + 9;Vi - 1%2 + 11373) 6/i (6.16) Ch ương 6. Đạo hàm, tích phân và phương trìn h vi phân 196 Trong trư ờ ng hơp này sai số đ ạ t cấp o (/í3). C hú ý 6.1. N ếu lấy số mốc nội suy là 5 , 6 , . . th eo công th ứ c (6.7) ta có công thức tín h đao h àm đ a t sai số cấp cao hơn, song công th ứ c sẽ phức ta p hơn. T ùy theo công việc cần th iế t m à chon công thức th ích hơp. C hú ý 6 .2 . Công thức (6.7) x u ấ t p h á t từ công th ứ c nôi suy N ew ton tiến, vì vậy nó th u â n lơi khi tín h đạo hàm tại điểm X > .T o , g ần T0 (ỏ đ ầu bảng sai phân). C hú ý 6.3. N ếu x u ấ t p h á t từ công thức nội suy N ew ton lùi (5.21), ta cũng có công thứ c tín h đao hàm tương ứng. Các công th ứ c đó sẽ thích hơp cho việc tín h đao hàm ta i X < xn và gần với xn (cuối bản g sai phân). C hủ ý 6.4. Khi cần tín h đao h àm ta i điểm ta xét hai k h ả năng. Với To- Còn n ếu X Xi, gần X Xị (giữa b ản g sai phàn), ta sử dung công th ứ c (6.7) và xem X, là ta có th ể sử dung công th ứ c tín h theo chú ý 6.3 và Xi, xem Xị là xn. V í dụ 6.1. T ín h gần đ ú n g / (55) của hàm f(x) — lgx cho từ b ản g số X 50 55 60 65 f(x) = \gx 1.6990 1.7401 1.7782 1.8129 Giải 0 dày có bốn moc nội suy là Xo = 50 -» Xị — 65; h. — 5. n 3 và ta cần tín h / ' (t ị ) với X\ = 55. Theo công thức (6.14) ta có /'(5 5 ) « — ( - 2 X 1.6990 - 3 X 1.7401 + 6 X 1.7782 - 1.8129) - 0.007933. B ằng cách tín h trự c tiếp ta được / ' ( x) — (lg x)' = ———, suy ra /'(5 5 ) = 0.18182 X J lnio- = 0.007896. H ai kết q u ả trê n trù n g n h a u tới ba số lẻ sau dấu 2. Tính gần đúng tích phân xác định 197 §2. T ín h g ầ n đ ú n g t íc h p h â n x á c đ ịn h 2.1 Mở đầu Già sử f (x) là hàm số liên tuc trên đoan \n,h} có nguyên h àm là F(x), khi đó giá trị của tích phân xác đinh trê n đoan a,b} đươc tín h theo công thức N ew ton-Leibniz: b / = J f (x)dx = F(x)\b= F{b) - F(a). ã (6.17) T uy nh iên tro n g n h iều trư ờng hợp có F(x) là nguyên hàm của hàm f (x) không p hải là hàm số sơ cấp hoặc F(x) có biểu thức q u á phức tạp . Khi đó giá trị của tích p h â n / chỉ tìm dươc là số gần đúng. T rong trư ờng hợp h àm số cho tro n g d ạ n g bảng số thì khái niệm nguyên hàm không còn ý n g h ĩa gì nữa. Bài to án tìm giá trị của tích p h ân xác đinh trong to án học tín h to án nghĩa là giá trị I đó được tìm th ô n g qua giá tri của hàm số f (x) dưới d ấu tích p h ân ta i m ột số điểm thuộc đoạn [rt, b]. Phương p h áp đơn giản n h ấ t để giải quyết bài to á n trê n là dựa vào ý nghĩa hình học của tích p h ân xác đinh và từ b ả n g số í/, — / (X ị) , i = 0 ,rí, ta xây dưng đ a thức nội suy ]r ln ' Từ công th ứ c (6.32) ta thấy, để sai số tuyệt đối Iĩ - /* I < £ th ì số mốc cần chon n— lf> X 180 X Mị(b —(i)5 + 1 và ta có 2n + 1 mốc là ,T0, X j, — r 2n. V í d u 6.3. Áp dung tín h gần đúng ỉ — } dx - ■= theo công thức Sim pson ./ 1 + X- 0 tổng q u á t vói (6.31) n = 5. Giải: Do n — 5 n ên suy ra h = ~ = 0.1. Tiếp theo, tín h 1 Vi = / (x,) = 7 - 7 - 3 , X'i 1 + X, = í/i. / = 0 , 10. Vây c = ^ Ị(?/o+ ỉ / 1 0 ) + 2 (ỉ /2 + ỉ/4 ■+ ỉ/6 + ys) + 4 (ĩ/1 4 y34 ?y5 4 y7)j = 0.7854648. B ằng cách tín h trự c tiếp ta th u được arctan Sai số đ a t đươc là 0.0085%. T 0 - = 0.78539816. 4 3. Giải gần đúng phương trình vi phân (bài toán Cauchy) 205 T ừ công thứ c h ìn h th a n g và công thức Sim pson ta thấy, nếu lấy n h iều mốc nôi suy hơn (công thức Newton-Cotes) th ì sẽ đ ạ t đươc sai số cấp cao hơn, song công thức sẽ trỏ nên phức ta p hơn (xem [5]). Vì vậy, tro n g th ư c tế người ta th ư ò n g sử dung hai loai công thức tổ n g q u á t là (6 .2 2 ) và (6.32). 2.4 Chương trình M at L ab function I = simpson (fun,a,b,npanel) % simpson Tinh gan dung tích phan theo cong thuc Simpson % Cu phap: I = simpson(fun,a,b,npanel) % Input: fun = (string) Ten ham % a, b = Cac can cua tích phan xac dinh % 2*npanel = So doan chia % Output: I = Gia tri gan dung cua tích phan n = 2*npanel + 1; % So diem chia h = (b-a)/(n-l); % buoc X = a :h :b ; £ = z e r o s ( s i z e (x)); fo r i = l : n f (i)=feval(fun,X (i)); end I = (h/3)* (f(l)+4*sum(f(2 :2 :n-1))+2*sum(f(3:2:n-2))+f(n)) §3. G iải gần đúng phường t r ì n h VI PHẢN (BÀI TOÁN CAUCHY) 3.1 Mở đầu T rong to á n ứng dụng, ta thường gặp rấ t nh iều bài to a n tro n g dạng phương trìn h vi p h â n và cần phải tìm nghiệm của phương trìn h đó. Ta dã biết tro n g giáo trìn h phương trìn h vi phân, chỉ tìm được nghiệm giải Chưitng hàm, tích phân và phương trình vi p hàn 6. Đ a o 206 tích của lớp phương trìn h rấ t hẹp; nói chung không có khả nàng. Vì vậy buộc phải tìm nghiệm của chúng trong dang gần đúng. T rong p h ầ n này ta giỏi thiêu môt số th u â t toán tìm nghiêm gần đ ú n g thườ ng đươc d ù n g trong kỹ th u â t đối với bài toán Cauchy, còn đối với d ạng phương trìn h đạo hàm riêng sẽ đươc nghiên cứu trong giáo trìn h khác. 3.2 Bài toán Cauchy Bài toán: Tìm liàm y = y(x) là nghiêm của phuơng trìn h y(n) = F(x, y, ý. • • • , i/" -» ), Xo < I < X (6.33) th ỏ a m ã n điều kiện y (ar0) = yo, ý (xo) = Vũ ■■•; y {n~l) (xo) = Vn-1 - (6.34) tro n g đó IJ0, y i , . . . , y n- 1 € K và ,T0 € R là các số đã cho. Bài to á n (6.33), (6.34) goi là bài toán Cauchy cấp n (cấp cao n h ấ t của đao hàm có m ặ t tro n g phương trình). Điều kiện (6.34) đươc goi là điều kiên ban đ ầu (hay sơ kiên); đồng thời già th iết hàm vế phải F thỏa m ãn các điều kiện cần th iế t để bài toán Cauchy tồn tai duy n h ấ t nghiêm. 3.3 P hư ơng pháp giải bài toán Cauchy 3.3.1. C ô n g th ứ c E u ler Xét bài to án Cauchy cấp một: Tìm hàm y — y(x) là nghiệm của bài toán sau ý = f (x,y), Xo < X < X. V (-To) = ỉ/0 Thuật toán: G iả sử biết nghiệm nghiệm y tạ i điểm X (6.35) y + h e [xo, x \ là để có được nghiệm tạ i điểm X + h. y =* y(x) tạ i điểm X € [.r0. .Yj, ta tìm - y{x + h) với /í > 0 đươc goi là bước ,‘ỉ. Giải gần đúng phương trình ui phân (bài toán Cauchy) 207 Tích p h ân hai vế của phương trình (6.35) trê n đoạn ị.T, X + /?.] ta có Ịj(r + /í) = y(x) + J / (í, y(t))dt = y{x) + Ị y\t)dt. X X Đổi biến / — X + z ta th u được h y(x + /ỉ) = y(x) + Ị y ( x + z)dz. (6.36) 0 Áp d u n g k h ai triể n Taylor ta có ?/(.T + z) = ý { x ) + + 0 (z2), từ đó suy ra h h Ị ý ( x + z)dx = J [ ý ( x ) + ý'{x)z + ũ { z 2)]dz = ý ( x ) . h + 0 (h2) = h f ( x , y) + 0 (h2). T hay vào (6.36) ta th u được y{x + /í) = y(x) + /ỉ/(.T, y) + 0 ( h 2). (6.37) T rong (6.37) bô qua o (/í2) ta được xấp xi, sau đó th a y d ấu xấp xi bởi dấu " và củng goi ụ là y(x) ta th u đươc y(x + h) = y(x) + hf (x, y{x)). (6.38) Công thức (6.38) được gọi lcà công thức Euler. Q uá trìn h tìm nghiêm theo công thứ c này dươc tiế n h à n h như sau: C hia đoan [.To, X] th à n h N đoan bỏi các điểm chia T'o, X \ = To + fl, T'2 = + Xi Xị+I — X ị + ìl, . . . Áp d ung công thức (6.38) ta đươc y (.To) = y0 (đã cho theo điều kiện đ ầu của bài toán) y (x'i) = 2/1 = 2/0 + /ỉ/ (zo, 2/0) y (xi) = y{*k+i) 2/2 = 2/1 + h f (t i , 2/ 1 ) Vk+I = V k + h f (xk, yk) (6.39) Chương 6. Đạo hàm, tích phàn và phương trình vi phân 208 Sai số m ột bước từ điểm X đến X + h là o (lì2). Ví dụ 6.4. T ính nghiệm của bài toán Cauchy y , = y 2x -------- y y{ 0) =1 bằng phương pháp E u le r lấy với h = 0.2 trê n đoan [0, 1 Ị. Giải: Theo công th ứ c (6.39) ta có 2/0 = Vì = 1. y (0.2) = 1/0 + h {yo - — ) = 1.2000. 2/0 2/2 = y (0.4) = yi + h(yi - — ) = 1.3733, 2/3 = 2/ (0.6) = 1.5294, ịị/4 y 1 = y (0 .8 ) = 1.6786,’ ys = 2/(1) = 1.8237. N ghiệm đúng ỹ = y/2x + 1 và ta có các giá tri tương ứng Vo = 1. Vi = 1 1832, ỹ 2 = 1.3416, v3 = 1 4832, Va = 1.6124, ỹ5 = 1-7320.

So sán h giữa nghiệm g ần đúng