Bài giảng Phương pháp số trong tính toán cơ khí - Bài 2: Phương trình và hệ phương trình đại số phi tuyến cung cấp cho học viên các kiến thức về khái niệm phương trình đại số tổng quát; một số bài toán kỹ thuật đưa về phương trình phi tuyến; các cách tiếp cận để giải phương trình đại số phi tuyến; các phương pháp “bủa vây”;... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
Trường Đại học Cơng nghiệp thành phố Hồ Chí Minh Khoa Cơng nghệ Cơ khí Bộ mơn Cơ sở - Thiết kế Bài 2: Phương trình hệ phương trình đại số phi tuyến Thời lượng: tiết Khái niệm phương trình đại số tổng quát f ( x ) = (1) Giá trị x mà làm cho thoả mãn (1) gọi nghiệm phương trình (1) ax + b = −b ∗ ⇔x = (2) a a ≠ Có cơng thức giải tích tìm xác nghiệm ax + bx + c = b b − ± − 4ac ∗ ⇔ x1,2 = (3) a ≠ 2a b − 4ac ≥ Có cơng thức giải tích tìm xác nghiệm Khái niệm phương trình đại số tổng quát (1 − x ) − e x = sin ( x ) ln ( x ) + x x − = Vơ nghiệm Khơng có cơng thức giải tích tìm xác nghiệm Một nghiệm Một nghiệm Phương pháp số Nhiều nghiệm Một số toán kỹ thuật đưa phương trình phi tuyến Cho r, As Tìm góc θ ? Cho m, v, t, g Tìm hệ số cản c ? As As = r (θ − sin θ ) ⇔ f (θ ) = θ − sin θ − = r c c − t − t gm gm m v= − e ⇔ f ( c ) = − e m − v = c c Các cách tiếp cận để giải phương trình đại số phi tuyến - PP vịng lặp điểm cố định đơn giản - PP NewtonRaphson - PP dây cung - PP đồ thị - PP chia đơi đoạn - PP vị trí sai Các phương pháp “bủa vây” MATLAB c − t gm f ( c ) = − e m − v = c t = 10 s; v = 40 m s; m = 68.1 kg; g = 9.81 m s 667.38 −0.146843c ⇒ f (c) = − e − 40 = ( ) c c=1:0.2:20 f=667.38*(1-exp(-0.146843*c))./c - 40 plot(c,f,'-k','linewidth',2),grid on 60 50 40 30 20 10 -10 c=14:0.1:16 10 12 14 16 18 20 Các phương pháp “bủa vây” c=14:0.1:16 f=667.38*(1-exp(-0.146843*c))./c - 40 plot(c,f,'-k','linewidth',2),grid on c=14.7:0.01:14.8 f=667.38*(1-exp(-0.146843*c))./c - 40 plot(c,f,'-k','linewidth',2),grid on 0.16 1.5 0.14 0.12 0.1 0.5 0.08 0.06 -0.5 0.04 -1 0.02 -1.5 -2 -2.5 14 -0.02 14.2 14.4 14.6 14.8 c=14.7:0.01:14.8 15 15.2 15.4 15.6 15.8 16 -0.04 14.7 14.72 14.74 14.76 14.78 c = 14.78 14.8 14.82 Các phương pháp “bủa vây” Ví dụ cần giải phương trình f(x)=0 đoạn [0; 1] f ( x) Vùng tìm kiếm Vùng tìm kiếm Vùng tìm kiếm Vùng tìm kiếm Vùng tìm kiếm Các phương pháp “bủa vây” f ( x) Miền bị loại bỏ α a x b f (α ) ⋅ f ( b ) < f ( x) Miền bị loại bỏ a α f ( a ) ⋅ f (α ) < b x Bước 1: Cho a, b, ε Bước 2: Tính ; ; ∙ Nếu b = α cịn khơng a = α Nếu |a – b| > ε đến bước cịn khơng đến bước Bước 3: Hội tụ In kết nghiệm x* = α; f(x*) = f(α) Các phương pháp “bủa vây” 10 Tìm điểm nghiệm phương trình f(x)=0 khoảng [a, b] pp chia đơi đoạn với vịng lặp f ( x ) = e0.2 x − e −0.8 x − 2; SVL [ a, b] = [3, 4] [ a, b ] f (a) f (b) [3, 4] −0.268599153 −0.047057356 −0.047057356 −0.047057356 −0.018761723 −0.004549366 0.184778724 0.184778724 0.067212949 0.009707880 0.009707880 0.009707880 [3.5, 4] [3.5,3.75] [3.5,3.625] [3.5625,3.625] [3.59375,3.625] a+b α= f (α ) b−a 3.5 −0.047057356 3.75 0.067212949 0.5 3.625 0.009707880 0.25 3.5625 −0.018761723 0.125 3.59375 −0.004549366 0.0625 3.609375 0.002573559 0.03125 f1 ( x, y, z ) = −4 x + y + z + xy + xz + z − = Hệ phương trình đại số phi tuyến Điểm khởi đầu ( 0,3, ) f ( x, y, z ) = −6 x − y + z + xy − yz − z + 39 = -1 -5 -2 -3 -4 -5 -1 -2 -3 -4 f ( x, y, z ) = −3 y + xy − yz + y − z + 20 = -5 -1 -2 -3 -5 -4 -5 -1 -2 -3 -4 -5 72 1) Phương pháp vòng lặp điểm cố định đơn giản: Biến đổi hệ PT dạng: 1 2 y + z + 33 y + 129 z + 18 yz + 128 z − 64 8 8 f1 ( x, y, z ) = ⇔ x = g1 ( x, y, z ) = y + z − 33 y + 129 z + 18 yz + 128 z − 64 8 1 3 2 − + − 15 + 20 − 12 xz − z + 156 x z x z 4 f ( x, y , z ) = ⇔ y = g ( x, y , z ) = x − z − −15 x + 20 z − 12 xz − z + 156 4 −3 y + xy + y + 20 f ( x, y , z ) = ⇔ z = g ( x, y , z ) = y +1 Kiểm tra tính hội tụ phương án hàm gi(x,y,z) 73 2) Bước 2: Tính đạo hàm riêng: x = g x , y , z = y + z + ( ) a) Phương án 1: 8 74 33 y + 129 z + 18 yz + 128 z − 64 1 −15 x + 20 z − 12 xz − z + 156 y = g ( x, y , z ) = x − z + 4 −3 y + xy + y + 20 z = g ( x, y , z ) = ⋅ y +1 ∂g1 ∂x ∂g ∂x ∂g3 ∂x ∂g1 ∂y ∂g ∂y ∂g3 ∂y ∂g1 ∂z ∂g = ∂z ∂g3 ∂z 0 ∂g1 ∂g1 ∂g1 + + = 2.996016517 >1 ∂y ∂z x = 0,3,2 ∂x ) ( ∂g ∂g ∂g + + = 0.6804730160 1 ∂ x ∂ y ∂ z x0 =( 0,3,2) Không đạt tiêu chuẩn hội tụ 2) Bước 2: Tính đạo hàm riêng: x = g x , y , z = y + z + ( ) a) Phương án 2: 8 75 33 y + 129 z + 18 yz + 128 z − 64 1 −15 x + 20 z − 12 xz − z + 156 y = g ( x, y , z ) = x − z − 4 −3 y + xy + y + 20 z = g ( x, y , z ) = ⋅ y +1 ∂g1 ∂x ∂g ∂x ∂g3 ∂x ∂g1 ∂y ∂g ∂y ∂g3 ∂y ∂g1 ∂z ∂g = ∂z ∂g3 ∂z 0 ∂g1 ∂g1 ∂g1 + + = 2.996016517 >1 ∂y ∂z x = 0,3,2 ∂x ) ( ∂g ∂g ∂g + + = 2.077832724 >1 ∂y ∂z x = 0,3,2 ∂x ) ( ∂g3 ∂g3 ∂g3 + + = 1.044378698 >1 ∂ ∂ ∂ x y z x0 =( 0,3,2) Không đạt tiêu chuẩn hội tụ 2) Bước 2: Tính đạo hàm riêng: = , , = + − x g x y z y z ( ) a) Phương án 3: 8 76 33 y + 129 z + 18 yz + 128 z − 64 1 = , , = − + −15 x + 20 z − 12 xz − z + 156 y g x y z x z ( ) 4 −3 y + xy + y + 20 z = g ( x, y , z ) = ⋅ y +1 ∂g1 ∂x ∂g ∂x ∂g3 ∂x ∂g1 ∂y ∂g ∂y ∂g3 ∂y ∂g1 ∂z ∂g = ∂z ∂g3 ∂z 0 ∂g1 ∂g1 ∂g1 + + = 0.4960165166 1 ∂ ∂ ∂ x y z x0 =( 0,3,2) Gần đạt đủ tiêu chuẩn Có thể kiểm tra 2) Bước 2: Tính đạo hàm riêng: x = g x , y , z = y + z − ( ) a) Phương án 4: 8 77 33 y + 129 z + 18 yz + 128 z − 64 1 −15 x + 20 z − 12 xz − z + 156 y = g ( x, y , z ) = x − z − 4 −3 y + xy + y + 20 z = g x , y , z = ⋅ ( ) y +1 ∂g1 ∂x ∂g ∂x ∂g3 ∂x ∂g1 ∂y ∂g ∂y ∂g3 ∂y ∂g1 ∂z ∂g = ∂z ∂g3 ∂z 0 ∂g1 ∂g1 ∂g1 + + = 0.4960165166 1 ∂y ∂z x = 0,3,2 ∂x ) ( ∂g3 ∂g3 ∂g3 + + = 1.044378698 >1 ∂ ∂ ∂ x y z x0 =( 0,3,2) Không đạt tiêu chuẩn hội tụ 78 3) Bước 3: Các vòng lặp: Excel ( −1, 2,1) 33 yi2 + 129 zi2 + 18 yi zi + 128 zi − 64 xi +1 = g1 ( xi , yi , zi ) = yi + zi − 8 1 −15 xi2 + 20 zi2 − 12 xi zi − zi + 156 ; x = ( x0 , y0 , z0 ) = ( 0,3, ) yi +1 = g ( xi , yi , zi ) = xi − zi + 4 −3 yi2 + xi yi + yi + 20 zi +1 = g3 ( xi , yi , zi ) = ⋅ yi + ||Δxi || ||f (xi )|| i xi yi zi f1 f2 f3 42 -7 -32 - - -1,545206829 2,774917218 0,769230769 -5,206738148 -38,79414703 -13,89240106 1,988245283 59,72628443 -1,298105207 1,448195994 0,195148899 -9,030149753 8,047714166 16,57109736 1,466566879 56,00717073 -0,391865867 1,820048762 1,414906323 13,63275342 16,84118622 0,158445765 1,564401609 29,33099833 -1,061233869 2,487286426 1,424474078 5,106596228 -15,82150321 -17,92612231 0,945172557 38,29619093 -1,268592678 -0,879343461 -0,89078472 -1,106623681 -1,025103612 -0,92837376 -1,013650383 -1,03467694 -0,97960116 -0,988093759 -1,015817784 -1,000900352 -0,990725607 -1,002954053 -1,004116013 1,957127712 1,766397081 2,114901296 2,095637153 1,901218639 1,98367339 2,062664877 1,986037655 1,970273724 2,018923897 2,009788613 1,985755875 1,999787198 2,008111625 1,997111252 0,605865814 0,917023918 1,259921662 0,955642535 0,874459756 1,073303644 1,045465003 0,94247013 0,996275303 1,034005288 0,989599606 0,984828324 1,01151186 1,004299248 0,991940166 -6,228635411 0,195646945 4,628413958 -1,567087117 -1,701020171 1,6553474 0,413490594 -1,020299818 0,159724817 0,536199764 -0,28317847 -0,191445086 0,233295667 0,02216448 -0,138270384 -4,754746507 8,527671596 -0,524496113 -5,142318258 2,076872652 2,057634247 -2,027446901 -0,406759684 1,256123081 -0,239156559 -0,62570394 0,36322728 0,216618201 -0,28662365 -0,015514001 5,494125396 5,531344077 -5,756720814 -1,523402742 3,422053424 -0,497459457 -1,905540999 0,962483141 0,67016716 -0,806024905 -0,08625672 0,477262989 -0,129814746 -0,223265491 0,155316393 0,997088475 0,533584569 0,48904494 0,373555018 0,225908663 0,235996487 0,119527182 0,130083785 0,078592873 0,062149138 0,053140752 0,028685665 0,031818463 0,016457605 0,016586297 28,27487547 14,75450506 15,13312832 8,810760286 8,75169653 5,160247534 4,495863648 3,592762791 2,059875206 2,134651634 1,15709369 1,141908243 0,755276311 0,553680215 0,492507899 10 11 12 13 14 15 16 17 18 19 20 Các sai số có giảm dần Có xu hướng hội tụ 79 3) Bước 3: Các vòng lặp: Excel 33 yi2 + 129 zi2 + 18 yi zi + 128 zi − 64 xi +1 = g1 ( xi , yi , zi ) = yi + zi − 8 1 −15 xi2+1 + 20 zi2 − 12 xi +1 zi − zi + 156 ; x = ( x0 , y0 , z0 ) = ( 0,3, ) yi +1 = g ( xi +1 , yi , zi ) = xi +1 − zi + 4 −3 yi2+1 + xi +1 yi +1 + yi +1 + 20 zi +1 = g ( xi +1 , yi +1 , zi ) = ⋅ yi +1 + ||Δxi || ||f (xi )|| i xi yi zi f1 f2 f3 42 -7 -32 - - -1,545206829 1,626510986 1,109026373 -13,63392315 -4,39255482 2,251215277 64,23341946 -0,908816632 2,079257883 0,975886164 2,135208389 0,130128762 0,792274291 16,4048827 -1,023661283 1,979015519 1,007073862 -0,563304905 -0,030695618 0,15559723 2,703301404 -0,994190616 2,005087648 0,99834823 0,137601133 0,008713959 0,040304004 0,702013098 -1,00144318 -0,999642308 -1,000088702 -0,999978006 -1,000005454 1,998731155 2,000314152 1,999922074 2,000019321 1,999995209 1,000416331 0,999897204 1,000025516 0,999993675 1,000001569 -0,034228853 0,008480729 -0,002103264 0,000521497 -0,000129311 -0,002067824 0,000519129 -0,000128313 3,18418E-05 -7,89384E-06 0 0 0,00986315 0,002453266 0,000607829 0,000150746 3,73768E-05 0,172167915 0,042787857 0,010603777 0,002629642 0,00065202 10 ( −1, 2,1) Các sai số có giảm dần Có xu hướng hội tụ Phương pháp vịng lặp Gauss-Seidel có tốc độ hội tụ nhanh phương pháp vòng lặp điểm cố định đơn giản 80 1) Bước 1: Tính đạo hàm riêng hàm số ma trận Jacobian: xi +1 = xi + hi yi +1 = yi + ki z = z + l i i i +1 ∂f1 ( x, y, z ) ′ f = = −8 x + y + z 1x ∂x ∂f ( x, y, z ) = −12 x + y J = f 2′x = ∂x 3×3 ∂f ( x, y, z ) f3′x = = 4y x ∂ det J det J det J 2x 3x 2×12x 2×2 2×2 xi +1 xi f1 yi +1 = yi − det J1 y det J y det J y f 2×2 2×2 z z det J 2×2 3 × f3 i +1 i det J1z det J z det J z 2×2 2×2 2×2 ( ) hi = − ∑ k =1 3 f k det J ky f k det J kx f k det J kz ∑ ∑ 2×2 ; k = − k =1 2×2 2×2 ; l = − k =1 i i det J det J det J ( ) 3×3 ( ) 3×3 ( ) 3×3 f1′y = f 2′y = f3′y = ∂f1 ( x, y, z ) = x + 4y ∂y ∂f ( x, y, z ) = 6x − y − 4z ∂y ∂f3 ( x, y, z ) = 4x − y − 8z + ∂y ∂f1 ( x, y, z ) = 9x + 6z + ∂z ∂f ( x, y, z ) f 2′z = = −4 y + z − 1 ∂z ∂f3 ( x, y, z ) f3′z = = −8 y − ∂z f1′z = f 2′y J1 x = 2×2 f 2′z f3′y J2x = 2×2 f3′z f3′y f 2′z J1 y = ′ f3 z 2×2 f 2′x f1′y f3′z J2y = ′ f1z 2×2 f3′x f1′y J3x = 2×2 f1′z f 2′y f1′z J3 y = f 2′z 2×2 f1′x f3′z f 2′x J1 z = ′ f3 x 2×2 f 2′y f1′z f3′x J2z = ′ f1x 2×2 f3′y f 2′z f1′x J3z = f 2′x 2×2 f1′y f3′x f3′y f1′x f1′y f 2′x f 2′y Excel SVL xi -0,747760252 -0,992613723 -0,999984295 -1 yi 2,277981073 2,018938413 2,000045382 zi 1,118359621 0,998386975 0,999984296 f1 42 7,611108097 0,265382583 0,00053754 2,36532E-09 f2 -7 -1,637820498 -0,314305155 -0,000787305 -1,60432E-09 f3 -32 -4,496834097 -0,19622359 -0,000272404 2,37379E-09 f' 1x 21 18,32529968 18,94533097 18,9997784 19 f' 1y 12 8,364164038 7,083139928 7,000197231 7,000000001 f' 1z 20 7,980315457 5,056798339 5,000047116 f' 2x 18 22,64100946 24,02499516 24,00008383 24 f' 2y -32 -27,18384858 -26,10073754 -26,00020601 -26 f' 2z -1,165047319 -1,088657854 -1,000307161 -1,000000003 f' 3x 12 9,11192429 8,075753651 8,000181526 8,000000001 f' 3y -25 -16,60580442 -15,07118117 -15,00008384 -15 f' 3z -26 -20,22384858 -18,1515073 -18,00036305 -18 det (J 1x ) 907 530,4154896 457,3603683 453,0084563 453 det (J 1y ) 504 447,2725241 427,2981424 424,0075834 424 det (J 1z ) -66 -128,2750048 -151,301928 -151,9969018 -151,9999999 det (J 2x ) -188 36,63602934 52,35774224 51,00496568 51,00000004 det (J 2y ) -786 -443,3241163 -384,7237711 -382,0041938 -382 det (J 2z ) 669 380,5199719 342,7302085 341,0011175 340,9999999 det (J 3x ) 676 207,1910401 124,2750503 122,9999076 123 det (J 3y ) 297 202,0322391 142,114539 139,0071644 139 det (J 3z ) det (J ) hi -888 -687,525289 -664,6595137 -662,003473 -661,9999999 23775 12437,40856 10926,35275 10815,20533 10815 -0,747760252 -0,244853471 -0,007370572 -1,57046E-05 -1,18506E-10 ki -0,722018927 -0,25904266 -0,018893031 -4,53814E-05 -1,79908E-10 li -0,881640379 -0,119972647 0,001597321 1,57042E-05 2,29131E-10 ||Δxi || - 1,36299174 0,376098069 0,02034265 5,05245E-05 ||f(xi)|| - 44,35958735 8,614326841 0,454789189 0,000991463 81 Sau vịng lặp hội tụ Điểm khởi đầu 82 ( 0,3, ) f1 = @(x,y,z) -4*x.^2 + 2*y.^2 + 3*z.^2 + x.*y + 9*x.*z + 8*z - 4; f2 = @(x,y,z) -6*x.^2 - 4*y.^2 + 4*z.^2 + 6*x.*y 4*y.*z - z + 39; f3 = @(x,y,z) - 3*y.^2 + 4*x.*y - 8*y.*z +9*y - 2*z + 20; interval = [-5 -5 -5 5]; fimplicit3(f1,interval,'FaceColor','m','EdgeColor',' k','FaceAlpha',.9), hold on fimplicit3(f2,interval,'FaceColor','g','EdgeColor',' k','FaceAlpha',.9), hold on fimplicit3(f3,interval,'FaceColor','y','EdgeColor',' k','FaceAlpha',.9), hold on scatter3(0,3,2,200,'filled','MarkerEdgeColor','k','M arkerFaceColor',[0 75 75]), hold on scatter3(1,2,1,400,'filled','MarkerEdgeColor','k','MarkerFace Color','b') Nghiệm ( −1, 2,1) Hàm MATLAB giải phương trình đại số phi tuyến 0.2 x −0.8 x f x = e − e −2 Giải phương trình sau: ( ) a) Với điểm khởi đầu x0 b) Với khoảng tìm kiếm: 83 a) Với điểm khởi đầu x0 = 15 b) Trong khoảng tìm kiếm [3;4] f = @(x) exp(0.2*x) - exp(-0.8*x) - x0 = 15; sol = fzero(f,x0) f = @(x) exp(0.2*x) - exp(-0.8*x) - x0 = [3 4]; sol = fzero(f,x0) sol = 3.603732449186166 Hàm MATLAB giải phương trình đa thức bậc cao Giải phương trình sau: f ( x ) = p1 x n + p2 x n −1 + … + pn x + pn +1 = p = [p1 p2 p3 p_n p_n+1]; r = roots(p) Giải phương trình sau: f ( x ) = −3 x + x − x + x − = f(x) p = [-3 -2 -1]; r = roots(p) 84 Hàm MATLAB giải Hệ phương trình đại số phi tuyến Giải hệ phương trình sau: f1 ( x, y ) = x − sin 0.5 ( x − y ) = f ( x, y ) = y − cos 0.5 ( x + y ) = 1) Xây dựng file hàm số: NonLinSys.m function f = NonLinSys(x) f(1) = 2*x(1) - sin(0.5*(x(1) - x(2))); f(2) = 2*x(2) - cos(0.5*(x(1) + x(2))); end x0 = ( x0 , y0 ) = ( 2, ) 85 Hàm MATLAB giải Hệ phương trình đại số phi tuyến 2) Giải: fun = @NonLinSys; x0 = [2,2]; x = fsolve(fun,x0) 86 ... tiếp cận để giải phương trình đại số phi tuyến - PP vòng lặp điểm cố định đơn giản - PP NewtonRaphson - PP dây cung - PP đồ thị - PP chia đơi đoạn - PP vị trí sai Các phương pháp “bủa vây” MATLAB... − = 3 (15) Dùng phương pháp bủa vây tìm nghiệm khoảng [0;1], phương pháp mở với điểm khởi đầu x0=1 Hệ phương trình đại số phi tuyến Tìm nghiệm (x1,x2,…,xn) hệ phương trình sau: f1 ( x1... phân ly Các phương pháp “bủa vây” Có nhiều tình hàm số mà tốc độ hội tụ nghiệm theo phương pháp vị trí sai chậm 20 Các phương pháp mở 21 Biến đổi phương trình f(x)=0 thành phương trình có dạng: