computational physics in thai
DESCRIPTION
Lecture noteTRANSCRIPT
![Page 1: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/1.jpg)
ฟสกสเชงคานวณ Computational Physics PH 615
ภาควชาฟสกส คณะวทยาศาสตร มหาวทยาลยรามคาแหง
รองศาสตราจารย ดร. นพนธ ตงประเสรฐ
![Page 2: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/2.jpg)
สารบญ
หนา คานา สารบญ บทท 1 การวเคราะหเชงตวเลข 1 1.1 การตกอยางอสระของวตถ 1 1.2 การวเคราะหเชงตวเลข 5 1.3 ภาษาคอมพวเตอร 10 บทท 2 รากของสมการ 15 2.1 วธกราฟ 15 2.2 วธแบงสวน 17 2.3 วธฟอลสโพซชน 25 บทท 3 การแกสมการ 37 3.1 วธทาซาจดคงท 37 3.2 วธนวตน – ราฟสน 41 3.3 วธซแคน 52 3.4 วธปรบปรงซแคน 59 3.5 รากซา 64 3.6 ระบบหลายสมการไมเปนเชงเสน 72 บทท 4 ระบบสมการ 83 4.1 วธกราฟ 83 4.2 วธใชหลกของเครเมอร 86 4.3 วธกาจดตวแปร 89 4.4 วธ Naive Gauss Elimination 90 4.5 วธเกาส – จอรแดน 115
ก
![Page 3: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/3.jpg)
หนา บทท 5 การสรางเมทรกซ LU และอนเวรสของเมทรกซ 119 5.1 LU ดคอมโพซชน 119 5.2 อนเวรสของเมทรกซ 129 5.3 การคณเมทรกซ 139 บทท 6 เมทรกซพเศษและการแกปญหาทางฟสกส 145 6.1 เมทรกซไทรไดอะโกนอล 145 6.2 โชลเลสกดคอมโพซชน 147 6.3 เกาส – ซเดล 149 6.4 การประยกตทางดานฟสกส 156 บทท 7 การหาคามากสด 165 7.1 การหาโดยวธโกลเดน – เซกชน 165 7.2 การประมาณคาโดยอาศย Quadratic function 170 7.3 วธนวตน 175 บทท 8 การปรบเสน และการประมาณคา 183 8.1 การถดถอยเชงเสน 184 8.2 การถดถอยไมเปนเชงเสน 195 8.3 การถดถอยโพลโนเมยน 201 8.4 การถดถอยเชงเสนหลายตวแปร 214 8.5 การประมาณคา 224 8.6 อนกรมฟเรยร 227 บทท 9 การอนทเกรท 231 9.1 ทราเปซอยดอลรล 232 9.2 วธซมปสน 237 9.3 การอนทเกรทโดยแตละ segment มคาไมเทากน 248
ข
![Page 4: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/4.jpg)
หนา 9.4 การอนทเกรทโดยวธรอมเบรก 248 9.5 การอนทเกรทโดยวธเกาสควอดราเจอร 253 บทท 10 อนพนธและสมการดฟเฟอเรนเชยล 257 10.1 วธ finite difference 257 10.2 การหาอนพนธโดยวธรชารดสน 261 10.3 การแกสมการดฟเฟอเรนเชยลโดยวธออยเลอร 262 10.4 การแกสมการดฟเฟอเรนเชยลโดยวธรงกตตา 268 10.5 ปญหาคาทขอบเขตและคาไอเกน 276 10.6 เลขสม 277 บรรณานกรม 281
ค
![Page 5: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/5.jpg)
คานา หนงสอเลมนกลาวถงความรเบองตนเกยวกบการคานวณเชงตวเลขทสามารนาไปใชแกปญหาทางฟสกส เหมาะสาหรบนกศกษาทเรมตนศกษาขนตอนการคานวณเชงตวเลขเนอหาประกอบดวย การวเคราะหเชงตวเลข รากของสมการ การแกสมการ ระบบสมการ การสรางเมทรกซ LU และอนเวรสของเมทรกซ เมทรกซพเศษและการแกปญหาทางฟสกส การหาคามากสด การปรบเสนและการประมาณคา การอนทเกรท อนพนธและสมการดฟเฟอ เรนเชยล ในแตละบท จะมโปรแกรมคอมพวเตอรภาษาฟอรแทรนประกอบคาอธบาย ซงโปรแกรมเหลานจะชวยนกศกษาเมอนาไปใชกบการแกปญหาทนกศกษากาลงศกษาอยจรง ซงจะทาใหการแกปญหาเปนไปอยางรวดเรวและถกตอง โปรแกรมทงหมดนไดผานการตรวจสอบ เรยบรอยแลว นกศกษาสามารถพมพโปรแกรมแลวรนโปรแกรมไดเลย ผลลพธทแสดงตอทาย โปรแกรม เปนผลลพธทไดจากการ print screen โดยตรง โดยไมมการพมพใหม ดงนนเมอนกศกษารนโปรแกรม ผลลพธทไดจะเหมอนกบทนกศกษาเหนอยในหนงสอ ในการพมพครงแรกน ผเขยนคาดวาจะตองมขอผดพลาดอยบาง ถาทานผอานพบหรอ ตองการใหคาแนะนาใดๆ ผเขยนยนดทจะนอมรบไวเพอจะไดแกไขในการพมพครงตอไป ผเขยนขอขอบคณทกทานทมสวนชวยเหลอในการจดทาหนงสอเลมน นพนธ ตงประเสรฐ
![Page 6: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/6.jpg)
บทท 1 การวเคราะหเชงตวเลข
ปจจบนคอมพวเตอรเขามามบทบาททสาคญตอชวตประจาวนของมนษยมากมายหลายดาน การนาคอมพวเตอรมาชวยแกปญหาทางฟสกสทาใหการเรยนรฟสกสแขนงใหมกาวหนาอยางรวดเรวและมประสทธภาพ การศกษาระบบไมใชเชงเสนจะไมสามารถกระทาไดเลยถาไมมคอมพวเตอรทมความเรวสงและมประสทธภาพในการคานวณ ในบทนจะกลาวถงการนาคอมพวเตอรมาชวยแกปญหาทางฟสกสทนกศกษาคนเคยกอน คอ การตกของวตถอยางอสระภายใตแรงดงดดของโลก นกศกษาจะไดทบทวนการคานวณโดยอาศยทฤษฎทางฟสกสดงเดม จากนนนกศกษาจะไดเรยนรวธการวเคราะหเชงตวเลข(numerical analysis)ในการแกปญหาเดยวกน แลวนาผลลพธทไดมาเปรยบเทยบกน
1.1 การตกอยางอสระของวตถ (Freely falling objects) วตถทตกอยางอสระหมายถงวตถทเคลอนทอยางอสระภายใตแรงดงดดของโลกอยาง
เดยว โดยไมคานงถงการเคลอนทเรมตน วตถอาจจะถกปลอยตกจากมอ หรอขวางขนขางบนกได จากกฎขอทสองของนวตน จะได
dtdv =
mF (1.1)
เมอ v เปนความเรว (เมตร/วนาท) t เปนเวลา (วนาท) สมมตวา มแรงตานทานของอากาศในทศขนมคาเทากบ Fair และแรงเนองจากแรงโนมถวงเทากบ Fgrav ดงนน แรงลพธ (F) F = Fgrav - Fair
PH615 1
![Page 7: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/7.jpg)
สมมตวา แรงตานของอากาศแปรตามความเรวของวตถ
Fair = kv เมอ k = คาคงทเรยกวาสมประสทธของความตานทาน จากสมการ (1.1) จะได
dtdv =
mcvmg −
= g - vmc (1.2)
สมการ (1.2) เปนสมการดฟเฟอเรนเชยล ซงจากคณตศาสตร จะมผลเฉลยคอ
v(t) = c
gm (1 – e-(c/m)t ) (1.3)
PH615 2
![Page 8: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/8.jpg)
ตวอยางท 1.1 นกโดดรมมวล 68.1 กโลกรม กระโดดจากลกบอลลนทหยดนง จงคานวณหาความเรวของนกโดดรมหลงจากเวลาผานไป กาหนดใหสมประสทธของความตานทานเทากบ 12.5 กโลกรม/วนาท
วธทา จากสมการ (1.3) แทนคาทโจทยกาหนดให
v(t) = c
gm (1 – e-(c/m)t )
( ) ( )( )12.5 68.19.8 68.1( ) 1
12.5tv t e−= −
( )0.18355( ) 53.39 1 tv t e−= −
แทนคา t เปนวนาท จะได
t (วนาท) v (เมตร/วนาท) 0 2 4 6 8 10 12
Μ ∞
0.00 16.40 27.77 35.64 41.10 44.87 47.49
Μ 53.39
ความเรวเมอ t มคามากเรยกวา ความเรวเทอรมนล (terminal velocity) จะมคาคงท เพราะ ณ เวลานแรงเนองจากแรงดงดดของโลกจะเทากบแรงตานจากอากาศ ทาใหแรงลพธเทากบศนย นกกระโดดรมจงเคลอนทโดยไมมความเรง ซงกคอมความเรวคงท
PH615 3
![Page 9: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/9.jpg)
รปท 1.2 ความเรวของนกกระโดดรมทเวลาใด ๆ คานวณจากผลเฉลยจรง (exact solution)
กราฟระหวางความเรวของนกกระโดดรมทเวลาตาง ๆ เขยนกราฟโดยใชโปรแกรม sigma plot แสดงในรปท 1.2 จะสงเกตเหนวาเมอ t มคามาก ความเรวจะมคาคงทท 53.39 เมตร/วนาท สมการ (1.3) มชอเรยกวาผลเฉลยวเคราะห (analytical solution) หรอผลเฉลยแทจรง (exact solution) เพราะวาเปนผลเฉลยทไดจากการแกสมการดฟเฟอเรนเชยล อยางไรกตาม ยงมสมการทางคณตศาสตรอกมากมายซงไมสามารถแกสมการไดโดยตรงเชนน จะตองใชวธการวเคราะหเชงตวเลขมาชวยในการประมาณคาผลเฉลยของสมการ
PH615 4
![Page 10: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/10.jpg)
1.2 การวเคราะหเชงตวเลข (numerical analysis)
การเปลยนแปลงของความเรว สามารถประมาณคาไดดวยสมการ
dtdv ≅
tv
ΔΔ = ( ) ( )
ii
ii
tttvtv
−−
+
+
1
1 (1.4)
เมอ Δv และ Δt เปนการเปลยนแปลงของความเรวในชวงเวลา Δt V(ti) = ความเรวทเวลาเรมตน ti V(ti+1) = ความเรวทเวลาผานไป ti+1 สมการ (1.4) เปนการประมาณคาเดอรเวทฟดวยวธ finite divided difference แทนลงในสมการ (1.2) จะได
( ) ( )ii
ii
tttvtv
−−
+
+
1
1 = g - ( )itvmc
จดรปสมการใหม จะได
(1( ) ( ) ( )i i i icv t v t g v t t tm+
⎡ ⎤ )1 i+= + − −⎢ ⎥⎣ ⎦ (1.5)
วธการวเคราะหเชงตวเลขสามารถกระทาไดโดยกาหนดคาเรมตนของความเรวทเวลา
ti กอน (v(ti)) แลวแทนลงในสมการ (1.5) จะไดความเรวทเวลา ti+1(v(ti+1)) นาคา v(ti+1) ทไดแทนลงในสมการ (1.5) อกครงหนง จะไดความเรวทเวลา ti+2( v(ti+2)) ทาซาเชนนไปเรอย ๆ จะไดความเรวทเวลา t ตาง ๆ เขยนวธการเชนนในรกสมการไดวา
คาใหม = คาเกา + ความชน x ชวงขน
วธการเชนนเรยกวา วธออยเลอร (Euler’s method)
PH615 5
![Page 11: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/11.jpg)
ตวอยางท 1.2 จงคานวณความเรวของนกกระโดดรมทเวลา t ใด ๆ ตามตวอยาง 1.1 โดยใชวธการวเคราะหเชงตวเลข โดยใชสมการ (1.5) กาหนดใหชวงขนเทากบ 2 วนาท วธทา ทเวลาเรมตน (ti = 0) ความเรวของนกกระโดดรมเทากบ 0 (v(ti) = 0) แทนลงในสมการ (1.5) โดยใช ti+1 = 2 วนาท จะได
( )12.50 9.8 0 2 19.6 /68.1
v m⎡ ⎤= + − =⎢ ⎥⎣ ⎦s
แทนคา v = 19.60 เมตร/วนาท ลงในสมการ (1.5) อกครงหนง จะได
( )12.519.6 9.8 19.6 2 32 /68.1
v m⎡ ⎤= + − =⎢ ⎥⎣ ⎦s
ทาเชนนหลาย ๆ ครง จะไดความเรวของนกกระโดดรมทเวลา t ใด ๆ ดงแสดงในตารางตอไปน
t (วนาท) v (เมตร/วนาท) 0 2 4 6 8 10 12
Μ ∞
0.00 19.60 32.00 39.85 44.82 47.97 49.96
Μ 53.39
เมอนาคาในตารางมาเขยนกราฟ จะไดกราฟดงรปท 1.3 ซงเมอ t มคามาก
ความเรวจะมคาคงทท 53.39 เมตร/วนาท ตรงกบการคานวณจากผลเฉลยจรง
PH615 6
![Page 12: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/12.jpg)
รปท 1.3 ความเรวของนกกระโดดรมทเวลาใด ๆ คานวณจากการวเคราะหเชงตวเลข
(numerical solution) กราฟระหวางความเรวของนกกระโดดรม เมอเปรยบเทยบคาทไดจากการคานวณโดยตรงกบคาทไดจากการคานวณโดยวธ
วเคราะหเชงตวเลขจะพบวา ความเรวของวตถทเวลา t ใด ๆ มคาใกลเคยงกน ดงแสดงในกราฟรปท 1.4
รปท 1.4 เปรยบเทยบความเรวจากการวเคราะหเชงตวเลขและคาทแทจรง
PH615 7
![Page 13: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/13.jpg)
ความเรวของนกกระโดดรมคานวณโดยวธวเคราะหเชงตวเลข จะขนกบชวงเวลา Δt
เมอ Δt มคามาก ความเรวทคานวณไดจะแตกตางจากคาทแทจรงมากกวาเมอ Δt มคา
นอย รปท 1.5 แสดงคาความเรวเมอ Δt = 0.5, 1 และ 2 วนาท จะเหนไดวา เมอ t
นอยกวา 20 วนาท ความเรวจะมคาขนกบ Δt แตเมอ t มากกวา 20 วนาท ความเรว
จะมคาเทากนไมวา Δt จะมคาเทาไร และมคาเทากบความเรวเทอรมนล
รปท 1.5 ความเรวของนกกระโดดรม คานวณโดยวธวเคราะหเชงตวเลข โดยใช
Δt = 0.5, Δt = 1 และ Δt = 2 วนาท โปรแกรมภาษาฟอรแทรนตอไปน คานวณความเรวของนกกระโดดรม โดยวธการ
วเคราะหเชงตวเลข โดยใชชวงเวลา Δt = 0.5, Δt = 1 และ Δt = 2 วนาท
PH615 8
![Page 14: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/14.jpg)
PROGRAM VELANA REAL VR,VA,ER,T,DT VR= 0. DT= 4. ER= 0. DO 10 I=1,3 T = 0. VA= 0. DT = DT/2. WRITE(*,*)' DT =',DT,' SEC.' WRITE(6,100) 100 FORMAT(5X,'Times(sec.)',5X,'V real', + 12X,'VA',11X,'% ERROR') DO 20 N=1,6 T = T+DT VR= 53.39*(1.-EXP(-0.18355*T)) VA= VA+((9.81-12.5*VA/68.1)*DT) ER= (VA-VR)*100/VA WRITE(6,200) T,VR,VA,ER 200 FORMAT(F10.1,6F16.2) 20 CONTINUE 10 CONTINUE STOP END
เอาทพทจากโปรแกรม VELANA คอ
PH615 9
![Page 15: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/15.jpg)
เมอเปรยบเทยบกบความเรวทแทจรง จะเหนไดวาความเรวจากวธการวเคราะหเชงตวเลข
เมอใช Δt = 0.5 วนาท มคาใกลกบความเรวทแทจรงมากทสด
รปท 1.6 เปรยบเทยบความเรวของนกกระโดดรม คานวณโดยวธวเคราะหเชงตวเลขโดยใช
Δt ตาง ๆ กนกบคาทแทจรง
1.3 ภาษาคอมพวเตอร คอมพวเตอรจะทางานตามคาสงทไดรบ การเขยนคาสงหรอเขยนโปรแกรมจะตองเขยนดวยภาษาคอมพวเตอร ซงมกฎเกณฑและวธการเขยนทแนนอน ภาษาคอมพวเตอรมววฒนาการมาโดยลาดบ โดยแบงออกเปน ภาษาเครอง (Machine language) ภาษาแอสเซมบล (Assembly language) ซงเปนภาษาชนตา (Low level language) และภาษาชนสง (High level language) เชน ภาษาเบสก (Basic), พาสคาล (Pascal), โคบอล (Cobol), ฟอรแทรน (Fortran) และภาษาซ (C) เปนตน สาหรบตวอยางในตาราเลมน จะเขยนดวยภาษาฟอรแทรน ซงเปนภาษาทถกออกแบบมาสาหรบงานคานวณทางดาน
PH615 10
![Page 16: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/16.jpg)
ปจจบนมโปรแกรมประยกตทใชในการคานวณทางดานวทยาศาสตรหลายโปรแกรมดวยกน ซงนกศกษาสามารถใชงานไดงายกวาการเขยนดปรแกรมดวยภาษาฟอรแทรน เชน MATLAB, Mathematica, Mathcad และ Maple ซงเปนโปรแกรมประยกต มประสทธภาพในการคานวณสง และยงมความสามารถในการเขยนกราฟ ซงทาใหนกศกษาเขาใจระบบททาการศกษาไดดยงขน นอกจากนนนกศกษาอาจใชโปรแกรม Excel ชวยในการเกบและวเคราะหขอมล หรอใชโปรแกรม Sigma Plot เพอใชในการเขยนกราฟ ซงทงสองโปรแกรมยงมโมดลยอยชวยในการวเคราะหทางสถตไดดวย อยางไรกตามการศกษาการแกปญหาทางฟสกส โดยเรมตนจากการเขยนโปรแกรมดวยภาษาฟอรแทรนจะทาใหนกศกษาเขาใจวธการศกษาการแกปญหาไดดและถกตองยงขน สาหรบคอมไพเลอรทใชกบโปรแกรมภาษาฟอรแทรนตามตวอยางในหนงสอเลนน ชอ FORCE 2.0 เปนทงคอมไพเลอรและอดเตอรบนวนโดว เปนโปรแกรมฟร นกศกษาสามารถดาวนโหลดไดจากอนเตอรเนท www.forceproject.hpq.com.hr โดยไมตองเสยคาใชจายใด ๆ ทงสน
PH615 11
![Page 17: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/17.jpg)
แบบฝกหดบทท 1
1. จงพมพและ execute โปรแกรมภาษาฟอรแทรน COUNT โดยสงเอาทพทเปน hard copy
* A program to count the number of students who pass a quiz, * that is, score 60 or above. The total number of quiz scores * is less than 100. The end of the list is marked by entering * a negative value for the Latest score. PROGRAM COUNT NTOT = 0. NPASS= 0. 1 DO 3 I=1,100 PRINT *,'Enter next quiz score' 2 READ *,SCORE NTOT = NTOT+1 IF(SCORE.GT.100.) THEN PRINT *,'Input Error' PRINT *,'You entered a score greater than 100' PRINT *,'Re-enter the correct value' NTOT = NTOT-1 GO TO 2 ELSEIF(SCORE.LT.0.) THEN NPASS = NPASS+1 ELSEIF(SCORE.LT.0.) THEN GO TO 99 ENDIF 3 CONTINUE 99 PRINT *,'The number of students who passed was ',NPASS PRINT *,'out of ',NTOT STOP END
2. จงพมพและ execute โปรแกรมภาษาฟอรแทรน GASTBL โดยสงเอาทพทเปน
hard copy
PROGRAM GASTBL * INTEGER TC REAL P,V,T,R,N N = 1.0 R = 8.3144 * * Print overall headings outside of all Loops * PRINT *,'Pressure of a container of ',N,' moles of ideal gas.' * * Outer Loop is the volume of the container, from 0.1 to 0.5 m^3 * DO 2 V=0.1,0.5,0.1 * * For each value of the outer Loop parameter, print a heading
PH615 12
![Page 18: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/18.jpg)
* for this table. * PRINT *,'Pressure as a function of Temperature for V = ',V PRINT *,' P(n/m^2) T(K) ' PRINT *,' ---------- ----------' * * The inner Loop steps through the range of Temperatures and * prints one Line for each value of T from 0 to 100 degrees C * in steps of 10 degrees. * DO 1 TC = 0, 100, 10 T = TC+273. P = N*R*T/V PRINT *,P,T 1 CONTINUE 2 CONTINUE STOP END
3. สารกมมนตรงสสลายตวตามสมการ
dtdC = -kC
เมอ C = ความเขมของสาร (Bq/L) คาคงท (day-1) K =
จงใชวธการเชงตวเลขแกสมการน เมอ t = 0 ถง 1 วน และ k = 0.1 d-1 ใหใช
Δt = 0.1 และความเขมขนของสารท t = 0 เทากบ 10 Bq/L
PH615 13
![Page 19: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/19.jpg)
บทท 2 รากของสมการ
สมการ ax2 + bx + c = 0 จะมรากของสมการคอ x = ซงสามารถ
ทจะหาคาไดงาย ๆ แตยงมสมการอนอกมากมายซงไมสามารถหารากไดในลกษณะเชนน a
acbb2
42 −±−
กอนทจะมการประดษฐคอมพวเตอรขน มวธการหลายวธในการหารากของสมการ บางกรณสามารถคานวณรากไดโดยตรง เชน ตวอยางขางบน แตบางกรณไมสามารถหารากได เชน ฟงกชน f(x) = e-x – x ซงจะตองหารากโดยการประมาณคา วธการหนงทใชกนคอ วธกราฟ โดยการเขยนกราฟฟงกชน f(x) กบคา x จดทกราฟตดแกน x จะเปนคารากของสมการ ทจดน f(x) = 0 ซงเราจะไดศกษากนอยางละเอยดตอไป
2.1 วธกราฟ (Graphical method) วธการอยางงายในการหารากของสมการ f(x) = 0 กคอวธกราฟ โดยการเขยนกราฟคาของฟงกชนทางแกน y และ ตวแปร x ทางแกน x จดทกราฟตดแกน x จะเปนคารากของสมการ การหาคารากของสมการโดยวธกราฟเชนน จะไดคารากโดยประมาณเทานน แตกเปนวธการทมประโยชนมากในการตรวจสอบวารากทหาดวยวธการอน มความถกตองใกลเคยงกบคาทแทจรงหรอไม ตวอยางท 2.1 จงอาศยวธกราฟหาคาสมประสทธ c เมอนกกระโดดรมมวล m=68.1 กโลกรม กระโดดลงมาจากลกบอลลนทลอยอยนง โดยมความเรว 40 เมตร/วนาท เมอเวลาผานไป 10 วนาท
วธทา จากกฎขอทสองของนวตน ความเรวของนกกระโดดรมเมอเวลาผานไป t วนาท คอ
v(t) = c
gm (1 – e-(c/m)t )
กาหนดให f(c) = (1 – e-(c/m)t ) - v c
gm
PH 615 15
![Page 20: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/20.jpg)
จากโจทย t = 10, g = 9.8, v = 40 และ m = 68.1
( )( )68.1 109.8(68.1)( ) 1 40cf c ec
−= − −
( )0.146843667.38( ) 1 40cf c ec
−= − −
แทนคา c ตาง ๆ กน เพอทจะนาไปเขยนกราฟ โดยใชคา c ททาให f(c) เปนทงคาบวกและคาลบ
c ( )f c 4 8 12 16 20
34.115 17.653 6.067 -2.269 -8.401
นาคาในตารางไปเขยนกราฟ จะไดกราฟดงรป 2.1
รปท 2.1 กราฟระหวาง f(c) และ c เพอหาคารากของสมการ
PH 615 16
![Page 21: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/21.jpg)
จากกราฟจะเหนไดวา c ตดแกน x ทจดระหวาง x = 12 และ x = 16 จากการประมาณดวยสายตาจะไดคา c ประมาณ 15 เพอการตรวจสอบ แทนคา c = 15 ลงในสมการ จะได
= ( )15f ( )( )15146843.0115
38.667 −− e - 40
= - 0.4248319 ซงมคาใกลกบศนย แตไมตรงทเดยว เนองจากวาเปนการประมาณดวยสายตา
2.2 วธแบงสวน (Bisection method)
รปท 2.2 วธแบงสวน
วธแบงสวนเปนวธการงายทสดในการหารากของสมการ สามารถกระทาไดโดยใชเครองคดเลขหรออาจเขยนโปรแกรมคอมพวเตอรมาชวยในการคานวณ ขนตอนในการคานวณมดงตอไปน
PH 615 17
![Page 22: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/22.jpg)
ขนท 1 เลอกคาตา และคาสง โดยมคารากอยระหวางคาทงสอง นนคอ lx ux
( ) ( ) 0l uf x f x <
ขนท 2 ประมาณคาราก โดย rx
2l u
rx xx +
=
ขนท 3 หาวารากอยระหวางชวงใด ถา รากจะอยในชวงลางให ตงคา u rx x= แลวกลบไปขนท 2 ก) ( ) ( ) 0l uf x f x <
ถา รากจะอยในชวงบนให ตงคา l rx x= แลวกลบไปขนท 2 ข) ( ) ( ) 0l uf x f x >
ค) ถา รากจะเทากบ rx ใหหยดโปรแกรม ( ) ( ) 0l uf x f x =
ทาตามขนตอนดงกลาวซาอกหลาย ๆ ครง จนกระทง คารากมคาใกลเคยงกบคารากทแทจรง ตวอยางท 2.2 ใชวธแบงสวน หาคา c ในตวอยางทผานมา
วธทา ขนแรกเดาคา c สองคา ซงทาให มเครองหมายตรงกนขามในทนได 12 และ 16
( )f c
ดงนน 12 16 14
2rx += =
เปนคาโดยประมาณ มความผดพลาด = 5.3 % (เทยบกบคาทแทจรงของราก คอ 14.7802)
tε
ขนตอไปคานวณผลคณ
(12) (14) 6.067(1.569) 9.517f f = =
PH 615 18
![Page 23: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/23.jpg)
ซงมคามากกวาศนย ไมมการเปลยนเครองหมายระหวางจดตาและจดกงกลาง ดงนนราก จะอยระหวาง 14 และ 16
14 16 15
2rx += =
ซงจะมความคลาดเคลอน = 1.5 % tε
เราสามารถทาซาอก คอ
( ) ( )1514 ff = 1.569(-0.425) = -0.666 ดงนน รากจะอยระหวาง 14 และ 15 จะได
= rx2
1514 + = 14.5
ซงจะมคาความคลาดเคลอน = 1.9 % tε
นกศกษาสามารถทาซาหลาย ๆ ครง จนกวาจะไดความถกตองตามทตองการ ตวอยางท 2.3 จงเขยนโปรแกรมภาษาฟอรแทรนเพอหารากของสมการ -0.4x2+2.2x+4.7 โดยวธแบงสวน ใช xl = 5 และ xu = 10 วธทา
*-- program bisec *-- *-- The interval a<x<b is known to contain a root of f(x).the *-- estimate of the root is successively improved by finding in *-- which half of the interval the root lies and then replacing *-- the original interval by that half. *---------------------------------------------------------------
PH 615 19
![Page 24: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/24.jpg)
*Variables *-- REAL X1,X2,X3,F1,F2,F3,A,B,EPS,D,DO INTEGER I,IMAX *-- *-- X1,X3,X2 -- The left,right,and midpoint ot the *-- currert interval *-- F1,F3,F2 -- The function evaluated at these points *-- A,B,DO -- The left and right ends of the original *-- interval and its width (b-a) *-- EPS -- convergence criterion based on the size of *-- the current interval *-- D -- The widih of the current interval (x3-x1) *-- IMAX -- Maximum number of iterrations *-- I -- Current iteration counter *----------------------------------------------------------------- *Statement function for the function f(x) *-- F(X) = -0.4*X*X+2.2*X+4.7 *-- *-- (or any other function) *---------------------------------------------------------------- * Initialization *-- PI = ACOS(-1.) WRITE(*,*)'Enter limits of original search interval, a,b' READ (*,*)A,B WRITE(*,*)'Enter convergence criterion (EPS) and', + 'max.no.of iterations (IMAX)'
PH 615 20
![Page 25: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/25.jpg)
READ (*,*)EPS,IMAX *-- WRITE(*,*)'The original search interval is from',A,'to',B WRITE(*,*)'The convergence criterion is (interval)<',EPS WRITE(*,*)'The maximum No. of iterations allowed is ',IMAX WRITE(*,*) *-- X1 = A X3 = B F1 = F(X1) F3 = F(X3) DO = (B-A) *-- *-- First verify that there is indeed a root in the interval. *-- IF(F1*F3.GT.0.0)THEN WRITE(*,*)'No root in original interval. It is possible' WRITE(*,*)'that the function is incorrectly coded.' ELSE * Begin Iterations loop *-- DO 3I = 1,IMAX *-- *-- Find which half of the interval containsthe root *-- X2 = .5*(X1+X3) F2 = F(X2) IF(F1*F2.LE.0.0)THEN *--
PH 615 21
![Page 26: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/26.jpg)
*-- Root is in left half, so *-- D = (X2-X1)/2. F3 = F2 X3 = X2 ELSE *-- *-- Root is in right half,so *-- D = (X3-X2)/2. F1 = F2 X1 = X2 ENDIF *-- *-- Test for convergence *-- IF(D .LT.EPS)THEN *-- *-- Success path *-- WRITE(*,*)'A root at X = ',X2,'was foud' WRITE(*,*)'in',I,'iterations' WRITE(*,*)'The value of the function is ',F2 STOP 'success' ENDIF 3 CONTINUE *-------------------------------------------------------- * Excessive Iterations Path *--
PH 615 22
![Page 27: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/27.jpg)
WRITE(*,*)'After ',IMAX,' iterations, no root was fouad' WRITE(*,*)' Within the convergence criterion' STOP 'failure' ENDIF END เอาทพทจากโปรแกรม คอ ดงนน รากของสมการ คอ 7.12890625 ตวอยางท 2.4 การประมาณความคลาดเคลอนของวธแบงสวนใหนกศกษาทาซาตามตวอยาง 2.2 จนกระทงความคลาดเคลอนนอยกวา = 0.5 % sε
วธทา จากตวอยาง 2.2 ราก คอ 14 และ 15 ความคลาดเคลอนจากการประมาณ
15 14 100% 6.667%15aε−
= =
ความคลาดเคลอนจรง = 1.5 % ดงนน tε a tε ε>
PH 615 23
![Page 28: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/28.jpg)
iteration lx ux rx aε tε
1 2 3 4 5 6
12 14 14 14.5 14.75 14.75
16 16 15 15 15 14.875
14 15 14.5 14.75 14.875 14.8125
6.667 3.448 1.695 0.840 0.422
5.279 1.487 1.896 0.204 0.641 0.219
จากตารางจะเหนวาหลงจาก iteration ครงท 6 0.5%aε <
ตวอยางท 2.5 จงคานวณรากของสมการ f(x) = lnx2 – 0.7 โดยวธแบงสวนใช xl = 0.5 และ xu = 2 วธทา ใชโปรแกรมตามตวอยาง 2.3 โดยเปลยน f(x) = lnx2 – 0.7 เอาทพทจากโปรแกรม คอ รากของสมการคอ 1.34375
PH 615 24
![Page 29: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/29.jpg)
2.3 วธฟอลสโพซชน (False-Position Method)
วธฟอลสโพซชน หรอ เรกกลาฟอลไซ(regula falsi ) หรอ การอนเทอโพเลทเชงเสน (linear interpolation ) หาจากความชนของกราฟ
( )
lr
i
xxxf−
= ( )ur
u
xxxf−
( )( ) ( )( )l r u u r lf x x x f x x x− = − ( ) ( ) ( ) ( )r l u u l l ux f x f x x f x x f x− = −⎡ ⎤⎣ ⎦
หารดวย ( ) ( )l uf x f x−
( ) ( )( ) ( )
u l l ur
l u
x f x x f xx
f x f x−
=−
( )( ) ( )
( )( ) ( )
u l l ur
l u l u
x f x x f xx
f x f x f x f x= −
− −
( )
( ) ( )( )
( ) ( )u l l u
r u ul u l u
x f x x f xx x x
f x f x f x f x= + − −
− −
( )
( ) ( )( )
( ) ( )u u l u
r ul u l
x f x x f xx x
uf x f x f x f x= + −
− −
หรอ
= rx ( )( )( ) ( )ul
uluu xfxf
xxxfx−
−−
จะได ( )( )( ) ( )
u l ur u
l u
f x x xx x
f x f x−
= −−
PH 615 25
![Page 30: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/30.jpg)
ใชเปนสตรในการคานวณหารากของสมการ
รปท 2.3 วธฟอลสโพซชน ตวอยาท 2.6 จงใชวธฟอลสโพซชน หารากของสมการในตวอยาง 2.1
วธทา เดา และ 12lx = 16ux =
first iteration ( )lf x = 6.0069 12lx =
16ux = ( )uf x = -2.2688
ดงนน ( )( )
2.2688 12 1616 14.9113
6.0669 2.2688rx− −
= − =− −
ซงม True error = 0.89 % tε
PH 615 26
![Page 31: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/31.jpg)
second iteration ( ) ( ) 1.5426l rf x f x = −
ดงนนรากอยในชวงแรก 12lx = ( )lf x = 6.0069 14.9113ux = ( )uf x = -0.2543
( )( )
2.2688 12 14.911314.9113 14.7942
6.0669 -0.2543rx− −
= − =−
ซงมความคลาดเคลอนจรง = 0.09 และความคลาดเคลอนประมาณ = 0.79 % ถาตองการความถกตองมากกวาน ใหทาการ iterate ตอไป จะเหนไดวา วธ false – position จะไดคารากของสมการเรวกวาวธแบงสวนมาก กราฟรปท 2 เปรยบเทยบ % ความคลาดเคลอนกบจานวนครงของการ iterate โดยวธ false – postion กบวธแบงสวน
รปท 2.4 เปรยบเทยบความคลาดเคลอน
PH 615 27
![Page 32: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/32.jpg)
ขอเสยของวธฟอลสโพซชน ถงแมวาวธฟอลสโพซชน จะใหคาตอบไดเรวกวาวธแบงสวน แตในบางกรณ วธ ฟอลสโพซชนอาจจะไมใหคาตอบเลย ดงตวอยางตอไปน ตวอยางท 2.7 ใชวธแบงสวนและวธฟอลสโพซชนหาคารากของสมการ
( ) 10 1f x x= −
ระหวาง และ 1.3 0x = วธทา a) วธแบงสวน
iteration lx ux rx tε aε
1 2 3 4 5
0 0.65 0.975 0.975 0.975
1.3 1.3 1.3 1.1375 1.05625
0.65 0.975 1.1375 1.05625 1.015625
35 2.5 13.8 5.6 1.6
100.0 33.3 14.3 7.7 4.0
PH 615 28
![Page 33: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/33.jpg)
b) วธฟอลสโพซชน
iteration lx ux rx tε aε
1 2 3 4 5
0 0.09430 0.18176 0.26287 0.33811
1.3 1.3 1.3 1.3 1.3
0.09430 0.18176 0.26287 0.33811 0.40788
90.6 81.8 73.7 66.2 59.2
48.1 30.9 22.3 17.1
จะเหนไดวาสาหรบฟงกชนน วธฟอลสโพซชนเขาถงคาตอบไดชากวาวธแบงสวนมาก ทาซาถง 5 ครง ยงมคามากถง 59.2 % กคอยงไมไดคาตอบทถกตอง tε
PROGRAM MOD_FALSE_POSITION WRITE(*,*)'ENTER XL,XR,ES' READ (*,*)XL,XR,ES FXL= FUNC(XL) FXR= FUNC(XR) TEST = FXL*FXR IF(TEST.GE.0.) THEN WRITE(6,10) STOP ENDIF 10 FORMAT(/, ' ROOT IS OUT OF RANGE') XD = XL WRITE(6,20) 20 FORMAT(/, 3X, 'ITERATION NO. ', 9X, 'X', /) DO 100 ITER=1,3000 FXL = FUNC(XL)
PH 615 29
![Page 34: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/34.jpg)
FXR = FUNC(XR) XFP = (XL*FXR - XR*FXL)/(FXR - FXL) FX1 = FUNC(XFP) TEST = FX1*FXR IF(TEST.LT.0.) THEN XL = XFP ELSE XR = XFP ENDIF WRITE(6,30) ITER, XFP 30 FORMAT(1X, I8, 8X, E14.6) TL = ABS((XFP-XD)*100./XFP) IF(TL.LT.ES) GO TO 50 XD = XFP 100 CONTINUE WRITE(6,40) 40 FORMAT(/, ' ROOT CAN NOT FIND IN THIS CONDITION') GO TO 200 50 WRITE(6,60) XFP 60 FORMAT(/, 3X, 'THE ROOT IS ', E14.6) 200 CONTINUE STOP END *----------------------------------------------------- FUNCTION FUNC(X) FUNC = (X**10)-1 RETURN END
PH 615 30
![Page 35: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/35.jpg)
เอาทพทจากโปรแกรม คอ รากของสมการ คอ 1.0 โดยทาการ iterate ถง 63 ครงจงจะไดคาตอบถกตอง
PH 615 31
![Page 36: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/36.jpg)
รปท 2.5 กราฟ f(x) = x10 – 1 แสดงการลของวธฟอลสโพซชน
ตวอยางท 2.8 จงเขยนโปรแกรมภาษาฟอรแทรนเพอหารากของสมการ f(x) = -26 + 82.3x – 88x2 + 45.4x3 – 9x4 + 0.65x5
โดยวธฟอลสโพซชน ใช xl = 0.5, xa = 1 วธทา โปรแกรมทเขยนโดยวธฟอลสโพซชน คอ PROGRAM FALSE_POSITION WRITE(*,*)'ENTER XL,XR,ES' READ (*,*)XL,XR,ES FXL= FUNC(XL) FXR= FUNC(XR) AA = FXL*FXR IF(AA.GE.0.) THEN WRITE(6,10) STOP ENDIF 10 FORMAT(/, ' ROOT IS NOT IN THE GIVEN RANGE') X10LD = XL
PH 615 32
![Page 37: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/37.jpg)
DO 100 I=1,500 FXL = FUNC(XL) FXR = FUNC(XR) X1 = (XL*FXR - XR*FXL)/(FXR - FXL) FX1 = FUNC(X1) AA = FX1*FXR IF(AA.LT.0.) THEN XL = X1 ELSE XR = X1 ENDIF TOL = ABS((X1-X10LD)*100./X1) IF(TOL.LT.ES) GO TO 40 X10LD = X1 100 CONTINUE WRITE(6,20) 20 FORMAT(/, ' ROOT CAN NOT BE REACHED FOR', + ' THE GIVEN CONDITION' ) GO TO 50 40 WRITE(6,30) X1 30 FORMAT(/, 3X, 'THE ROOT IS ', E14.6) 50 CONTINUE STOP END FUNCTION FUNC(X) FUNC = -26+82.3*X-88*X*X+45.4*X**3-9*X**4+0.65*X**5 RETURN END
PH 615 33
![Page 38: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/38.jpg)
เอาทพทจากโปรแกรม คอ ดงนน รากของสมการ คอ 0.579331 ตวอยางท 2.9 ความเรวของนกกระโดดรมเปนไปตามสมการ
v(t) = c
gm (1 – e-(c/m)t )
เมอ g = 9.8, c = 14 กก./วนาท จงหามวล m ของนกกระโดดรม ซงมความเรว v = 35 เมตร/วนาท เมอเวลาผานไป 7 วนาท ใชวธฟอลสโพซชนทมความถกตองถง 0.01% วธทา ใชโปรแกรมตามตวอยาง 2.8 โดยเปลยน f(x) เปน v(t) เอาทพทจากโปแกรม คอ ดงนน มวลของนกกระโดดรม = 63.65 กโลกรม
PH 615 34
![Page 39: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/39.jpg)
ตวอยางท 2.10 จงหารากของสมการ x3.3 = 79 โดยวธฟอลสโพซชน ใช xl = 3, xu = 4 และ = 0.0001 sε
วธทา ใชโปรแกรมตามตวอยาง 2.8 โดยเปลยน f(x) เอาทพทจากโปรแกรม คอ ดงนน รากของสมการ คอ 3.7587072849
PH 615 35
![Page 40: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/40.jpg)
แบบฝกหดบทท 2
จงหารากของสมการ f(x) = - 2 + 7x – 5x2 + 6x3 1.
ก) โดยวธกราฟ โดยวธแบงสวน โดยใช xl = 0 และ xu = 1 และทาหาร iterate จน aε นอยกวา 10%
ข)
จงหารากของสมการ f(x) = - 26 + 82.3x – 88x2 + 45.4x3 – 9x4 + 0.65x5 2. ก) โดยวธกราฟ ข) โดยวธแบงสวน โดยใช xl = 0.5 และ xu = 1.0 ค) โดยวธฟอลสโพซชน
จงหารากของสมการ f(x) = - 11 - 22x + 17x2 – 2.5x3 3. ก) โดยวธกราฟ ข) โดยวธฟอลสโพซชน
PH 615 36
![Page 41: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/41.jpg)
บทท 3 การแกสมการ
ในบทนจะกลาวถงการแกสมการโดยวธเปด สมการอาจจะเปนชนดเชงเสนหรอไมเปน เชงเสน โดยทสมการจะอยในรป f(x) = 0 วธเปดจะเรมตนจากจดเดยวหรอสองจดทไมจาเปนตองครอบคลมคารากของสมการ ทาใหงายตอการคานวณ เพราะวาไมจาเปนทจะตองเดาคารากของสมการกอน
3.1 วธทาซาจดคงท (Simple fixed-point iteration)
จดรปแบบฟงกชน f(x) = 0 ใหอยในรป x = g(x) โดยมคา x อยทางดานซายของสมการ
เชน 2 2 3 0x x− + =
2 32
xx +⇒ =
หรอ sin 0x =
sinx x x⇒ = +
ตวอยางท 3.1 จงหารากของสมการ ดวยวธ วธทาซาจดคงท ( ) xf x e− x= −
PH 615 37
![Page 42: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/42.jpg)
วธทา
ixi ex −= =1 เรมตนจาก 0=ix
i ix ( )%aε ( )%tε
0 1 2 3 4 5 6 7 8 9 10
0 1.000000 0.367879 0.692201 0.500473 0.606244 0.545396 0.579612 0.560115 0.571143 0.564879
100.0 171.8 46.9 38.3 17.4 11.2 5.90 3.48 1.93 1.11
100.0 76.3 35.1 22.1 11.8 6.89 3.83 2.20 1.24 0.705 0.399
ซงรากทแทจรง คอ 0.56714329
ตวอยางท 3.2 จงเขยนโปรแกรมคานวณรากของสมการ f(x) = sin( ) – x โดยวธ x
ทาซาจดคงท โดยใช x0 = 0.5 และทาซาจนกระทง εa ≤ 0.01 วธทา PROGRAM FIX_PT WRITE(*,*)'ENTER X0,ES,IMAX'
PH 615 38
![Page 43: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/43.jpg)
READ(*,*)X0,ES,IMAX WRITE(*,*)'THE ROOT IS',FIXPT(X0,ES,IMAX) STOP END *--------------------------------------------- FUNCTION FIXPT(X0,ES,IMAX) *--------------------------------------------- F(X)= SIN(SQRT(X)) *--------------------------------------------- XR = X0 DO 10 ITER=1,IMAX XROLD = XR XR = F(XROLD) IF (XR.NE.0.) THEN EA = ABS((XR-XROLD)/XR)*100. ENDIF IF (EA.LT.ES) THEN GO TO 20 ENDIF 10 CONTINUE 20 FIXPT=XR RETURN END *---------------------------------------------- เอาทพทจากโปรแกรม คอ
PH 615 39
![Page 44: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/44.jpg)
รากของสมการ = 0.768606246 ตวอยางท 3.3 แยกสมการ เปน 2 สวน แลวหารากของสมการโดยวธกราฟ 0xe x− − =
วธทา 1y x= และ 2
xy e−=
x 1y 2y 0.0 0.2 0.4 0.6 0.8 1.0
0.0 0.2 0.4 0.6 0.8 1.0
1.000 0.819 0.670 0.549 0.449 0.368
นาคาในตารางไปเขยนกราฟ จดตดของกราฟทงสองเสน คอ รากของสมการ ในทนจะไดรากของสมการ x = 0.57
PH 615 40
![Page 45: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/45.jpg)
รปท 3.1 การแกสมการโดยวธกราฟ
3.2 วธนวตน-ราฟสน (The Newton-Raphson Method)
เปนวธการหารากของสมการทนยมมากทสด เรมจากการเดาคาราก xi จากนนลากเสนสมผสจากจดน จดทเสนสมผสตดกบแกน x จะเขาใกลคารากของสมการมากขน ดงแสดงในรปท 3.2
รปท 3.2 วธนวตน-ราฟสน
PH 615 41
![Page 46: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/46.jpg)
( ) ( )1
0ii
i i
f xf x
x x +
−′ =
−
สามารถจดไดเปน
⇒ = 1+ix ( )( )i
ii xf
xfx′
−
ซงเปนสตรทใชในการคานวณหารากโดยวธนวตน-ราฟสน การคานวณสตรขางบนน จะเรมตนจากอนกรมเทยเลอร
( ) ( ) ( ) ( )0 0
22
0 0 02
1 .....2x x x x
df d ff x f x x x x xdx dx= =
= + − + − +
( ) ( ) ( ) ( )0 0
22
0 0 02
10 .....2x x
df d ff x f x x x x xdx dx
= = + − + − +
ถารากใกล 0x
( ) ( ) ( ) ( ) ( )( )0
0 0 0 00x
df0f x f x x x f x f x x
dx′= = + − − = − x
หรอ
( )( )
00
0
f xx x
f x= −
′
( )( )1
ii i
i
f xx x
f x+⇒ = −′
ตวอยางท 3.4 จงใชวธนวตน-ราฟสน หารากของสมการ
โดยทใชคาเรมตน x = 0 และจงเขยนโปรแกรมโดยวธนวตน-ราฟสน เพอหารากของสมการ เปรยบเทยบกบคาทไดจากเครองคดเลข
( ) xf x e x−= −
PH 615 42
![Page 47: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/47.jpg)
วธทา ( )xf ′ = 1−− −xe
1 1
i
i
xi
i i x
e xx xe
−
+ −
−= −
− −
เรมจาก x = 0
i ix ( )%tε
0 1 2 3 4
0 0.500000000 0.566311003 0.567143165 0.567143290
100 11.8 0.147 0.0000220 < 810−
จากตารางจะเหนไดวา การคานวณจะลเขาหารากของสมการไดรวดเรวมาก
โปรแกรมหารากของสมการโดยวธนวตน-ราฟสน คอ PROGRAM NEW-RAPH WRITE(*,*)'ENTER X0,ES,IMAX' READ(*,*)X0,ES,IMAX WRITE(*,*)'THE ROOT IS',FIXPT(X0,ES,IMAX) STOP END *---------------------------------------------------- FUNCTION FIXPT(X0,ES,IMAX) *---------------------------------------------------- F(X)= X-((EXP(-X)-X)/(-EXP(-X)-1.)) *---------------------------------------------------- XR = X0 DO 10 ITER=1,IMAX XROLD = XR
PH 615 43
![Page 48: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/48.jpg)
XR = F(XROLD) IF (XR.NE.0.) THEN EA = ABS((XR-XROLD)/XR)*100. ENDIF IF (EA.LT.ES) THEN GO TO 20 ENDIF 10 CONTINUE 20 FIXPT=XR RETURN END *---------------------------------------------------- เอาทพทจากโปรแกรม คอ ดงนน รากของสมการ x = 0.567143142 จากเครองคดเลข x = 0.567143290 ซงมคาใกลเคยงกนมาก
ตวอยางท 3.5 การวเคราะหความคลาดเคลอนโดยวธนวตน-ราฟสน ความคลาดเคลอนจะเปนสดสวนกบกาลงสองของความคลาดเคลอนเดม
( )( )
2, 1 ,2
rt i t i
r
f xE E
f x+
′′−≅
′
จงคานวณความคลาดเคลอน หลงจากการทาซาหลาย ๆ ครง วธทา
PH 615 44
![Page 49: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/49.jpg)
( ) xf x e x−= −
( ) 1xf x e−′ = − − ( )0.56714329 0.56714329 1.56714329rx f ′= ⇒ = − ( ) xf x e−′′ = ( )0.56714329 0.56714329f ′′ =
จะได ( )
2 2, 1 , ,
0.56714329 0.180952 1.56714329t i t i t iE E E+ ≅ − =−
จากตวอยาง 3.4 ,0 0.56714329tE =
จะได ( )2
,1 0.18095 0.56714329 0.0582tE ≅ =
ซงมคาใกลกบความคลาดเคลอนจรง
สาหรบ iteration ตอไป
( )2,2 0.18095 0.06714329 0.0008158tE ≅ =
ซงมคาใกลกบความคลาดเคลอนจรง 0.0008323
สาหรบ iteration ทสาม
( )2,3 0.18095 0.0008323 0.000000125tE ≅ =
สาหรบ iteration ทส
( )2 15,4 0.18095 0.000000125 2.83 10tE −≅ = ×
ขอเสยของวธนวตน-ราฟสน
PH 615 45
![Page 50: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/50.jpg)
ถงแมวาวธนวตน-ราฟสน จะมประสทธภาพมาก แตในบางกรณกอาจจะมปญหาในการคานวณได ดงตวอยางตอไปน
ตวอยาง 3.6 จงหารากทเปนบวกของ โดยวธนวตน-ราฟสน โดยใช
( ) 10 1f x x= −
0 0.5x =
วธทา 10
1 9
110i
i ii
xx xx+
−= −
Iteration x 0 1 2 3 4 5
Μ
∞
0.5 51.56 46.485 41.8365 37.65285 33.887565
Μ 1.0000000
จะเหนไดวา สาหรบฟงกชนน การคานวณโดยวธ Newton – Raphson จะเขาถงคาตอบไดชามาก ตวอยางท 3.7 จงเขยนโปรแกรมเพอหารากของสมการ f(x) = - 0.9x2 + 1.7x + 2.5 โดย
วธ ก) วธทาซาจดคงท วธนวตน-ราฟสน ข)
PH 615 46
![Page 51: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/51.jpg)
ใช x0 = 5, εa < 0.01 % แลวเปรยบเทยบคารากจากทงสองวธ
วธทา ก) วธทาซาจดคงท PROGRAM FIX_PT6 WRITE(*,*)'ENTER X0,ES,IMAX' READ(*,*)X0,ES,IMAX WRITE(*,*)'THE ROOT IS',FIXPT(X0,ES,IMAX) STOP END *--------------------------------------------- FUNCTION FIXPT(X0,ES,IMAX) *--------------------------------------------- F(X)= ((0.9*X*X)-2.5)/1.7 *--------------------------------------------- XR = X0 DO 10 ITER=1,IMAX XROLD = XR XR = F(XROLD) IF (XR.NE.0.) THEN EA = ABS((XR-XROLD)/XR)*100. ENDIF IF (EA.LT.ES) THEN GO TO 20 ENDIF 10 CONTINUE 20 FIXPT=XR RETURN END
PH 615 47
![Page 52: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/52.jpg)
*---------------------------------------------- เอาทพทจากโปรแกรม คอ ดงนน จงไมสามารถหารากของสมการได ถา x0 = 5
วธนวตน-ราฟสน ข)
PROGRAM NR WRITE(*,*)'ENTER X0,ES,IMAX' READ(*,*)X0,ES,IMAX WRITE(*,*)'THE ROOT IS',FIXPT(X0,ES,IMAX) STOP END *--------------------------------------------- FUNCTION FIXPT(X0,ES,IMAX) *--------------------------------------------- F(X)= X-((-0.9*X*X+1.7*X+2.5)/(-0.9*X+1.7)) *--------------------------------------------- XR = X0 DO 10 ITER=1,IMAX XROLD = XR XR = F(XROLD) IF (XR.NE.0.) THEN EA = ABS((XR-XROLD)/XR)*100.
PH 615 48
![Page 53: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/53.jpg)
ENDIF IF (EA.LT.ES) THEN GO TO 20 ENDIF 10 CONTINUE 20 FIXPT=XR RETURN END *---------------------------------------------- เอาทพทจากโปรแกรม คอ ดงนน รากของสมการ คอ - 0.971214533 ซงเปนคาทถกตอง จะเหนไดวา วธนวตน-ราฟสนใหคารากทถกตอง สวนวธทาซาจดคงทจะหาคารากไมได เนองจากคาเรมตน x0 = 5 จะไมลเขาหาคาตอบ แตเมอเปลยนคา x0 ใหเขาใกลคารากของสมการ คอใช x0 = - 1.0 จะไดรากของสมการ x = - 1.02089381 ซงเปนคาทถกตอง เอาทพทเมอเปลยน x0 เปน - 1.0 คอ
ตวอยางท 3.8 จงเขยนโปรแกรมหารากของสมการโดยวธนวตน-ราฟสน
PH 615 49
![Page 54: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/54.jpg)
f(x) = - 2.0 + 6x – 4x2 + 0.5x3 โดยใชคาเรมตน x0 = 4.2 และ x0 = 4.43 แลวเปรยบเทยบคารากทคานวณได วธทา อาศยโปรแกรมจากตวอยาง 3.7 โดยเปลยน f(x) เอาทพทจากโปรแกรม เมอ x0 = 4.2 คอ จะไดรากของสมการคอ x = 0.47457245 เอาทพทจากโปรแกรม เมอ x0 = 4.43 คอ จะไดรากของสมการคอ x = - 0.01764003 จะเหนไดวา รากของสมการเมอใชจดเรมตนตางกน จะไดคาตางกน วธการนวตน- ราฟสน จงขนกบคาเรมตนมาก
PH 615 50
![Page 55: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/55.jpg)
3.3 วธซแคน (The Secant Method) วธนวตน-ราฟสนมขอเสยทจะตองคานวณอนพนธกอน สวนวธซแคนใชการประมาณคาอนพนธโดยใช
( ) ( ) ( )1
1
i ii
i i
f x f xf x
x x−
−
−′ ≅
−
ยายขางสมการจะได
( )( )( ) ( )
11
1
i i ii i
i i
f x x xx x
f x f x−
+−
−= −
−
รปท 3.3 วธซแคน
ตวอยางท 3.9 โดยวธซแคน จงหาคารากของ โดยใช คาเรมตน และ และเขยนโปรแกรมเพอหาคาราก
( ) xf x e x−= −
0 1.0x = 1 0x− =
วธทา รากแทจรงของสมการ คอ 0.56714329
PH 615 51
![Page 56: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/56.jpg)
Iteration ครงท 1
1 0x− = ( )1 1.0000f x− =
0 1.0x = ( ) 0.63212f x = −
( )( )1
0.63212 0 11 0.61270
1 0.63212x
− −= − =
− −
8.0%tε = Iteration ครงท 2
0 1x = ( )0 0.63212f x = −
1 0.61270x = ( )1 0.07081f x = −
( )( )2
0.07081 1 0.612700.61270 0.56384
0.63212 0.07081x
− −= − =
− − −
0.58%tε = Iteration ครงท 3 1 0x− = ( )1 0.07081f x = −
2 0.56384x = ( )2 0.00518f x =
( )( )3
0.00518 0.61270 0.563840.56384 0.56717
0.07081 0.00518x
−= − =
− −
0.0048%tε =
โปรแกรมคานวณรากของสมการโดยวธซแคน คอ PROGRAM SECANT WRITE(*,*)'ENTER DELTA,X0,ES,IMAX' READ(*,*) D,X0,ES,IMAX WRITE(*,*)'THE ROOT IS',SECANT(D,X0,ES,IMAX) STOP
PH 615 52
![Page 57: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/57.jpg)
END *--------------------------------------------- FUNCTION SECANT(D,X0,ES,IMAX) *--------------------------------------------- F(X)= EXP(-X)-X *--------------------------------------------- XR = X0 DO 10 ITER=1,IMAX XROLD = XR DX = D*XROLD XR = XROLD-((DX*F(XROLD))/(F(XROLD+DX)-F(XROLD))) IF (XR.NE.0.) THEN EA = ABS((XR-XROLD)/XR)*100. ENDIF IF (EA.LT.ES) THEN GO TO 20 ENDIF XI1= XROLD 10 CONTINUE 20 SECANT=XR RETURN END *---------------------------------------------- เอาทพทจากโปรแกรม คอ ดงนน รากของสมการคอ 0.567143261 ซงตรงกบการคานวณโดยใชเครองคดเลข
PH 615 53
![Page 58: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/58.jpg)
ตวอยางท 3.10 จงหารากของสมการ f(x) = sinx + cos(1 + x2) – 1 โดยวธซแคน โดยใช ก) xi-1 = 1.0 และ xi = 3.0
ข) xi-1 = 1.5 และ xi = 2.5 วธทา โปรแกรมการคานวณอกแบบหนง คอ PROGRAM SECANT CALL SECANT(XI1,X0,ES,XR,EA,IMAX) STOP END * ***************************************** FUNCTION F(X) F = SIN(X)+COS(1.+X*X)-1. RETURN END * ***************************************** * SECANT METHOD *////////////////////////////////////////////////////////////////////// SUBROUTINE SECANT(XI1,X0,ES,XR,EA,IMAX) WRITE(6,2) 2 FORMAT(' SECANT METHOD',/,' ENTER XI-1,X0,ES,IMAX') READ(*,*) XI1,X0,ES,IMAX WRITE(6,100) 100 FORMAT(/,8X,'ITER',15X,'XR', + 15X,'%EA') XR = X0 DO 10 I=1,IMAX XROLD = XR * -------------------------------------------------- XR=XROLD-(F(XROLD)*(XI1-XROLD))/(F(XI1)-F(XROLD)) * -------------------------------------------------- IF (XR.NE.0.) THEN EA = ABS((XR-XROLD)/XR)*100.
PH 615 54
![Page 59: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/59.jpg)
ENDIF XI1= XROLD WRITE(6,200)I,XR,EA 200 FORMAT(I10,10X,F15.9,6X,E10.3) IF (EA.LT.ES) THEN GO TO 20 ENDIF 10 CONTINUE WRITE(6,40) 40 FORMAT(/) WRITE(*,*)' CANNOT FIND ROOT FOR THE GIVEN CONDITIONS' GO TO 30 20 WRITE(6,300) 300 FORMAT(/) WRITE(*,*)'THE ROOT IS ',XR 30 RETURN END *------------------------------------------------------------ เอาทพทจากโปรแกรม คอ
PH 615 55
![Page 60: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/60.jpg)
ซงไมสามารถหารากของสมการได เมอเปลยน xi-1 = 1.5 และ xi = 2.5 จะไดเอาทพท ซงจะไดรากของสมการ x = 2.5322125 ตวอยางท 3.11 จงใชวธฟอลส-โพซชนและวธซแคน หารากของ โดยใช คาเรมตน และ
( ) lnf x = x
0 1.0x = 1 0x− =
วธทา
วธฟอลส-โพซชน
iteration xl ux rx 1 2 3
0.5 0.5 0.5
5.0 1.8546 1.2163
1.8546 1.2163 1.0585
PH 615 56
![Page 61: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/61.jpg)
วธซแคน
iteration 1ix − ix 1ix + 1 2
0.5 5.0
5.0 1.8546
1.8546 -0.10438
Diverge⇒ จะหาคารากไมได
รปท 3.4 แสดงการ diverge 3.4 วธปรบปรงซแคน (Modified Secant Method)
PH 615 57
![Page 62: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/62.jpg)
แทนทจะใชคาสองคาในการหาอนพนธ วธนจะใชคา δxi แทน
( ) ( ) ( )i i ii
i
f x x f xf x
xδδ
+ −′ ≅
เมอ δ = ชวงทมขนาดเลก
( )( ) ( )1
i ii i
i i i
x f xx x
f x x f xδδ+ = −
+ −
ตวอยางท 3.12 ใชวธปรบปรงซแคน หาคารากของ โดยใช คา δ = 0.01 และ คารากทถกตอง คอ 0.56714329 และเขยนโปรแกรมหารากของสมการดวย
( ) xf x e x−= −
0 1.0x =
วธทา
Iteration ครงท 1
0 1.0x = ( )0 0.63212f x = −
0 0 1.01x xδ+ = ( )0 0 0.64578f x xδ+ = − ( )
( )1
0.01 0.632121 0.537263
0.64578 0.63212x
−= − =
− − −
5.3%tε = Iteration ครงท 2
0 0.537263x = ( )0 0.047083f x =
0 0 0.542635x xδ+ = ( )0 0 0.038579f x xδ+ = ( )
1
0.537263 0.632120.537263 0.56701
0.038579 0.047083x
−= − =
−
0.0236%tε = Iteration ครงท 3
0 0.56701x = ( )0 0.000209f x =
0 0 0.567143x xδ+ = ( )0 0 0.00867f x xδ+ = −
PH 615 58
![Page 63: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/63.jpg)
( )1
0.00567 0.0002090.56701 0.567143
0.00867 0.000209x = − =
− −
52.365 10 %tε−= ×
โปรแกรมทใชคานวณโดยวธปรบปรงซแคน คอ PROGRAM MODSECANT WRITE(*,*)'ENTER DELTA,X0,ES,IMAX' READ(*,*) D,X0,ES,IMAX WRITE(*,*)'THE ROOT IS',SECANT(D,X0,ES,IMAX) STOP END *--------------------------------------------- FUNCTION SECANT(D,X0,ES,IMAX) *--------------------------------------------- F(X)= EXP(-X)-X *--------------------------------------------- XR = X0 DO 10 ITER=1,IMAX XROLD = XR DX = D*XROLD XR = XROLD-((DX*F(XROLD))/(F(XROLD+DX)-F(XROLD))) IF (XR.NE.0.) THEN EA = ABS((XR-XROLD)/XR)*100. ENDIF IF (EA.LT.ES) THEN GO TO 20 ENDIF XI1= XROLD 10 CONTINUE
PH 615 59
![Page 64: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/64.jpg)
20 SECANT=XR RETURN END *---------------------------------------------- เอาทพทจากโปรแกรม คอ ดงนน รากของสมการคอ x = 0.567143261 ซงมคาตรงกบคารากทถกตอง ตวอยางท 3.13 จงหารากของสมการ f(x) = x3 – 6x2 + 11x – 6.1
วธนวตน-ราฟสน (xi = 3.5, Iteration = 100) ก) วธซแคน (xi-1 = 2.5 และ xi = 3.5, Iteration = 3) ข)
วธปรบปรงซแคน (xi = 3.5, δ = 0.02, Iteration = 3) ค) วธทา ก) วธนวตน-ราฟสน เอาทพทคอ
PH 615 60
![Page 65: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/65.jpg)
ข) วธซแคน
เอาทพทคอ
ค) วธปรบปรงซแคน
PH 615 61
![Page 66: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/66.jpg)
เอาทพทคอ ไดรากของสมการคอ x = -3.050811291
จะเหนไดวาวธปรบปรงซแคนเขาหาคาตอบไดเรวทสด
3.5 รากซา (Multiple roots)
รากซาเปนจดทฟงกชนสมผสกบแกน x ตวอยางเชน
f(x) = (x - 3)(x - 1)(x - 1) จะมรากซาสองคา (double root) ท x = 1 และ f(x) = x4 – 6x3 + 12x2 - 10x + 3 = (x - 3)(x - 1)(x - 1) (x - 1) จะมรากซาสามคา(triple root) ท x = 1 มวธการสองวธในการหารากซาของสมการ
PH 615 62
![Page 67: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/67.jpg)
รปท 3.5 รากซา
วธท 1 วธนวตน-ราฟสน
ใชสมการ
1+ix = ( )( )i
ii xf
xfmx′
−
เมอ m = จานวนราก ในการหารากของสมการ
วธท 2 วธปรบปรงนวตน-ราฟสน
กาหนดให
( )xu = ( )( )xfxf′
จะเกดคารากทเดยวกบ f(x)
PH 615 63
![Page 68: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/68.jpg)
1+ix = ( )( )i
ii xu
xux′
−
เนองจาก
( )xu′ = ( ) ( ) ( ) ( )( )[ ]2xf
xfxfxfxf′
′′−′′
ดงนน
1+ix = ( ) ( )( )[ ] ( ) ( )xfxfxf
xfxfxi ′′−′′
− 2
ใชสมการนในการหารากของสมการ ตวอยางท 3.14 จงใชวธมาตรฐาน และ วธปรบปรงนวตน-ราฟสน หาคารากของสมการ
( ) 3 25 7 3f x x x x= − + −
วธทา ( ) 7103 2 +−=′ xxxf
วธท 1 มาตรฐาน
1+ix = 7103
3752
23
+−−+−
−ii
iiii xx
xxxx
i xi %tε 0 1 2 3 4 5 6
0 0.4285714 0.6857143 0.8328654 0.9133290 0.9557833 0.9776551
100 57 31 17 8.7 4.4 2.2
PH 615 64
![Page 69: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/69.jpg)
วธท 2 วธปรบปรงนวตน-ราฟสน
( )( )( ) ( )( )
3 2 2
1 2 3 2
5 7 3 3 10 7
3 10 7 5 7 3 6 10i i i i i
i ii i i i i i
x x x x xx x
x x x x x x+
− + − − += −
− + − − + − −
i ix %tε
0 1 2 3
0 1.105263 1.003082 1.000002
100 11
0.31 0.00024
หารากท x = 3
i standard %tε modified %tε
0 1 2 3 4 5
4 3.4 3.1
3.008396 3.000075 3.000000
33 13 3.3 0.29
0.0025 2 x 10-7
4 2.636364 2.820225 2.961728 2.998479 2.999998
33 12 6.0 1.3
0.051 7.7 x 10-3
โปรแกรมตอไปน คานวณรากของสมการชนดรากซา โดยวธมาตรฐาน PROGRAM STDNEWRAPH CALL MNR(X0,ES,XR,EA,IMAX) STOP END * ***************************************** FUNCTION F(X) F = X**3.+2.*X*X-5.*X+3 RETURN END
PH 615 65
![Page 70: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/70.jpg)
* ---------------------------------------- FUNCTION DIF_F(X) DIF_F = 3.*X*X+4.*X-5. RETURN END * ***************************************** *////////////////////////////////////////////////////////////////////// * MULTIPLE NEWTON RAPHSON METHOD (M = ...) *////////////////////////////////////////////////////////////////////// SUBROUTINE MNR(X0,ES,XR,EA,IMAX) WRITE(6,2) 2 FORMAT(' MODIFIED NEWTON RAPHSON METHOD ',/, + ' ENTER XI,ES,IMAX') READ(*,*) X0,ES,IMAX WRITE(6,100) 100 FORMAT(/,8X,'ITER',12X,'XR', + 15X,'%EA') *-------------------------------------------------------------- M = 2. XR = X0 DO 10 I=1,IMAX XROLD = XR XR = XROLD-M*((F(XROLD))/(DIF_F(XROLD))) IF (XR.NE.0.) THEN EA = ABS((XR-XROLD)*100./XR) ENDIF IF (EA.LT.ES) THEN GO TO 20 ENDIF *------------------------------------------------------------- WRITE(6,200)I,XR,EA 200 FORMAT(I10,10X,F12.9,6X,E10.3)
PH 615 66
![Page 71: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/71.jpg)
10 CONTINUE WRITE(6,40) 40 FORMAT(/) WRITE(*,*)' CANNOT FIND ROOT FOR THE GIVEN CONDITIONS' GO TO 50 20 WRITE(6,300) 300 FORMAT(/) WRITE(*,*)'THE ROOT IS ',XR 50 RETURN END *------------------------------------------------------------ โปรแกรมตอไปน คานวณรากของสมการชนดรากซา โดยวธปรบปรงนวตน-ราฟสน PROGRAM MODNEWRAPH CALL MNR2(X0,ES,XR,EA,IMAX) STOP END * ***************************************** FUNCTION F(X) F = X**3.+2.*X*X-5.*X+3 RETURN END * ---------------------------------------- FUNCTION DIF_F(X) DIF_F = 3.*X*X+4.*X-5. RETURN END * ----------------------------------------
PH 615 67
![Page 72: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/72.jpg)
FUNCTION DIFF_F(X) DIFF_F = 6.*X+4. RETURN END * ***************************************** *////////////////////////////////////////////////////////////////////// * MODIFIED NEWTON RAPHSON *////////////////////////////////////////////////////////////////////// SUBROUTINE MNR2(X0,ES,XR,EA,IMAX) WRITE(6,2) 2 FORMAT(' MODIFIED NEWTON RAPHSON ',/, + ' ENTER XI,ES,IMAX') READ(*,*) X0,ES,IMAX WRITE(6,100) 100 FORMAT(/,8X,'ITER',15X,'XR', + 15X,'%EA') XR = X0 DO 10 I=1,IMAX XROLD = XR *---------------------------------------------------------------------- XR = XROLD-( (F(XROLD)*DIF_F(XROLD))/ + ((DIF_F(XROLD))**2.-F(XROLD)) ) *---------------------------------------------------------------------- IF (XR.NE.0.) THEN EA = ABS((XR-XROLD)*100./XR) ENDIF WRITE(6,200)I,XR,EA 200 FORMAT(I10,10X,F15.9,6X,E10.3) IF (EA.LT.ES) THEN GO TO 20 ENDIF 10 CONTINUE
PH 615 68
![Page 73: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/73.jpg)
WRITE(6,40) 40 FORMAT(/) WRITE(*,*)' CANNOT FIND ROOT FOR THE GIVEN CONDITIONS' GO TO 50 20 WRITE(6,300) 300 FORMAT(/) WRITE(*,*)'THE ROOT IS ',XR 50 RETURN END
3.6 ระบบหลายสมการไมเปนเชงเสน (Systems of nonlinear equations) ถามหลายสมการ และมตวแปรมากกวา 1 ตว
1 1 2 3
2 1 2 3
( , , , ...., ) 0( , , , ...., ) 0
n
n
f x x x xf x x x x
=
=
Μ Μ 1 2 3( , , ,...., ) 0n nf x x x x =
เชน
2
2
103 5
x xyy xy+ =
+ = 7
สามารถเขยนไดเปน
2
2
( , ) 10 0( , ) 3 57 0
u x y x xyv x y y xy
= + − =
= + − =
ผลเฉลย คอ คา x และคา y ททาให และ เทากบศนย ( , )u x y ( , )v x y
วธทาซาจดคงท ตวอยางท 3.15 จงหารากของระบบสมการขางบน คารากทถกตองคอ x = 2 และ y = 3 โดยใชคาเรมตน x = 1.5 และ y = 3.5
PH 615 69
![Page 74: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/74.jpg)
วธทา และ 2
110 i
ii
xxy+
−= 2
1 57 3i iy x+ = − iy
อาศยคาเรมตน x = 1.5 และ y = 3.5
( )210 1.52.21429
3.5x
−= =
ใชคา x นและ y = 3.5 แทนลงไปในคา y ใหมจะได
( )( )257 3 2.21429 3.5 24.37516y = − = −
คาทไดจะdiverge ทาซาครงท 2
( )210 2.214290.20910
24.37516x
−= = −
−
( )( )257 3 0.20910 24.37516 429.709y = − − − =
ซงจะสงเกตเหนการdivergeอยางชดเจน
ตงสมการในรปใหม
10x xy= − และ 573
yyx−
=
10 1.5(3.5) 2.217945x = − =
( )57 3.5 2.86051
3 2.17945y −= =
10 2.17945(2.86051) 1.94053x = − =
( )57 2.86051 3.049553 1.94053
y −= =
PH 615 70
![Page 75: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/75.jpg)
ใกลเคยงกบคาจรง x = 2 และ y = 3 โปรแกรมตอไปน คานวณรากของสมการ 2 สมการ โดยวธทาซาจดคงท PROGRAM TWO_EQ_FP CALL TWEQ_ITER(X,Y,IMAX,TOL) STOP END *================================================================= * TWO EQUATION FIXED-POINT ITERATION *================================================================= SUBROUTINE TWEQ_ITER(X,Y,IMAX,TOL) WRITE(6,1) 1 FORMAT(/,17X,'TWO EQUATION FIXED-POINT ITERATION CASE I',/) WRITE(*,*)' ENTER X,Y,IMAX,TOL ' READ(*,*)X,Y,IMAX,TOL WRITE(6,100) 100 FORMAT(/,5X,'ITER',7X,'XR', + 10X,'YR',10X,'ERROR X',5X,'ERROR Y',/) XR=X YR=Y DO 10 I=1,IMAX XROLD=XR YROLD=YR X=XR Y=YR CALL X_NEW(X,Y,XR) X=XR CALL Y_NEW(X,Y,YR) Y=YR
PH 615 71
![Page 76: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/76.jpg)
*------------------------------------------------* * DEFINE ERROR *------------------------------------------------* ERX = ABS((XR-XROLD)*100./XR) ERY = ABS((YR-YROLD)*100./YR) *------------------------------------------------- WRITE(6,200)I,XR,YR,ERX,ERY 200 FORMAT(I7,2X,2F10.4,3X,2E12.3) *-------------------------------------------------* * CHEAK ERROR *-------------------------------------------------* IF (ERX.LT.TOL) THEN WRITE(6,500) GO TO 300 ENDIF IF (ERY.LT.TOL) THEN WRITE(6,600) GO TO 300 ENDIF *-------------------------------------------------- 10 CONTINUE WRITE(6,400) 400 FORMAT(/,5X,'PROGRAM TERMINATE WITH MAXIMUM ITERATION') 500 FORMAT(/,5X,'PROGRAM TERMINATE WITH ERROR X < TOL') 600 FORMAT(/,5X,'PROGRAM TERMINATE WITH ERROR Y < TOL') 300 RETURN END *================================================================= SUBROUTINE X_NEW(X,Y,XR) * *************************** XR=Y+X*X-0.5 * ***************************
PH 615 72
![Page 77: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/77.jpg)
RETURN END SUBROUTINE Y_NEW(X,Y,YR) * *************************** YR=X*X-5.*X*Y * *************************** RETURN END *================================================================= วธนวตน-ราฟสน
จากอนกรมเทยเลอร
( )1 1( ) ( ) ( )i i i i if x f x x x f x+ + ′= + −
1( )( )
ii i
i
f xx xf x+ = −′
ซงกคอสมการของ นวตน-ราฟสน
สาหรบระบบสมการไมเปนเชงเสน
( ) ( )1 1 1i i
i i i i i iu uu u x x y yx y+ + +
∂ ∂= + − + −
∂ ∂
และ
( ) ( )1 1 1i i
i i i i i iv vv v x x y yx y+ + +
∂ ∂= + − + −
∂ ∂
จะได
1 1i i i
i i i i iu u ux y u x y iux y x+ + y
∂ ∂ ∂+ = − + +
∂ ∂ ∂∂∂
PH 615 73
![Page 78: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/78.jpg)
1 1i i i
i i i i iv v vx y v x y ivx y x+ + y
∂ ∂ ∂+ = − + +
∂∂ ∂ ∂ ∂
1
i ii i
i ii i i i
v uu vy yx x u v u v
x y y
+
x
∂ ∂−
∂ ∂= −∂ ∂ ∂ ∂
−∂ ∂ ∂ ∂
1
i ii i
i ii i i i
u vv ux xy y u v u v
x y y x
+
∂ ∂−
∂ ∂= −∂ ∂ ∂ ∂
−∂ ∂ ∂ ∂
ตวอยางท 3.11 จงใชวธ multiple-equation Newton-Raphson หารากของสมการในตวอยางทผานมา คารากทถกตองคอ x = 2 และ y = 3 โดยใชคาเรมตน x = 1.5 และ y = 3.5 วธทา
0 2 2(1.5) 3.5 6.5u x yx
∂= + = + =
∂
0 1.5u xy
∂= =
∂
2 20 3 3(3.5) 36.75v xx
∂= = =
∂
( )( )0 1 6 1 6 1.5 3.5 32.5v xyy
∂= + = + =
∂
หา determinant ของJacobian ของ iteration ครงแรก = 6.5(32.5)-1.5(36.75) = 156.125
คาของฟงกชนหาไดจาก
20 =(1.5) +1.5(3.5)-10=-2.5u
20 =3.5+3(1.5) (3.5) -57=1.625v
แทนลงในสมการ จะได
PH 615 74
![Page 79: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/79.jpg)
( ) ( )2.5 32.5 1.625 1.5
1.52 2.03603156.125
x− −
= − =
( ) ( )( )1.625 6.5 2.5 36.75
3.5 2.84388156.125
y− −
= − =
จะเหนไดวา x,y จะเขาสคาทแทจรง x = 2 และ y = 3
โปรแกรมตอไปน คานวณรากของสมการ 2 สมการ โดยวธนวตน-ราฟสน PROGRAM TWO_EQ_NR CALL TWEQNR(X,Y,IMAX,U,V,DUX,DUY,DVX,DVY) STOP END *================================================================= * TWO EQUATION VERSION OF THE NEWTON-RAPHSON *================================================================= SUBROUTINE TWEQNR(X,Y,IMAX,U,V,DUX,DUY,DVX,DVY) WRITE(6,1) 1 FORMAT(/,17X,'TWO EQUATION VERSION OF THE NEWTON-RAPHSON',/) WRITE(*,*)' ENTER X,Y,IMAX,TOL ' READ(*,*)X,Y,IMAX,TOL WRITE(6,100) 100 FORMAT(/,5X,'ITER',7X,'XR', + 10X,'YR',10X,'ERROR X',5X,'ERROR Y',/) XR=X YR=Y DO 10 I=1,IMAX XROLD=XR YROLD=YR X=XR Y=YR
PH 615 75
![Page 80: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/80.jpg)
CALL FUV(X,Y,U,V) CALL DIFF_UV(X,Y,DUX,DUY,DVX,DVY) * ------------------------------------------- XR=XROLD-((U*DVY-V*DUY)/(DUX*DVY-DUY*DVX)) YR=YROLD-((V*DUX-U*DVX)/(DUX*DVY-DUY*DVX)) * ------------------------------------------- *------------------------------------------------* * DEFINE ERROR *------------------------------------------------* ERX = ABS((XR-XROLD)*100./XR) ERY = ABS((YR-YROLD)*100./YR) *------------------------------------------------- WRITE(6,200)I,XR,YR,ERX,ERY 200 FORMAT(I7,2X,2F12.6,3X,2E12.3) *-------------------------------------------------* * CHEAK ERROR *-------------------------------------------------* IF (ERX.LT.TOL) THEN IF (ERY.LT.TOL) THEN WRITE(6,500) GO TO 300 ENDIF ENDIF *-------------------------------------------------- 10 CONTINUE WRITE(6,400) 400 FORMAT(/,5X,'PROGRAM TERMINATE WITH MAXIMUM ITERATION') 500 FORMAT(/,5X,'PROGRAM TERMINATE WITH ERR X AND ERR Y < TOL') 300 RETURN END *================================================================= SUBROUTINE FUV(X,Y,U,V)
PH 615 76
![Page 81: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/81.jpg)
* ************************ U= X*X-X+Y-0.5 V= X*X-5.*X*Y-Y * ************************ RETURN END *================================================================= SUBROUTINE DIFF_UV(X,Y,DUX,DUY,DVX,DVY) * ************************ DUX= 2.*X-1 DUY= 1. DVX= 2.*X-5.*Y DVY= -5.*X-1. * ************************ RETURN END *=================================================================
PH 615 77
![Page 82: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/82.jpg)
แบบฝกหดบทท 3
1. จงใชวธทาซาจดคงท หารากของสมการ f(x) = sin( ) – x ใชคาเรมตน x0 = 0.5
และ ทาซาหลายๆ ครง จนกระทง εa ≤ 0.01%
x
จงใชวธ ก) ทาซาจดคงท ข) นวตน-ราฟสน หารากของสมการ f(x) = - 0.9x2 +
1.7x + 2.5 โดยใช x0 = 5 และคานวณจงกระทง εa ≤ 0.01%
2.
จงหารากของสมการ f(x) = - 2.0 + 6x - 4x2 + 0.5x3 3. ก) วธกราฟ
วธ นวตน-ราฟสน จนกระทง εa ≤ 0.01% ข)จงหารากของสมการ f(x) = - 11 - 22x + 17x2 - 2.5x3 4.
ก) วธกราฟ ข) วธ Secant
จงหารากของสมการ x33 = 79 โดยวธปรบปรงซแคน โดยท εa = 0. 1% และทา
การเปลยนคา δ เพอดความแตกตาง
5.
ฟงกชน x3 + 2x2 - 5x + 3 ม double root ท x = 1 จงหารากนโดยวธ 6. ก) มาตรฐานนวตน-ราฟสน ปรบปรงนวตน-ราฟสน ทงสองวธ เปรยบเทยบการลเขาสคาราก และใช x0
= 0.2 ข)
7. จงหารากของสมการสองสมการตอไปน โดยวธ ก) ทาซาจดคงท ข) นวตน-ราฟสน
x = y + x2 – 0.5 y = x2 – 5xy
โดยใชคาเรมตน x = y = 1.0
PH 615 78
![Page 83: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/83.jpg)
บทท 4 ระบบสมการ
ในบทนจะกลาวถงการแกระบบสมการ ซงสามารถเขยนเปนรปแบบทวไป คอ
11 1 12 2 1 1
21 1 22 2 2 2
n n
n n
a x a x a x ba x a x a x b
+ + + =+ + + =
K
K
M M 1 1 2 2n n nn na x a x a x b+ + + =K n
4.1 วธกราฟ
พจารณาสมการ a11x1 + a12x2 = b1 a21x1 + a22x2 = b2
แกสมการทงสองหาคา x2 ไดดงน
11 12 1
12 12
a bx xa a
⎛ ⎞= − +⎜ ⎟
⎝ ⎠
21 22 1
22 22
a bx xa a
⎛ ⎞= − +⎜ ⎟
⎝ ⎠
PH 615 83
![Page 84: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/84.jpg)
ตวอยางท 4.1 จงใชวธกราฟแกสมการ 3x1 + 2x2 = 18
- x1 + 2x2 = 2 วธทา
x2 = 23
− x1 + 9
x2 = 21 x1 + 1
นาสมการทงสองไปเขยนกราฟ ทจดตด x1 = 4 และ x2 = 3 ซงเปนคาตอบของสมการ
รป 4.1 วธกราฟ
ตวอยางท 4.2 จงใชวธกราฟแกสมการ 2x2 - 6x2 = -18 - x1 + 8x2 = 40
ตรวจสอบคาตอบโดยแทนคากลบลงในสมการ
PH 615 84
![Page 85: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/85.jpg)
วธทา กาหนดให จากสมการขางตน เขยนใหมไดเปน xx =1 yx =2
1862 −=− yx 1826 1 −−=− xy 331 +=xy ( ) 3
3+=
xxf
⇒ ⇒ ⇒
408 =+− yx 408 2 += xy 582 +=xy ( ) 5
8+=
xxg
นาไปเขยนกราฟ จะได x 50− 49.99−, 50..:=
f x( )x3
⎛⎜⎝
⎞⎟⎠
3+:= g x( )x8
⎛⎜⎝
⎞⎟⎠
5+:=
60 40 20 0 20 40 60
20
10
10
20
f x( )
g x( )
x
จะไดวา 6.91 == xx ( ) ( ) 2.62 === xgxfx เมอนาคา และ ทไดไปแทนลงในสมการโจทย จะได 1x 2x
( ) ( ) 182.666.92 −=−
( ) ( ) 402.686.9 =+−
PH 615 85
![Page 86: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/86.jpg)
ซงทาใหสมการเปนจรง ดงนน 6.91 =x
2.62 =x
เปนคาตอบของระบบสมการ
4.2 วธใช หลกของเครเมอร (Cramer’s Rule)
เปนวธการทสามารถชวยแกสมการทมจานวนนอยไดงาย
[ ]11 12 13
21 22 23
31 32 33
a a aA a a a
a a a
⎛ ⎞⎜ ⎟= ⎜ ⎟⎜ ⎟⎝ ⎠
cocfficientmatrix
11 12 13
21 22 23
31 32 33
a a aD a a a
a a a= Determinant
22 23 21 23 21 2211 12 13
31 3232 33 31 33
a a a a a aa a a
a aa a a a= − +
ตวอยางท 4.3 จงหาคา Determinant ของระบบในตวอยางท 4.1
วธทา
( ) ( )3 2
3 2 2 1 81 2
D = = − −−
=
PH 615 86
![Page 87: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/87.jpg)
หลกของเครเมอร เปนวธการคานวณหาผลเฉลยของระบบสมการทมจานวนไมมาก
นก เชน ถาเรามสมการ 3 สมการและมตวแปรทตองการหาคา 3 คา จะได
= 1x Daabaabaab
33323
23222
13121
= 2xD
abaabaaba
33331
23221
13111
= 3xD
baabaabaa
33231
22221
11211
เมอ D = 333231
232221
131211
aaaaaaaaa
ตวอยางท 4.4 จงอาศยหลกของเครเมอร แกสมการ
1 2 3
1 2 3
1 2 3
0.3 0.52 0.010.5 1.9 0.670.1 0.3 0.5 0.04
x x xx x xx x x
+ + = −+ + =+ + = −
PH 615 87
![Page 88: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/88.jpg)
วธทา
( ) ( ) ( )0.3 0.52 10.5 1 1.9 0.3 0.07 0.52 0.06 1 0.05 0.00220.1 0.3 0.5
D = = − − + = −
ไมเนอร (Minor) คอ
( ) ( )1
1 1.91 0.5 1.9 0.3 0.07
0.3 0.5A = = − = −
( ) ( )2
0.5 1.90.5 0.5 1.9 0.1 0.06
0.1 0.5A = = − =
( ) ( )3
0.5 10.5 0.3 1 0.1 0.05
0.1 0.3A = = − =
1
0.01 0.52 10.67 1 1.90.44 0.3 0.5 0.03178 14.9
0.0022 0.0022x
−
−= =
− −= −
2
0.3 0.01 10.5 0.67 1.90.1 0.44 0.5 0.0649 29.5
0.0022 0.0022x
−
−= =
− −= −
3
0.3 0.52 0.010.5 1 0.670.1 0.3 0.44 0.04356 19.8
0.0022 0.0022x
−
− −= =
− −=
PH 615 88
![Page 89: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/89.jpg)
4.3 วธกาจดตวแปร การแกสมการอกวธหนงกคอ การกาจดตวแปรจากสมการ
11 1 12 2 1
21 1 22 2 2
a x a x ba x a x b
+ =+ =
คณสมการแรกดวย a21 ⇒ a11a21x1 + a12a21x2 = b1a21
คณสมการสองดวย a11 ⇒ a11a21x1 + a12a21x2 = b1a21 แลวลบกนจะได
22 11 2 12 21 2 2 11 1 21a a x a a x b a b a− = − ทาใหเหลอตวแปรเพยงตวเดยว ซงสามารถหาคา ได 2x
11 2 21 12
11 22 12 21
a b a bxa a a a
−=
−
และ 21 1 12 2
111 22 12 21
a b a bxa a a a
−=
−
เทยบกบจากหลกของเครเมอร
1 12
2 22 1 22 12 21
11 12 11 22 12 21
21 22
b ab a b a a bxa a a a a aa a
−= =
−
11 1
21 2 11 1 2 212
11 12 11 22 12 21
21 22
a ba b a b b axa a a a a aa a
−= =
−
จะไดผลเฉลยตรงกนทงสองวธ
PH 615 89
![Page 90: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/90.jpg)
ตวอยางท 4.5 จงใชวธกาจดตวแปร หาคา จากสมการ 1 2,x x
1 2
1 2
3 2 12 2
x xx x
8+ =− + =
วธทา
( ) ( )( ) ( )1
2 18 2 24
3 2 2 1x
−= =
− −
( ) ( )( ) ( )2
3 2 1 183
3 2 2 1x
− −= =
− −
ซงเทากบวธกราฟ
4.4 วธ Naive Gauss Elimination
วธการนใชขยายมาจากวธกาจดตวแปรจากหวขอทผานมา โดยสามารถนาไปใชกบเซทของสมการทมหลายสมการได วธนเหมาะในการคานวณโดยใชคอมพวเตอร จะสามารถหาคาตวแปรไดอยางรวดเรว แตกมขอเสยเมอสมประสทธตงหนงตวใดเปนศนย กจะทาใหเกดการหารดวยศนย ซงจะไมสามารถคานวณตอไปได วธการนจงมชอเรยกวา “naive” Gauss elimination
สมมตวา มเซตของ n สมการ
11 1 12 2 1 1
21 1 22 2 2 2
.... ......................9.12.... .....................9.12
n n
n n
a x a x a x b aa x a x a x b b
+ + + =+ + + =
M M 1 1 2 2 .... .....................9.12n n nn n na x a x a x b c+ + + =
PH 615 90
![Page 91: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/91.jpg)
กาจดตวแปร
คณสมการดวย ⇒ = 11
21
aa
nmxaaaxa
aaxa
11
21212
11
21121 ...+++ 1
11
21 baa
ลบออกจากสมการทสองจะได
21 21 2122 12 2 2 1 2 1
11 11 11
..... n na aa a x a a x ba a
⎛ ⎞ ⎛ ⎞− + + − = −⎜ ⎟ ⎜ ⎟
⎝ ⎠ ⎝ ⎠
a ba
หรอ
22 2 2 2.... n na x a x b ′′ ′+ + =
ทาซาตอไปอกโดยคณดวย แลวจะได 31
11
aa
a11x1 + a12x2 + …+ a1nxn = b1
a/22 x2 +…+ a/
2n xn = b2/
a/32 x2 +…+ a/
3n xn = b3/
M M a/
n2 x2 +…+ ann/ xn = bn
/ ใชวธการเชนน ทาซาหลาย ๆ ครงจะได
a11x1 + a12x2 + …+ a1nxn = b1
a/22 x2 +…+ a/
2n xn = b2/
a/33 x3 +…+ a/
3n xn = b3/
M M a//
n3 x3 +…+ a//nn xn = b//
n
PH 615 91
![Page 92: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/92.jpg)
ทาซาตอไปอกจะได
a11x1 + a12x2 + …+ a1nxn = b1
a/22 x2 +…+ a/
2n xn = b2/
a//33 x3 +…+ a//
3n xn = b// 3
Ο M ( )
nn
nn xa 1− = ( )1−nnb
ซงจะสามารถแทนคายอนกลบเพอหาคา xn กอน
( )
( )
1
1
nn
n nn
bxa
−
−=
แลวจงหาคา xn-1, xn-2, … จนสดทายจะไดคา x1 ตามตองการ สามารถเขยนเปนสมการทวไปได คอ
( ) ( )
( )
1 1
11
ni i
i ijj i
i iij
b ax
a
− −
= +−
−=
∑ jx เมอ 1, 2,....,1i n n= − −
สรป ขนตอนตาง ๆ ไดดงน
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
3
2
1
333231
232221
131211
ccc
aaaaaaaaa
Forward Elimination
⇓
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
′′′
′′′′
3
2
1
33
2322
131211
ccc
aaaaaa
⇓ 3 3 33x c a′′ ′′= ( )3 2 23 3 22x c a x a′ ′= − ′′ Back Substitution ( )1 1 12 2 13 3 11x c a x a x a= − −
PH 615 92
![Page 93: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/93.jpg)
ตวอยางท 4.5 จงใช Gauss Elimination แกสมการ
0.3x1 - 0.1x2 – 0.2x3 = 7.85
0.1x1 + 7x2 – 0.3x3 = - 19.3
0.3x1 - 0.2x2 + 10x3 = 71.4 วธทา คณสมการดวย 0.1/3 แลวหกออกจากสมการจะได
2 37.00333 0.293333 19.5617x x− = −
คณสมการดวย 0.3/3 แลวหกออกจากสมการจะได
0.3x1 - 0.1x2 – 0.2x3 = 7.85
7.00333x2 – 0.293333x3 = -19.5617
- 0.19000x2 + 10.0200x3 = 70.6150 ตอไปทาให ในสมการหมดไป 2x
คณสมการดวย - 0.19000/7.00333 แลวหกออกจากสมการจะได
0.3x1 - 0.1x2 – 0.2x3 = 7.85
7.00333x2 – 0.293333x3 = -19.5617
10.0200x3 = 70.0843
หาคา จากสมการ 3x
370.0843 7.0000310.0200
x = =
แทน ลงไปในสมการ 3x
( )27.00333 0.293333 7.00003 19.5617x − = −
PH 615 93
![Page 94: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/94.jpg)
ดงนน
x2 = ( )00333.7
00003.7293333.05617.19 +−
= - 2.5000 แทน และ ลงในสมการจะได 2x 3x
( ) ( )10.3 0.1 2.50000 0.2 7.00003 7.85x − − − = ดงนน
x1 = ( ) ( )3
00003.72.050000.21.085.7 +−+
= 3.0000 ตวอยางท 4.6 จงเขยนโปรแกรมเพอแกสมการ
2x1 – 6x2 = -18 - x1 + 8x2 = 40
วธทา PROGRAM GAUSS_ELE DIMENSION A(50,50),B(50),X(50) PARAMETER (N=2) DATA ((A(I,J),J=1,N),I=1,N)/2.,-6., + -1.,8./ DATA (B(I),I=1,N) /-18.,40./ CALL GAUSS(N,A,B,X) * --------------------------------- WRITE(*,100)
PH 615 94
![Page 95: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/95.jpg)
100 FORMAT(/, 7X, 'EQUATION NO.', + 7X, 'SOLUTION X', /) DO 20 I=1,N WRITE(*,200) I, X(I) 200 FORMAT(I12, 8X, F16.6) 20 CONTINUE * ---------------------------------- STOP END *--------------------------------------------------------- SUBROUTINE GAUSS(N,A,B,X) DIMENSION A(50,50),B(50),X(50) CALL SCL(N,A,B) DO 100 IP=1,N-1 CALL PIVOT(N,A,B,IP) DO 200 IE=IP+1,N RATIO = A(IE,IP)/A(IP,IP) DO 300 IC=IP+1,N A(IE,IC) = A(IE,IC) - RATIO*A(IP,IC) 300 CONTINUE B(IE)=B(IE)-RATIO*B(IP) 200 CONTINUE DO 400 IE=IP+1,N A(IE,IP)=0. 400 CONTINUE 100 CONTINUE X(N)=B(N)/A(N,N) DO 500 IE=N-1,1,-1 SUM=0.
PH 615 95
![Page 96: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/96.jpg)
DO 600 IC=IE+1,N SUM=SUM+A(IE,IC)*X(IC) 600 CONTINUE X(IE)=(B(IE)-SUM)/A(IE,IE) 500 CONTINUE RETURN END *---------------------------------------------------------- SUBROUTINE SCL(N,A,B) DIMENSION A(50,50),B(50) DO 10 IE=1,N BIG=ABS(A(IE,1)) DO 20 IC=2,N AMAX=ABS(A(IE,IC)) IF(AMAX.GT.BIG) BIG=AMAX 20 CONTINUE DO 30 IC=1,N A(IE,IC)=A(IE,IC)/BIG 30 CONTINUE B(IE)=B(IE)/BIG 10 CONTINUE RETURN END *--------------------------------------------------------- SUBROUTINE PIVOT(N,A,B,IP) DIMENSION A(50,50),B(50) JP=IP BIG=ABS(A(IP,IP)) DO 10 I=IP+1,N
PH 615 96
![Page 97: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/97.jpg)
AMAX=ABS(A(I,IP)) IF(AMAX.GT.BIG) THEN BIG=AMAX JP=I ENDIF 10 CONTINUE IF(JP.NE.IP) THEN DO 20 J=IP,N DUMY = A(JP,J) A(JP,J)= A(IP,J) A(IP,J)= DUMY 20 CONTINUE DUMY = B(JP) B(JP) = B(IP) B(IP) = DUMY ENDIF RETURN END *----------------------------------------------------------- เอาทพทคอ
PH 615 97
![Page 98: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/98.jpg)
4.4.1 ขอเสยของวธ Elimination จะมอย 3 ขอ คอ 1. สมประสทธตวใดตวหนงเปนศนย ทาใหเกดการหารดวยศนย 2. การปดเศษหลาย ๆ ครง ทาใหผลเฉลยคลาดเคลอนไป 3. สมการบางสมการมคาความชนใกลเคยงกน ทาใหไมทราบจดตดทแนนอนได ตวอยางท 4.7 จงแกสมการ
1 2
1 2
2 101.1 2 10.4x x
x x+ =+ =
แลวเปลยนคาสมประสทธของ ในสมการสองเปน 1.05 แลวแกสมการอกครง 1x
วธทา
12(10) 2(10.4) 41(2) 2(1.1)
x −= =
−
21(10.4) 1.1(10) 3
1(2) 2(1.1)x −= =
−
เมอเปลยน จาก 1.1 เปน 1.05 จะได 21a
12(10) 2(10.4) 81(2) 2(1.05)
x −= =
−
21(10.4) 1.1(10) 11(2) 2(1.05)
x −= =
−
จะเหนไดวา a21 เปลยนไปเพยง 0.05 เทานน แตผลเฉลยมคาแตกตางกนมาก
เนองจากวา ทงสองสมการมความชนใกลเคยงกนมาก
PH 615 98
![Page 99: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/99.jpg)
พจารณาสมการ
11 1 12 2 1
21 1 22 2 2
11 11 1
12 12
21 22 2
22 22
a x a x ba x a x b
a bx xa aa bx xa a
+ =+ =
= − +
= − +
ถาความชนเกอบจะมคาเทากน
11 21
12 22
a aa a
≅
หรอ
11 22 12 21a a a a≅
11 22 12 21 0a a a a− = ซง เปน Determinant ของระบบสมการเมอนาไปหารเพอหาคาผลเฉลย จะทาใหผลเฉลยมคาเปลยนไปมาก
11 22 12 21a a a a−
ตวอยางท 4.8 ผลของการคณดวยคาคงท เพอทาใหคา determinant มคามากขน จงหา Determinant
ก) 1 2
1 2
3 2 12 2
x xx x+ = 8
− + =
ข) 1 2
1 2
2 101.1 2 10.4x x
x x+ =+ =
ค) ทาซาขอ ข) โดยคณสมการดวย 10
PH 615 99
![Page 100: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/100.jpg)
วธทา ก) D = 3(2) – 2(-1) = 8
มคามากกวาศนย ใชไดด
ข) D = 1(2) – 2(1.1) = -0.2 มคาเขาใกลศนย ทาใหผลเฉลยคลาดเคลอนไดมาก
ค) คณสมการดวย 10 (ผลเฉลยเทาเดม) 1 2
1 2
10 20 10011 20 104
x xx x+ =+ =
( ) ( )10 20 20 11 20D = − = −
มคามาก โดยทผลเฉลยมคาเหมอนเดม จงเปนวธการทจะทาให D มคามากขน
ตวอยางท 4.9 ให scale สมการในตวอยาง 4.8 โดยสมประสทธมคามากทสดเทากบ 1 แลวคานวณหา Determinant วธทา ก)
1 2
1 2
0.667 60.5 1
x xx x
+ =− + =
( ) ( )1 1 0.667 0.5 1.333D = − − =
ข) 1 2
1 2
0.5 50.55 5.2
x xx x+ =+ =
( ) ( )0.5 1 1 0.55 0.05D = − = −
PH 615 100
![Page 101: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/101.jpg)
ค) scaling เหมอนขอ ข) 0.05D = − เหมอนกน
4.4.2 วธแกขอเสยของวธ Elimination มอย 2 วธ คอ
1. เพมทศนยมในการคานวณ 2. สลบแถว หรอคอลมน
Partial → สลบแถว
Complete → สลบแถวและคอลมน ตวอยางท 4.10 อาศย Gauss elimination แกสมการ
1 2
1 2
0.0003 3.0000 2.00011.0000 1.0000 1.0000
x xx x+ =+ =
เนองจาก มคาเขาใกลศนย ใหสลบลาดบของสมการ ผลเฉลยทแทจรง คอ
และ 11 0.0003a =
11
3x = 22
3x =
วธทา คณสมการแรกดวย จะได 1
0.0003
1 210.000 6667x x+ =
ทาให หมดจากสมการสอง 1x
2
2
9999 666623
x
x
− = −
=
แทน กลบเขาไปในสมการแรกเพอหา 2x 1x
PH 615 101
![Page 102: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/102.jpg)
1
22.0001 33
0.0003x
⎛ ⎞− ⎜ ⎟⎝ ⎠=
Significant Figures 2x 1x
Absolute Value of Percent relative
Error for 1x 3 4 5 6 7
0.667 0.6667 0.66667 0.666667 0.6666667
-3.33 0.0000 0.3000 0.330000 0.3330000
1099 100 10 1 0.1
สลบ order ของสมการ ซงจะทาใหไดผลเฉลยของสมการทมความแนนอนกวา
1 2
1 2
1.0000 1.0000 1.00000.0003 3.0000 2.0001
x xx x+ =+ =
จะได 223
x =
และ 1
213
1x
⎛ ⎞− ⎜ ⎟⎝ ⎠=
PH 615 102
![Page 103: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/103.jpg)
Significant Figures 2x 1x
Absolute Value of Percent relative
Error for 1x 3 4 5 6 7
0.667 0.6667 0.66667 0.666667 0.6666667
0.333 0.3333 0.33333 0.333333 0.3333333
0.1 0.01 0.001 0.0001 0.00001
จะเหนไดวา การสลบ order จะใหผลทนาพงพอใจมากกวา
ตวอยางท 4.11 Scaling
ก) แกสมการโดยใช Gauss elimination และ pivoting 1 2
1 2
2 100,000 100,0002
x xx x
+ =+ =
ข) แกสมการโดยการ Scaling ใหสมประสทธสงสดของแตละแถว = 1 ค) อาศยการ Scaling สมประสทธ เพอทจะพจารณาวา การ pivot จาเปนหรอไม
อยางไรกตามใหแกสมการโดยอาศยสมประสทธคาเดม ใชเลขนยสาคญ 3 หลกคาตอบทถกตอง คอ , หรอถาใชเลข 3 หลก 1 1.00002x = 2 0.99998x = 1 2 1.00x x= =
วธทา
ก) โดยไมใชการ Scale 1 2
2
2 100,000 100,00050,000 50,000x x
x+ =
− = −
ซงจะได , คา มError 100% เนองจากการปดทศนยม 1 1.00x = 2 0.00x = 1x
PH 615 103
![Page 104: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/104.jpg)
Scaling 1 2
1 2
0.00002 12x x
x x+ =
+ =
ข)
Pivot แถวแรก 1 2
1 2
20.00002 1x x
x x+ =
+ =
จาก Forward elimination ได
1 2
2
21.00
x xx+ ==
จะได ซงตรงกบคาทแทจรง 1 2 1x x= =
ค) สมประสทธของการ Scale บงชวาจาเปนทจะตองใช Pivot เราจะทาการ Pivot
แตใช คาสมประสทธเดม 1 2
1 2
22 100,000 100,000x xx x+ =+ =
จาก Forward elimination ได 1 2
2
2100,000 100,000x x
x+ =
=
ซงจะไดวา 1 2 1x x= =
ดงนนการ Scale เปนประโยชนตอการพจารณาวาPivotจาเปนหรอไม แตไมจาเปนท
จะตอง Scale เพอใหไดคาตอบทถกตอง ตวอยางท 4.12 จงแกสมการตอไปน
0.77x1 + x2 = 14.25 1.2x1 + 1.7x2 = 20 ก) โดยวธกราฟ ข) จากกราฟทได จงพจารณาภาวะของระบบสมการ
ค) จงเขยนโปรแกรมโดยใชวธ Gauss elimination เพอแกสมการน
PH 615 104
![Page 105: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/105.jpg)
วธทา ก) กาหนดให , จากสมการขางตน เขยนใหมไดเปน xx =1 yx =2
25.1477.0 =+ yx 25.1477.01 +−= xy ( ) 25.1477.0 +−= xxf
⇒ ⇒
207.12.1 =+ yx 7.1
202.12
+−=
xy ( )7.1
202.1 +−=
xxg
นาไปเขยนกราฟ จะได x 50− 49.99−, 50..:=
f x( ) 0.77− x 14.25+:= g x( )1.2− x 20+( )
1.7:=
60 40 20 0 20 40 60
40
20
20
40
60
f x( )
g x( )
x
PH 615 105
![Page 106: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/106.jpg)
ข) จะไดวา
761482.381 ≅= xx ( ) ( ) 596339.152 −≅== xgxfx
เนองจากวากราฟทงสองมความชนใกลเคยงกน จงทาใหการหาจดตดจากการ
คาดคะเนทาไดยาก คารากของระบบสมการจงเปนเพยงคาประมาณหยาบๆ ค) PROGRAM GAUSS DIMENSION A(50,50),B(50),X(50) PARAMETER (N=2) DATA ((A(I,J),J=1,N),I=1,N)/0.77,1., + 1.2,1.7/ DATA (B(I),I=1,N) /14.25,20./ CALL GAUSS(N,A,B,X) * --------------------------------- WRITE(*,100) 100 FORMAT(/, 7X, 'EQUATION NO.', + 7X, 'SOLUTION X', /) DO 20 I=1,N WRITE(*,200) I, X(I) 200 FORMAT(I12, 8X, F16.6) 20 CONTINUE * ---------------------------------- STOP END *--------------------------------------------------------- SUBROUTINE GAUSS(N,A,B,X) DIMENSION A(50,50),B(50),X(50)
PH 615 106
![Page 107: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/107.jpg)
CALL SCL(N,A,B) DO 100 IP=1,N-1 CALL PIVOT(N,A,B,IP) DO 200 IE=IP+1,N RATIO = A(IE,IP)/A(IP,IP) DO 300 IC=IP+1,N A(IE,IC) = A(IE,IC) - RATIO*A(IP,IC) 300 CONTINUE B(IE)=B(IE)-RATIO*B(IP) 200 CONTINUE DO 400 IE=IP+1,N A(IE,IP)=0. 400 CONTINUE 100 CONTINUE X(N)=B(N)/A(N,N) DO 500 IE=N-1,1,-1 SUM=0. DO 600 IC=IE+1,N SUM=SUM+A(IE,IC)*X(IC) 600 CONTINUE X(IE)=(B(IE)-SUM)/A(IE,IE) 500 CONTINUE RETURN END *---------------------------------------------------------- SUBROUTINE SCL(N,A,B) DIMENSION A(50,50),B(50) DO 10 IE=1,N BIG=ABS(A(IE,1))
PH 615 107
![Page 108: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/108.jpg)
DO 20 IC=2,N AMAX=ABS(A(IE,IC)) IF(AMAX.GT.BIG) BIG=AMAX 20 CONTINUE DO 30 IC=1,N A(IE,IC)=A(IE,IC)/BIG 30 CONTINUE B(IE)=B(IE)/BIG 10 CONTINUE RETURN END *--------------------------------------------------------- SUBROUTINE PIVOT(N,A,B,IP) DIMENSION A(50,50),B(50) JP=IP BIG=ABS(A(IP,IP)) DO 10 I=IP+1,N AMAX=ABS(A(I,IP)) IF(AMAX.GT.BIG) THEN BIG=AMAX JP=I ENDIF 10 CONTINUE IF(JP.NE.IP) THEN DO 20 J=IP,N DUMY = A(JP,J) A(JP,J)= A(IP,J) A(IP,J)= DUMY 20 CONTINUE
PH 615 108
![Page 109: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/109.jpg)
DUMY = B(JP) B(JP) = B(IP) B(IP) = DUMY ENDIF RETURN END *----------------------------------------------------------- ตวอยางท 4.13 จงเขยนโปรแกรมภาษาฟอรแทรนโดยใชวธ Gauss elimination พรอมทง partial pivoting เพอแกสมการตอไปน (ซงมคาตอบคอ x1 = x2 = x3 = 1)
x1 + x2 – x3 = 1
6x1 + 2x2 + 2x3 = 10
-3x1 + 4x2 + x3 = 2 วธทา PROGRAM GAUSS DIMENSION A(50,50),B(50),X(50) PARAMETER (N=3) DATA ((A(I,J),J=1,N),I=1,N)/1.,1.,-1., + 6.,2.,2., + -3.,4.,1./ DATA (B(I),I=1,N) /1.,10.,2./ CALL GAUSS(N,A,B,X) * --------------------------------- WRITE(*,100) 100 FORMAT(/, 7X, 'EQUATION NO.', + 7X, 'SOLUTION X', /) DO 20 I=1,N WRITE(*,200) I, X(I)
PH 615 109
![Page 110: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/110.jpg)
200 FORMAT(I12, 8X, F16.6) 20 CONTINUE * ---------------------------------- STOP END *--------------------------------------------------------- SUBROUTINE GAUSS(N,A,B,X) DIMENSION A(50,50),B(50),X(50) CALL SCL(N,A,B) DO 100 IP=1,N-1 CALL PIVOT(N,A,B,IP) DO 200 IE=IP+1,N RATIO = A(IE,IP)/A(IP,IP) DO 300 IC=IP+1,N A(IE,IC) = A(IE,IC) - RATIO*A(IP,IC) 300 CONTINUE B(IE)=B(IE)-RATIO*B(IP) 200 CONTINUE DO 400 IE=IP+1,N A(IE,IP)=0. 400 CONTINUE 100 CONTINUE X(N)=B(N)/A(N,N) DO 500 IE=N-1,1,-1 SUM=0. DO 600 IC=IE+1,N SUM=SUM+A(IE,IC)*X(IC) 600 CONTINUE X(IE)=(B(IE)-SUM)/A(IE,IE)
PH 615 110
![Page 111: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/111.jpg)
500 CONTINUE RETURN END *---------------------------------------------------------- SUBROUTINE SCL(N,A,B) DIMENSION A(50,50),B(50) DO 10 IE=1,N BIG=ABS(A(IE,1)) DO 20 IC=2,N AMAX=ABS(A(IE,IC)) IF(AMAX.GT.BIG) BIG=AMAX 20 CONTINUE DO 30 IC=1,N A(IE,IC)=A(IE,IC)/BIG 30 CONTINUE B(IE)=B(IE)/BIG 10 CONTINUE RETURN END *--------------------------------------------------------- SUBROUTINE PIVOT(N,A,B,IP) DIMENSION A(50,50),B(50) JP=IP BIG=ABS(A(IP,IP)) DO 10 I=IP+1,N AMAX=ABS(A(I,IP)) IF(AMAX.GT.BIG) THEN BIG=AMAX JP=I
PH 615 111
![Page 112: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/112.jpg)
ENDIF 10 CONTINUE IF(JP.NE.IP) THEN DO 20 J=IP,N DUMY = A(JP,J) A(JP,J)= A(IP,J) A(IP,J)= DUMY 20 CONTINUE DUMY = B(JP) B(JP) = B(IP) B(IP) = DUMY ENDIF RETURN END *----------------------------------------------------------- ตวอยางท 4.14 จงเขยนโปรแกรมเพอแกสมการ
0.5x1 – x2 = -9.5 0.26 x1 - 0.5x2 = -4.7
วธทา อาศยโปรแกรมในตวอยาง 4.13 โดยเปลยนระบบสมการ เอาทพท คอ
PH 615 112
![Page 113: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/113.jpg)
ตวอยางท 4.5 จงเขยนโปรแกรมโดยวธ naive – Gauss elimination เพอแกสมการ
-12x1 + x2 – x3 = -20
-2x1 - 4x2 + 2x3 = 10
x1 + 2x2 + 2x3 = 25
วธทา อาศยโปรแกรมในตวอยาง 4.13 โดยเปลยนระบบสมการ PROGRAM GAUSS_ELE DIMENSION A(50,50),B(50),X(50) PARAMETER (N=3) DATA ((A(I,J),J=1,N),I=1,N)/-12.,1.,-1., + -2.,-4.,2., + 1.,2.,2./ DATA (B(I),I=1,N) /-20.,10.,25./ CALL GAUSS(N,A,B,X)
• ---------------------------------
• เอาทพทคอ ดงนน x1 = 1, x2 = 2 และ x3 = 10
PH 615 113
![Page 114: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/114.jpg)
ตวอยางท 4.16 จงเขยนโปรแกรมโยวธ naive – Gauss elimination เพอแกสมการ
4x1 + x2 – x3 = -2
5x1 + x2 + 2x3 = 4
6x1 + x2 + x3 = 6
วธทา อาศยโปรแกรมในตวอยาง 4.13 โดยเปลยนระบบสมการ PROGRAM GAUSS_ELE DIMENSION A(50,50),B(50),X(50) PARAMETER (N=3) DATA ((A(I,J),J=1,N),I=1,N)/4.,1.,-1., + 5.,1.,2., + 6.,1.,1./ DATA (B(I),I=1,N) /-2.,4.,6./ CALL GAUSS(N,A,B,X) * --------------------------------- เอาทพทคอ ดงนน x1 = 3, x2 = -13, x3 = 1
PH 615 114
![Page 115: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/115.jpg)
4.5 วธเกาส-จอรแดน (Gauss – Jordan) วธการของเกาส-จอรแดนจะคลายกบวธการของเกาส ขอแตกตางอยตรงทวาหลงจากการกาจดตวแปรแลว เมทรกซทไดจะเปน identity matrix ตวอยางท 4.17 ใชเทคนคเกาส-จอรแดนแกสมการ
1 2 3
1 2 3
1 2 3
3 0.1 0.2 7.850.1 7 0.3 19.30.3 0.2 10 71.4
x x xx x xx x x
− − =+ − = −− + =
วธทา
3 0.1 0.20.1 7 0.3 19.30.3 0.2 10
− −⎡ ⎤⎢ ⎥− − −⎢ ⎥⎢ ⎥−⎣ ⎦
Normalize แถวแรกดวยการหารดวย 3
1 0.0333333 0.0666670.1 7 0.3 19.30.3 0.2 10
− −⎡ ⎤⎢ ⎥− − −⎢ ⎥⎢ ⎥−⎣ ⎦
ทาให หมดจากสมการสอง โดยการหก 0.1 เทาของสมการหนง จากสมการสองและเชนเดยวกน หก 0.3 เทาของแถวแรก จากแถว 3 จะทาให ในแถว 3 หมดไป
1x
1x
1 0.0333333 0.0666670 7.00333 0.293333 19.56170 0.190000 10.0200
− −⎡ ⎤⎢ ⎥− − −⎢ ⎥⎢ ⎥−⎣ ⎦
PH 615 115
![Page 116: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/116.jpg)
ตอไป Normalize แถวสองโดยการหารดวย 7.00333
1 0.0333333 0.0666670 1 0.0418848 2.793200 0.190000 10.0200
− −⎡ ⎤⎢ ⎥− − −⎢ ⎥⎢ ⎥−⎣ ⎦
ทาใหเทอม หมดจากสมการหนงและสามจะได 2x
1 0 0.06806290 1 0.0418848 2.793200 0 10.01200
−⎡ ⎤⎢ ⎥− − −⎢ ⎥⎢ ⎥⎣ ⎦
ตอไป Normalize แถวสามโดยการหารดวย 10.01200
1 0 0.06806290 1 0.0418848 2.793200 0 1
−⎡ ⎤⎢ ⎥− − −⎢ ⎥⎢ ⎥⎣ ⎦
ทาใหเทอม หมดจากสมการหนงและสองจะได 3x
1 0 00 1 0 2.500010 0 1
⎡ ⎤⎢ ⎥− −⎢ ⎥⎢ ⎥⎣ ⎦
PH 615 116
![Page 117: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/117.jpg)
สรป ขนตอนของวธเกาส-จอรแดน
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
3
2
1
333231
232221
131211
ccc
aaaaaaaaa
( )
( )
( )⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
n
n
n
ccc
3
2
1
100010001
x1 = ( )nc1 x2 = ( )nc2 x3 = ( )nc3
PH 615 117
![Page 118: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/118.jpg)
แบบฝกหดบทท 4
1. จงแกสมการตอไปน โดยวธกราฟ
0.5x1 – x2 = -9.5
0.26x1 – 0.5x2 = -4.7 2. จงแกสมการตอไปน โดยวธกาจดตวแปร
0.77x1 + x2 = 14.25
1.2x1 + 1.7x2 = 20 3. กาหนดเซทของสมการ
2x2 + 5x3 = 1
2x1 + x2 + 2x3 = 1
3x1 + x2 = 2 ก) จงหา determinant จงใชหลกของเครเมอร หาคา xi ข) แทนคา xi กลบลงในสมการ เพอตรวจสอบคาตอบ ค)
4. จงแกสมการตอไปน 4x1 + x2 – x3 = -2
5x1 + x2 + 2x3 = 4
6x1 + x2 + x3 = 6 ก) โดยวธกาจดเกาส ใชวธสลบแถว (partial pivoting) ข) เขยนโปรแกรม
PH 615 118
![Page 119: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/119.jpg)
บทท 5 การสรางเมทรกซ LU และอนเวรสของเมทรกซ
ในบทนจะกลาวถงการสรางเมทรกซ LU และการหาอนเวรสของเมทรกซ ในบทนจะกลาวถงการสรางเมทรกซ LU และการหาอนเวรสของเมทรกซ
5.1 LU ดคอมโพซชน ( LU decomposition) 5.1 LU ดคอมโพซชน ( LU decomposition)
ชวยการคานวณเกยวกบเมทรกซใหมความรวดเรวขน เรมตนจากการนาวธ Gauss elimination มาแกสมการของระบบ
ชวยการคานวณเกยวกบเมทรกซใหมความรวดเรวขน เรมตนจากการนาวธ Gauss elimination มาแกสมการของระบบ
[ ]{ }XA = { }B จดรปสมการเปน
[ ]{ } { }BXA − = 0
สมมตวาสามารถเขยนไดเปน
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧=
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
3
2
1
3
2
1
33
2322
131211
000
ddd
xxx
uuuuuu
ซงกคอ [ ]{ } { }DXA − = 0 สมมตวาม lower diagonal matrix
PH 615 119
![Page 120: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/120.jpg)
[ ]⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
101001
3231
21
lllL
ซงมคณสมบตวา [ ] [ ]{ } { }{ } [ ]{ } { }BXADXUL −=− จะได [ ][ ] [ ]AUL = และ [ ]{ } { }BDL =
สรป วธ LU ดคอมโพซชนเปนขนตอน คอ
[ ]{ } { }BXA = (a) Decomposition
[ ] [ ]LU [ ]{ } { }BDL = (b) Forward
[ ]D
[ ][ ] { }DXU = (c) Backward
[ ]X
PH 615 120
![Page 121: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/121.jpg)
สาหรบ upper matrix
[ ]⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
′′′′=
33
2322
131211
000
aaaaaa
U
หลงจากการ eliminate จะได matrix [ เปน ]A
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
′′′′
333231
232221
131211
affaafaaa
เมอ
223232
113131
112121
///
aafaafaaf
′′===
matrix นจะอยในรป LU decomposition [ ] [ ][ ]ULA → เมอ
[ ] ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
′′′′=
33
2322
131211
000
aaaaaa
U และ [ ] ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
101001
3231
21
fffL
ตวอยางท 5.1 จงแบงเมทรกซของสมการตอไปนเปนเมทรกซ L และเมทรกซ U โดยอาศย Gauss Elimination
0.3x1 – 0.1x2 – 0.2x3 = 7.85
0.1x1 + 7x2 – 0.3x3 = - 19.3
0.3x1 – 0.2x2 + 10x3 = 71.4
PH 615 121
![Page 122: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/122.jpg)
วธทา
[ ] ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−−
=102.03.0
3.071.02.01.03
A
หลงจาก Forward Elimination จะได
[ ]⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−
−−=
0120.1000293333.000333.70
2.01.03U
เมอ , 03333333.031.0
21 ==f 10000000.033.0
31 ==f
0271300.000333.7
19.032 −=
−=f
จะได
[ ]⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−=
10271300.010000000.00103333333.0001
L
ดงนน LU decomposition คอ [ ] [ ][ ]ULA =
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−
−−
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−=
0120.1000293333.000333.70
2.01.03
10271300.010000000.00103333333.0001
ซงเมอคณเมทรกซทงสองจะได
PH 615 122
![Page 123: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/123.jpg)
[ ] [ ]⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−−
=99996.92.03.0
3.070999999.02.01.03
UL
ซงตรงกบ [ ] A
ตวอยางท 5.2 จงแกสมการในตวอยางท 5.1 โดยวธสรางเมทรกซ LU และเขยนโปรแกรมเพอแกสมการน วธทา
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧−=
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−−
4.713.19
85.7
102.03.03.071.02.01.03
3
2
1
xxx
จาก Gauss Elimination จะได
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧−=
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−
−−
0843.705617.1985.7
0120.102.03.0293333.000333.71.0
2.01.03
3
2
1
xxx
อาศยสมการจะได
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧−=
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
− 4.713.19
85.7
10271300.0100000.0010333333.0001
3
2
1
ddd
คณออกมาได 85.71 =d 3.190333333.0 21 −=+ dd 4.7102713.01.0 321 =+− ddd
PH 615 123
![Page 124: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/124.jpg)
จะได 85.71 =d
( ) 5617.1985.70333333.03.192 −=−−=d ( ) ( ) 0843.705617.1902713.085.71.04.713 =−+−=d ดงนน
{ } ⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧−=
0843.705617.1985.7
D
แทนลงในสมการ [ ] { } { }DXU =
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧−=
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−
−−
0843.705617.1985.7
0120.1000293333.000333.70
2.01.03
3
2
1
xxx
อาศย Back substitution จะได
{ }⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧−=00003.7
5.23
x
PH 615 124
![Page 125: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/125.jpg)
โปรแกรมทใชในการแกสมการโดยวธ LU ดคอมโพซชน คอ PROGRAM LUDCOM DIMENSION A(50,50),B(50),X(50) DIMENSION AL(50,50),AU(50,50),Y(50) PARAMETER (N=3) DATA ((A(I,J),J=1,N),I=1,N)/3.,-0.1,-0.2, + 0.1,7.,-0.3, + 0.3,-0.2,10./ DATA (B(I),I=1,N) /7.85,-19.3,71.4/ CALL LU(N,A,B,X,AL,AU,Y) WRITE(*,100) 100 FORMAT(/,7X,'EQUATION NO.', + 7X,'SOLUTION X',/) DO 10 I=1,N WRITE(*,200) I,X(I) 200 FORMAT(I12,8X,F16.6) 10 CONTINUE STOP END *----------------------------------------------------- SUBROUTINE LU(N,A,B,X,AL,AU,Y) DIMENSION A(50,50),B(50),X(50) DIMENSION AL(50,50),AU(50,50),Y(50) DO 10 I=1,50 DO 10 J=1,50 AL(I,J)=0. AU(I,J)=0. 10 CONTINUE
PH 615 125
![Page 126: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/126.jpg)
DO 20 I=1,N AL(I,1)=A(I,1) 20 CONTINUE DO 30 J=2,N AU(1,J)=A(1,J)/AL(1,1) 30 CONTINUE DO 40 J=2,N-1 DO 50 I=J,N SUM=0. DO 60 K=1,J-1 SUM=SUM+AL(I,K)*AU(K,J) 60 CONTINUE AL(I,J)=A(I,J)-SUM 50 CONTINUE DO 70 K=J+1,N SUM=0. DO 80 I=1,J-1 SUM=SUM+AL(J,I)*AU(I,K) 80 CONTINUE AU(J,K)=(A(J,K)-SUM)/AL(J,J) 70 CONTINUE 40 CONTINUE SUM=0. DO 90 K=1,N-1 SUM=SUM+AL(N,K)*AU(K,N) 90 CONTINUE AL(N,N)=A(N,N)-SUM Y(1)=B(1)/AL(1,1) DO 100 I=2,N
PH 615 126
![Page 127: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/127.jpg)
SUM=0. DO 110 J=1,I-1 SUM=SUM+AL(I,J)*Y(J) 110 CONTINUE Y(I)=(B(I)-SUM)/AL(I,I) 100 CONTINUE X(N)=Y(N) DO 120 I=N-1,1,-1 SUM=0. DO 130 J=I+1,N SUM=SUM+AU(I,J)*X(J) 130 CONTINUE X(I)=Y(I)-SUM 120 CONTINUE RETURN END *---------------------------------------------- เอาทพทจากสมการคอ จะได x1 = 3, x2 = -2.5, x3 = 7
PH 615 127
![Page 128: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/128.jpg)
ตวอยางท 5.3 จงแกระบบสมการตอไปน โดยวธ LU ดคอมโพซชน
7x1 + 2x2 – 3x3 = - 12
2x1 + 5x2 – 3x3 = - 20
x1 – x2 – 6x3 = - 26 วธทา ใชโปรแกรมแกระบบสมการขางบน โดยเปลยนระบบสมการ PROGRAM LUDCOM DIMENSION A(50,50),B(50),X(50) DIMENSION AL(50,50),AU(50,50),Y(50) PARAMETER (N=3) DATA ((A(I,J),J=1,N),I=1,N)/7.,2.,-3., + 2.,5.,-3., + 1.,-1.,-6./ DATA (B(I),I=1,N) /-12.,-20.,-26./ เอาทพทจากโปรแกรม คอ x1 = 0.718750, x2 = - 1.468750, x3 = 4.697917
PH 615 128
![Page 129: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/129.jpg)
ตวอยางท 5.4 ทาเชนเดยวกบตวอยาง 5.2 แตเปลยน {B} เปน {B}T = [12 18 -6] วธทา โปรแกรมเชนเดยวกบในตวอยาง 5.2 แตเปลยนคา {B} เปน [12 18 -6] ซงจะไดเอาทพท คอ x1 = 4.o38069, x2 = 2.484966, x3 = -0.671443
5.2 อนเวรสของเมทรกซ
[ ][ ] [ ] [ ] [ ]111 == −− AAAA ตวอยางท 5.5 อาศย LU decomposition หา matrix inverse สาหรบระบบในตวอยางท 5.1
[ ]⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−−
=102.03.0
3.071.02.01.03
A
ซงม lower และ upper triangular matrixes
[ ]⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−
−−=
0120.1000293333.000333.70
2.01.03U
PH 615 129
![Page 130: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/130.jpg)
[ ]⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−=
10271300.01000000.0010333333.0001
L
วธทา
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧=
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
− 001
10271300.01000000.0010333333.0001
3
2
1
ddd
อาศย forward substitution จะได { } [ ]1009.003333.01 −−=TD ใชเปนดานขวาของสมการ
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧
−−=
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−
−−
1009.003333.01
0120.1000293333.000333.70
2.01.03
3
2
1
xxx
อาศย Back substitution จะได { } [ ]01008.000518.033249.0 −−=TX ดงนนเฉพาะ column แรก
[ ] ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−=−
0001008.00000518.00033249.0
1A
PH 615 130
![Page 131: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/131.jpg)
สาหรบ column ทสอง
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧=
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
− 010
10271300.0100000.0010333333.0001
3
2
1
ddd
หาคา { ไดแทนลงในสมการจะได }D
{ } [ ]00271.0142903.0004944.0=TX เปน column ทสองของ matrix
[ ] ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−=−
000271.001008.00142903.000518.00004944.033249.0
1A
เชนเดยวกน อาศย { } จะได [ ]100=TB
{ } [ ]09988.0004183.0006798.0=TX
[ ]⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−=−
09988.000271.001008.0004183.0142903.000518.0006798.0004944.033249.0
1A
ตรวจสอบคาตอบได โดยการพสจน [ ][ ] [ ]IAA =−1
PH 615 131
![Page 132: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/132.jpg)
ตวอยางท 5.6 จงหาอนเวรสของเมทรกซ
[A] = ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−−
611352327
วธทา โปแกรมทใชในการคานวณหาอนเวรสของเมทรกส คอ PROGRAM INVERSE PARAMETER (N=3) REAL A(N,N) DATA ((A(I,J),J=1,N),I=1,N)/7.,2.,-3., + 2.,5.,-3., + 1.,-1.0,-6.0/ CALL MINV(A,AINV,N,N,DET) STOP END *=========================================== SUBROUTINE MINV(A,AINV,ND,N,DET) INTEGER ND,N,IPASS REAL A(ND,ND),AINV(ND,ND),DET,FCTR *------ DET = 1.0 DO 1 I = 1,N DO 1 J = 1,N IF(I.EQ.J)THEN AINV(I,J) = 1.0 ELSE AINV(I,J) = 0.0
PH 615 132
![Page 133: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/133.jpg)
ENDIF 1 CONTINUE *-------- DO 7 IPASS = 1,N IMX = IPASS DO 2 IROW = IPASS,N IF(ABS(A(IROW,IPASS)).GT.ABS(A(IMX,IPASS)))THEN IMAX = IROW ENDIF 2 CONTINUE *----------- IF(IMX.NE.IPASS)THEN DO 3 ICOL = 1,N TEMP = AINV(IPASS,ICOL) AINV(IPASS,ICOL)= AINV(IMX,ICOL) AINV(IMX,ICOL) = TEMP IF(ICOL.GE.IPASS)THEN TEMP = A(IPASS,ICOL) A(IPASS,ICOL)= A(IMX,ICOL) A(IMX,ICOL) = TEMP ENDIF 3 CONTINUE ENDIF *--------------- PIVOT = A(IPASS,IPASS) DET = DET*PIVOT IF(DET.EQ.0.)THEN WRITE(*,10) PAUSE 'FATAL ERROR IN MINV - ZERO DETERMINANT'
PH 615 133
![Page 134: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/134.jpg)
RETURN ENDIF *-------------- DO 4 ICOL = 1,N AINV(IPASS,ICOL) = AINV(IPASS,ICOL)/PIVOT IF(ICOL.GE.IPASS)THEN A(IPASS,ICOL) = A(IPASS,ICOL)/PIVOT ENDIF 4 CONTINUE *-------------- DO 6 IROW = 1,N IF(IROW.NE.IPASS)THEN FCTR = A(IROW,IPASS) DO 5 ICOL = 1,N AINV(IROW,ICOL) = AINV(IROW,ICOL)- + FCTR*AINV(IPASS,ICOL) A(IROW,ICOL) = A(IROW,ICOL)-FCTR*A(IPASS,ICOL) 5 CONTINUE ENDIF 6 CONTINUE 7 CONTINUE PRINT*,AINV RETURN *============ 10 FORMAT(/,T5,'==============ERROR IN MINV==============',/, + T5,'| THE MATRIX IS SINGULAR |',/, + T5,'============PROGRAM TERMINATED===========') END *--------------------------------------------------------------------------------------------
PH 615 134
![Page 135: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/135.jpg)
เอาทพทจากโปรแกรม คอ ตวอยางท 5.7 จงหาอนเวรสของเมทรกซ
[A] = ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−−
611352327
วธทา โปรแกรมอกโปรแกรมหนงทใชในการคานวณ โดยมการปรบปรงในสวนของเอาทพทคอ PROGRAM INV_M PARAMETER (N=3) REAL A(N,N),B(N,N),C(N,N) DATA ((A(I,J),J=1,N),I=1,N)/7.,2.,-3., + 2.,5.,-3., + 1.,-1.,-6./ CALL PRINT(A,N,N) CALL MINV(A,B,N,N,DET) CALL PRINT(B,N,N) STOP END
PH 615 135
![Page 136: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/136.jpg)
*================================================================= SUBROUTINE PRINT(A,N,ND) REAL A(ND,ND) CHARACTER DASH*8 DATA DASH/'-------|'/ WRITE(*,*) WRITE(*,10) ( J,J=1,N) WRITE(*,11) ( DASH,J=1,N) DO 1 I=1,N-1 WRITE(*,12)I,(A(I,J),J=1,N) 1 CONTINUE WRITE(*,12)N,(A(N,J),J=1,N) WRITE(*,11) ( DASH,J=1,N) 10 FORMAT( T5,'|',10(2X,I3,2X,'|')) 11 FORMAT( T5,'|',10A8) 12 FORMAT(I3,T5,'|',10(F7.3,'|')) RETURN END *================================================================= SUBROUTINE MINV(A,AINV,ND,N,DET) INTEGER ND,N,IPASS REAL A(ND,ND),AINV(ND,ND),DET,FCTR DET=1.0 DO 1 I=1,N DO 1 J=1,N IF(I.EQ.J)THEN AINV(I,J)=1.0 ELSE AINV(I,J)=0.0
PH 615 136
![Page 137: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/137.jpg)
ENDIF 1 CONTINUE * CALL PRINT(AINV,ND,N) *---------------------------------------------------------------------- DO 7 IPASS=1,N IMX=IPASS DO 2 IROW=IPASS,N IF(ABS(A(IROW,IPASS)).GT.ABS(A(IMX,IPASS)))THEN IMX=IROW ENDIF 2 CONTINUE IF(IMX.NE.IPASS)THEN DO 3 ICOL=1,N TEMP = AINV(IPASS,ICOL) AINV(IPASS,ICOL) = AINV(IMX,ICOL) AINV(IMX,ICOL) = TEMP IF(ICOL.GE.IPASS)THEN TEMP = A(IPASS,ICOL) A(IPASS,ICOL) = A(IMX,ICOL) A(IMX,ICOL) = TEMP ENDIF 3 CONTINUE ENDIF PIVOT = A(IPASS,IPASS) DET = DET*PIVOT IF(DET.EQ.0.)THEN WRITE(*,10) PAUSE'FATAL ERROR IN MINV - zero determinant' RETURN
PH 615 137
![Page 138: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/138.jpg)
ENDIF DO 4 ICOL=1,N AINV(IPASS,ICOL) = AINV(IPASS,ICOL)/PIVOT IF(ICOL.GE.IPASS)THEN A(IPASS,ICOL) = A(IPASS,ICOL)/PIVOT ENDIF 4 CONTINUE DO 6 IROW = 1,N IF(IROW.NE.IPASS)THEN FCTR = A(IROW,IPASS) DO 5 ICOL = 1,N AINV(IROW,ICOL) = AINV(IROW,ICOL)- + FCTR*AINV(IPASS,ICOL) A(IROW,ICOL) = A(IROW,ICOL)-FCTR*A(IPASS,ICOL) 5 CONTINUE ENDIF 6 CONTINUE 7 CONTINUE RETURN *---------------------------------------------------------------------- 10 FORMAT(/,T5,'==========ERROR IN MINV==========',/, + T5,'| The matrix is singular |',/, + T5,'=================================') END *=================================================================
PH 615 138
![Page 139: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/139.jpg)
ซงจะไดเอาทพท โดยเมทรกซชดดานลางเปนอนเวรสของเมทรกสชดทอยดานบน คอ
[A]-1 = ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−−−−
161.0047.0036.0078.0203.0047.0047.0078.0172.0
5.3 การคณเมทรกซ ถา [A] และ [B] เปนเมทรกซจตรสลาดบ n สมาชกของผลคณเมทรกซ [C] = [A][B] จะมคาดงน
cij = ∑ =
n
ikjikba
1
ซงการคานวณหาคาสมาชกโดยใชเครองคดเลขจะยงยาก ใชเวลานาน และม
ขอผดพลาดไดงาย โดยเฉพาะอยางยงเมทรกซทมขนาดใหญ n > 3 จงจาเปนทจะตองใชคอมพวเตอรมาชวยในการคานวณ
PH 615 139
![Page 140: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/140.jpg)
ตวอยางท 5.8 จงหาผลคณของเมทรกซตอไปน
[A] = , [B] = ⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
1434111221114321
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
1010010110100101
วธทา PROGRAM MULTIPLY PARAMETER(N=4) REAL A(N,N),B(N,N),C(N,N) DATA ((A(I,J),J=1,N),I=1,N)/1.,2.,3.,4., + 1.,1.,1.,2., + 2.,1.,1.,1., + 4.,3.,4.,1./ DATA ((B(I,J),J=1,N),I=1,N)/1.,0.,1.,0., + 0.,1.,0.,1., + 1.,0.,1.,0., + 0.,1.,0.,1./ CALL PROD(A,B,C,N,N) CALL PRINT(A,N,N) CALL PRINT(B,N,N) CALL PRINT(C,N,N) STOP END *================================================ SUBROUTINE PRINT(A,N,ND) REAL A(ND,ND) CHARACTER DASH*8,BLANK*8
PH 615 140
![Page 141: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/141.jpg)
DATA DASH,BLANK/'-------|',' |'/ WRITE(*,10) ( J,J=1,N) WRITE(*,11) ( DASH,J=1,N) *---- DO 1 I = 1,N-1 WRITE(*,12)I,(A(I,J),J=1,N) WRITE(*,11) (BLANK,J=1,N) 1 CONTINUE WRITE(*,12)N,(A(N,J),J=1,N) WRITE(*,11) ( DASH,J=1,N) 10 FORMAT(/, T5,'|',10(2X,I3,2X,'|')) 11 FORMAT( T5,'|',10A8) 12 FORMAT(I3,T5,'|',10(F7.3,'|')) RETURN END *=============================================== SUBROUTINE PROD(A,B,C,N,ND) REAL A(ND,ND),B(ND,ND),C(ND,ND) DO 2 I = 1,N DO 2 J = 1,N C(I,J) = 0.0 DO 1 K = 1,N C(I,J) = C(I,J) + A(I,K)*B(K,J) 1 CONTINUE 2 CONTINUE RETURN END
PH 615 141
![Page 142: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/142.jpg)
เอาทพทจากโปรแกรม คอ ผลลพธจากการคณเมทรกซ [A] และ [B] แสดงในเมทรกซชดท 3
PH 615 142
![Page 143: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/143.jpg)
แบบฝกหดบทท 5
1. จงแกระบบสมการตอไปน โดยวธ LU ดคอมโพซชน
x1 + 7x2 – 4x3 = - 51
4x1 – 4x2 + 9x3 = 62
12x1 – x2 + 3x3 = 8
2. จงหาอนเวรสของเมทรกซในขอ 1. 3. จงหาผลคณของเมทรกซตอไปน
[A] = , [B] = ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−
−
522643121
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−−−
−−
423212
324
PH 615 143
![Page 144: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/144.jpg)
บทท 6 เมทรกซพเศษและการแกปญหาทางฟสกส
ในบทนจะกลาวถงเมทรกซบางอนทมลกษณะพเศษ ซงสามารถหาผลเฉลยโดยวธเฉพาะได เชน เมทรกซสมมาตร และจะศกษาเทคนคเกาสซเดลดวย
6.1 เมทรกซไทรไดอะโกนอล (Tridiagonal Systems)
⎪⎪⎪⎪⎪
⎭
⎪⎪⎪⎪⎪
⎬
⎫
⎪⎪⎪⎪⎪
⎩
⎪⎪⎪⎪⎪
⎨
⎧
=
⎪⎪⎪⎪⎪
⎭
⎪⎪⎪⎪⎪
⎬
⎫
⎪⎪⎪⎪⎪
⎩
⎪⎪⎪⎪⎪
⎨
⎧
⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
−−−−−
n
n
n
n
nn
nnn
rr
rrr
xx
xxx
fegfe
gfegfe
gf
1
3
2
1
1
3
2
1
111
333
222
11
.
.
.
.
.
.
......
...
ตวอยางท 6.1 จงแกเมทรกซไทรไดอะโกนอลตอไปน
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
=
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−−
−−−
8.2008.08.08.40
04.21104.21
104.21104.2
4
3
2
1
TTTT
PH 615 145
![Page 145: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/145.jpg)
วธทา
1
1
./
−
−
−==
kkkk
kkk
gefffee
( )( ) 550.1149.004.249.004.2/1
2
2
=−−−=−=−=
fe
( )( )
( )( ) 323.11717.004.2717.0395.1/1
395.11645.004.2645.0550.1/1
4
4
3
3
=−−−=−=−=
=−−−=−=−=
fefe
ดงนน
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−−
−−−
323.1717.01395.1645.0
1550.149.0104.2
อาศย LU ดคอมโพซชน จะได
[ ] [ ][ ]⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−==
323.11395.1
1550.1104.2
1717.01645.0
149.01
ULA
อาศยการแทนคา 1−−= kkkk rerr จะได
( )( )( ) 996.210221.14717.08.200
221.148.20645.08.08.208.4049.08.0
4
3
2
=−−==−−==−−=
rrr
PH 615 146
![Page 146: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/146.jpg)
ดงนน เวคเตอรทางดานขวาเปลยนเปน
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
996.210221.14
8.208.40
อาศยการแทนคากลบและเมทรกซ [ ]U
( ) kkkkk fxgrx /. 1+−= จะได
( )[ ]( )[ ]( )[ ] 970.65040.2/778.931800.40
778.93550.1/538.1241800.20538.124395.1/48.1591221.14
480.159323.1/996.210
1
2
3
4
=−−==−−=
=−−===
TTTT
6.2 โชลเลสกดคอมโพซชน(Cholesky Decomposition) ใชแกเมทรกซสมมาตร ซง jiij aa =
หรอ [ ] [ ]TAA =
ii
i
jkjijij
ki l
llal
∑−
=
−=
1
1 เมอ 1,.....,2,1 −= ki
และ
∑−
=
−=1
1
2k
jkjkkkk lal
PH 615 147
![Page 147: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/147.jpg)
ตวอยางท 6.2 อาศยโชลเลสกดคอมโพซชนกบเมทรกซสมมาตรตอไปน
[ ]⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
97922555225551555156
A
วธทา สาหรบแถวแรก ไมตองคานวณ ขามไปคานวณสมการอน 1=k 4495.261111 === al สาหรบแถวทสอง ( )2=k
สาหรบ 1=j
454.224495.255
11
3131 ===
lal
และสาหรบ 2=j
( )1833.4
454.221237.6225
22
31213232
−=
−=
llla
l
= 20.916 และจาก
232
2313333 llal −−=
( ) ( )22 916.20454.22979 −−= = 6.1106
PH 615 148
![Page 148: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/148.jpg)
ดงนน หลงจากอาศยโชลเลสกดคอมโพซชน จะได
[ ]⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
1103.6916.20454.221833.41237.6
4495.2L
6.3 เกาส – ซเดล อาศยวธการทาซาเหมอนกบการหารากของสมการทไดเรยนไปแลว เรมตนจากการพยากรณคาตอบของสมการกอนวาควรจะมคาเทาไร ใหใชคานเปนคาเรมตน แลวจงทาซาหลาย ๆ ครงเพอหาคาตอบ
33
23213133
22
32312122
11
31321211
axaxabx
axaxabx
axaxabx
−−=
−−=
−−=
เรมตนโดยการสมมตคา 321 ,, xxx
ตวอยางท 6.3 อาศยวธเกาส – ซเดลหาผลเฉลยของระบบสมการในตวอยางท 6.1 85.72.01.03 321 =−− xxx 3.193.071.0 321 −=−+ xxx 4.71102.03.0 321 =+− xxx คาตอบทแทจรงคอ และ 5.2,3 21 −== xx 73 =x
PH 615 149
![Page 149: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/149.jpg)
วธทา
102.03.04.71
73.01.03.19
32.01.085.7
213
312
321
xxx
xxx
xxx
+−=
+−−=
++=
สมมตวา และ เทากบศนย 2x 3x
∴ 616667.23
0085.71 =
++=x
ใชคา น และ แทนลงไปหาคา 1x 03 =x 2x
( ) 794524.27
0616667.21.03.192 −=
+−−=x
แทนคา และ หาคา 1x 2x 3x
( ) ( ) 005610.710
794524.22.0816667.23.04.713 =
−+−=x
สาหรบการ iterate ครงทสองจะได
( ) ( )
( ) ( )
( ) ( ) 00291.710
499625.22.0557.99.23.04.71
499625.27
005610.73.0990557.21.03.19
990557.23
005610.72.0794524.21.085.7
3
2
1
=+−
=
−=+−−
=
=+−+
=
x
x
x
PH 615 150
![Page 150: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/150.jpg)
ตวอยางท 6.4 จงหาคาตอบของเมทรกซตอไปน
= ⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−−−
−
21121
12
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧
3
2
1
xxx
⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧
144
124
วธทา โปรแกรมทใชในการคานวณ คอ PROGRAM GAUSSSIDEL PARAMETER (N=3) REAL A(N,N),B(N),X(3) REAL LAMDA,ES DATA ((A(I,J),J=1,N),I=1,N)/2.,-1.,0., + -1.,2.,-1., + 0.,-1.,2./ DATA (B(I),I=1,N)/124.,4.,12./ WRITE(*,*)'ENTER IMAX,ES,LAMBDA' READ(*,*) IMAX,ES,LAMDA WRITE(6,100) 100 FORMAT(/,5X,'ITER',10X,'X1',10X,'X2',9X,'X3',9X,'EA'/) CALL GSEID(A,B,N,X,IMAX,ES,LAMDA) STOP END *=========================================================== SUBROUTINE GSEID(A,B,N,X,IMAX,ES,LAMDA) DIMENSION B(3),X(3) REAL SENTINEL,OLD,DUMMY,LAMDA,ES REAL A(N,N) DO 10 I=1,N DUMMY=A(I,I)
PH 615 151
![Page 151: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/151.jpg)
DO 20 J=1,N A(I,J)=A(I,J)/DUMMY 20 CONTINUE B(I)=B(I)/DUMMY 10 CONTINUE DO 30 I=1,N SUM=B(I) DO 40 J=1,N IF (I.NE.J)THEN SUM=SUM-A(I,J)*X(J) ENDIF 40 CONTINUE X(I)=SUM 30 CONTINUE DO 50 ITER=1,IMAX SENTINEL=1. DO 60 I=1,N OLD=X(I) SUM=B(I) DO 70 J=1,N IF (I.NE.J)THEN SUM=SUM-A(I,J)*X(J) ENDIF 70 CONTINUE X(I)=LAMDA*SUM+(1.-LAMDA)*OLD IF (SENTINEL.EQ.1.) THEN IF (X(I).NE.0.) THEN EA=ABS((X(I)-OLD)/X(I))*100. ENDIF
PH 615 152
![Page 152: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/152.jpg)
ENDIF IF (EA.GT.ES) THEN SENTINEL=0. ENDIF 60 CONTINUE WRITE(6,200) ITER,X(1),X(2),X(3),EA 200 FORMAT(5X,I3,3X,4F12.6) IF (SENTINEL.EQ.1.) THEN GOTO 300 ENDIF 50 CONTINUE 300 RETURN END *================================================================ เอาทพทจากโปรแกรม คอ
PH 615 153
![Page 153: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/153.jpg)
ซงจะเหนไดวา ทาการ iterate 24 ครงจงจะไดคาตอบ ซงเกอบจะเปนไปไมได ถากดเครองคดเลขดวยมอ คาตอบคอ x1 = 98, x2 = 72, x3 = 42
ตวอยางท 6.5 จงแกระบบสมการโดยวธเกาส – ซเดล (λ)
- 5x1 + 12x3 = 80
4x1 – x2 – x3 = - 2
6x1 + 8x2 = 45
ถาจาเปนใหสลบสมการใหม เพอใหไดการลเขาหาคาตอบ วธทา สวนหนงของโปรแกรมทใชในการคานวณ โดยไมไดเปลยนแปลงลาดบของสมการ คอ PROGRAM GS1 PARAMETER (N=3) REAL A(N,N),B(N),X(3) REAL LAMDA,ES DATA ((A(I,J),J=1,N),I=1,N)/-5.,0.,12., + 4.,-1.,-1., + 6.,8.,0./ DATA (B(I),I=1,N)/80.,-2.,45./ เอาทพท คอ
PH 615 154
![Page 154: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/154.jpg)
จะเหนไดวา เมอทาการ iterate หลาย ๆ ครงโปรแกรมไมมการลเขา จงไมไดคาตอบของสมการ เมอทาการสลบสมการใหม เปน
4x1 – x2 – x3 = - 2
6x1 + 8x2 = 45
- 5x1 + 12x3 = 80 สวนหนงของโปรแกรมทใชในการคานวณ จะเปลยนเปน *=========================================================== * ******* SWAP ROW 1 TO 3 ******** * ******* SWAP ROW 2 TO 1 ******** * ******* SWAP ROW 3 TO 2 ******** *=========================================================== PROGRAM GS2 PARAMETER (N=3) REAL A(N,N),B(N),X(3) REAL LAMDA,ES DATA ((A(I,J),J=1,N),I=1,N)/4.,-1.,-1., + 6.,8.,0., + -5.,0.,12./ DATA (B(I),I=1,N)/-2.,45.,80./
PH 615 155
![Page 155: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/155.jpg)
จะไดเอาทพท คอ ซงเกดการลเขา คาตอบของสมการ คอ x1 = 2.375000, x2 = 3.843750, x3 = 7.656250
6.4 การประยกตทางดานฟสกส การแกระบบของสมการดวยวธวเคราะหเชงตวเลขมความสาคญตอการแกปญหาทางดานฟสกสมาก เพราะวาในทางปฏบตการคานวณโดยการกดเครองคดเลขดวยมอ เพอแกระบบสมการอาจจะเกดความผดพลาดไดงาย และสนเปลองเวลามาก ปญหาทางฟสกสทสามารถนาวธวเคราะหเชงตวเลขมาประยกตใชงาน เชน ปญหาเรองมวลสมดลยภายในเครองปฏกรณปรมาณ การคานวณกระแสและศกยภายในวงจรไฟฟา และระบบมวลทสนบนสปรงเปนตน
PH 615 156
![Page 156: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/156.jpg)
ตวอยางท 6.6 จงหาความเขมขน (หนวย กรม/ม.3) ภายในเครองปฏกรณ ซงเปนฟงกชนของมวลทอนพทเขาไปในแตละวน (กรม/วน)
17C1 – 2C2 – 3C3 = 500
-5C1 + 21C2 – 2C3 = 200
- 5C1 – 5C2 + 22C3 = 30 วธทา สวนหนงของโปรแกรมทใชในการคานวณ คอ PROGRAM GAUSSSIDEL PARAMETER (N=3) REAL A(N,N),B(N),X(3) REAL LAMDA,ES DATA ((A(I,J),J=1,N),I=1,N)/17.,-2.,-3., + -5.,21.,-2., + -5.,-5.,22./ DATA (B(I),I=1,N)/500.,200.,30./ เอาทพท คอ จะไดความเขมขน ดงน C1 = 34, C2 = 18.89, C3 = 13.38 กรม/วน
PH 615 157
![Page 157: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/157.jpg)
ตวอยางท 6.7 จงหา V1, V2 และ V3 ของวงจรไฟฟาตอไปน วธทา จากกฏของเคอรชอฟ จะได
17V1 – 8V2 – 3V3 = 480
-2V1 + 6V2 – 3V3 = 0
- V1 – 4V2 + 13V3 = 0 สวนหนงของโปรแกรมทใชในการคานวณ PROGRAM GS PARAMETER (N=3) REAL A(N,N),B(N),X(3) REAL LAMDA,ES DATA ((A(I,J),J=1,N),I=1,N)/17.,-8.,-3., + -2.,6.,-3., + -1.,-4.,13./ DATA (B(I),I=1,N)/480.,0.,0./
PH 615 158
![Page 158: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/158.jpg)
เอาทพท คอ ดงนน V1 = 37.4 โวลต, V2 = 16.4 โวลต, V3 = 7.9 โวลต ตวอยางท 6.8 จากวงจรตอไปน จงหาคากระแสและแรงดนของแหลงจายไฟในวงจร
PH 615 159
![Page 159: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/159.jpg)
วธทา จากกฎของเคอรชอฟ จะได
6I1 – 4I3 + Vs = 0
8I2 – 8I3 – Vs = 0
-4I1 – 8I2 + 18I3 = 0
-I1 + I2 = 10 สวนหนงของโปรแกรมทใชในการคานวณ คอ PROGRAM GAUSS DIMENSION A(50,50),B(50),X(50) PARAMETER (N=4) DATA ((A(I,J),J=1,N),I=1,N)/6.,0.,-4.,1., + 0.,8.,-8.,-1., + -4.,-8.,18.,0., + -1.,1.,0.,0. / DATA (B(I),I=1,N) /0.,-20.,0.,10./ CALL GAUSS(N,A,B,X) เอาทพท คอ ดงนน I1 = -7.78 แอมแปร I2 = 2.22 แอมแปร I3 = -0.7 แอมแปร
และ Vs = 43.7 โวลต
PH 615 160
![Page 160: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/160.jpg)
ตวอยางท 6.9 มวล 3 อนผกตอกนวางอยบนพนเอยงดงรป จงหาความเรงของมวล และแรงตงในเสนเชอก วธทา จาก free – body diagram จะได
100a + T = 519.72
50a – T + R = 0
25a – R = 0 สวนหนงของโปรแกรมทใชในการคานวณคา a, T และ R คอ
PH 615 161
![Page 161: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/161.jpg)
PROGRAM GAUSS DIMENSION A(50,50),B(50),X(50) PARAMETER (N=3) DATA ((A(I,J),J=1,N),I=1,N)/100.,1.,0., + 50.,-1.,1., + 25.,0.,-1./ DATA (B(I),I=1,N) /519.72,216.55,108.27/ CALL GAUSS(N,A,B,X) เอาทพทจากโปรแกรม ดงนน a = 4.8 เมตร/วนาท2 T = 37.1 นวตน R = 12.4 นวตน
PH 615 162
![Page 162: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/162.jpg)
แบบฝกหดบทท 6
ระบบสมการตอไปน ใชในการหาความเขมขน (c หนวย กรม/ม.3) ในเครอง 1. ปฏกรณปรมาณเปนฟงกชนของมวลทใสเขาไปในเครอง (ทางขวาของสมการหนวย กรม/วน)
17C1 – 2C2 – 3C3 = 500
-5C1 + 21C2 – 2C3 = 200
- 5C1 – 5C2 + 22C3 = 30
จงหาปรมาณความเขมขน 2. จากวงจรตอไปนจงหาคา I 1, I 3 และ I 4
PH 615 163
![Page 163: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/163.jpg)
3. จากวงจรตอไปนจงหาคา I 1, I 2 และ I3 4. มวล 4 อน 5, 8, 10 และ 15 กโลกรม ผกตดกนและคลองผานรอกดงรป จงหา
ความเรงและแรงตงในเสนเชอก
PH 615 164
![Page 164: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/164.jpg)
บทท 7 การหาคามากสด
ในบทนจะกลาวถงวธการหาคามากทสดของฟงกชน f(x) โดยวธตาง ๆ กน 3 วธ
7.1 การหาโดยวธโกลเดน-เซกชน (golden – section) พจารณา = + 0l 1l 2l
และ = 0
1
ll
1
2
ll
จะได = 21
1
lll+ 1
2
ll
PH 615 165
![Page 165: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/165.jpg)
กาหนดให = จะได R1
2
ll
1 + R = R1 หรอ R2 + R - 1 = 0
R = ( )2
1411 −−+− = 2
15 −
= 0.61803 คา R นมชอเรยกวาโกลเดนเรโช (Golden ratio) เพราะชวยในการหาตาสดหรอสงสดไดอยางมประสทธภาพ ตวอยางท 7.1 จงใชวธโกลเดน-เซกชน หาคาสงสดของ
2
( ) 2sin10xf x x= − ภายในชวง และ 0lX = 4uX =
โดยใชเครองคดเลข และใชโปรแกรมคอมพวเตอร วธทา อาศยโกลเดนเรโช
( )5 1 4 0 2.4722
d −= − =
หาคา 1 0 2.472 2.472X = + =
และ 2 4 2.472 1.528X = − =
หาคาฟงกชน
2
21.528( ) (1.528) 2sin(1.528) 1.765
10f x f= = − =
2
12.472( ) (2.472) 2sin(2.472) 0.63
10f x f= = − =
PH 615 166
![Page 166: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/166.jpg)
เนองจาก ดงนน และ 2( ) ( )1f x f x> 0lX = 2.472uX =
2x เปลยนเปน ใหมซง 1x (1.528) 1.765f =
( )5 1 2.472 0 1.5282
d −= − =
2 2.472 1.528 0.994X = − =
(0.994) 1.531f = ซงนอยกวา ดงนนคาสงสดจะอยระหวาง x2, x1 และ x3 1( )f x
ทาซาเชนนอกหลาย ๆ ครง จนไดคามากทสด คอ x2 = 1.4427 โปรแกรม GOLD คานวณคาสงสดมดงน PROGRAM GOLD REAL R,XLOW,XHIGH,XOPT WRITE(*,*) ' PLEASE ENTER XLOW,XHIGH,IMAX,ES ' READ(*,*) XLOW,XHIGH,IMAX,ES WRITE(*,20) 20 FORMAT(/,14X,'I',11X,'X',14X,'F(X)',/) CALL GOLD(XLOW,XHIGH,IMAX,ES,FX) STOP END *---------------------------------------------- SUBROUTINE GOLD(XLOW,XHIGH,IMAX,ES,FX) REAL R,XLOW,XHIGH,XOPT R=((5.**(0.5))-1.)/2.
PH 615 167
![Page 167: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/167.jpg)
XL=XLOW XU=XHIGH D=R*(XU-XL) X1=XL+D X2=XU-D F1=F(X1) F2=F(X2) IF(F1.GT.F2) THEN XOPT=X1 FX=F1 ELSE XOPT=X2 FX=F2 ENDIF DO 10 I=1,IMAX D=R*D IF(F1.GT.F2) THEN XL=X2 X2=X1 X1=XL+D F2=F1 F1=F(X1) ELSE XU=X1 X1=X2 X2=XU-D F1=F2 F2=F(X2) ENDIF
PH 615 168
![Page 168: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/168.jpg)
IF(F1.GT.F2) THEN XOPT=X1 FX=F1 ELSE XOPT=X2 FX=F2 ENDIF IF(XOPT.NE.0.) THEN EA=(1.-R)*ABS((XU-XL)/XOPT)*100. ENDIF WRITE(*,100) I,XOPT,FX 100 FORMAT(10X,I5,2F16.6) IF(EA.LE.ES) THEN GOTO 20 ENDIF 10 CONTINUE 20 RETURN END *---------------------------------------- FUNCTION F(X) F=2*SIN(X)-((X**2.)/10.) RETURN END *---------------------------------------- เอาทพทจากโปรแกรม คอ
PH 615 169
![Page 169: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/169.jpg)
ซงจะไดคาฟงกชนมากทสด คอ 1.776
7.2 การประมาณคาโดยอาศย Quadratic function การประมาณคาโดยอาศย Quadratic function อาศยหลกการทวา second – order polynomial เปนการประมาณคาทใกลกบรปทรงของฟงกชนใกลจดสงสดหรอตาสด ดงรป
PH 615 170
![Page 170: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/170.jpg)
รปท 7.1 การประมาณคาโดยอาศย Quadratic function สามารถใชคณตศาสตรในการพสจนไดวา จดสงสดจะมคาประมาณดงน
( )( ) ( )( ) ( )( )( )( ) ( )( ) ( )( )
2 2 2 2 2 20 1 2 1 2 0 2 0 1
30 1 2 1 2 0 2 0 12 2 2
f x x x f x x x f x x xx
f x x x f x x x f x x x
− + − + −=
− + − + −
ตวอยางท 7.3 จงใชวธ Quadratic Interpolation หาคาmaximum ของ
2
( ) 2sin10xf x x= −
โดยใชคาเรมตน และจงเขยนโปรแกรมเพอชวยในการคานวณ 0 1 20, 1, 4x x x= = =
วธทา ( )0 00, 0x f x= = ( )1 11, 1.5829x f x= =
( )2 24, 3.1136x f x= = −
( ) ( ) ( )( )
( )( ) ( )( ) ( )( )
2 2 2 2 2 2
3
0 1 4 1.5829 4 0 3.1136 0 11.5055
2 0 1 4 2 1.5829 4 0 2 3.1136 0 1x
− + − + − −= =
− + − + − −
ซง (1.5055) 1.7691f =
PH 615 171
![Page 171: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/171.jpg)
ทง เกา Iteration ตอไปคอ 0x
( )0 01, 1.5829x f x= =
( )1 11.5055, 1.7691x f x= =
( )2 24, 3.1136x f x= = −
( ) ( ) ( )( )( )( ) ( )( ) ( )( )
2 2 2 2 2 2
3
1.5829 1.5055 4 1.769 4 1 3.1136 1 1.50551.4903
2 1.5829 1.5055 4 2 1.769 4 1 2 3.1136 1 1.5055x
− + − + − −= =
− + − + − −
(1.4903) 1.7714f =
โปรแกรมคานวณคาสงสด โดยวธ Quadratic Interpolation คอ PROGRAM QUAD REAL X0,X1,X2,XMAX WRITE(*,*) ' PLEASE ENTER X0,X1,X2,IMAX ' READ(*,*) X0,X1,X2,IMAX WRITE(*,20) 20 FORMAT(/,14X,'I',11X,'X',14X,'F(X)',/) CALL QUAD(X0,X1,X2,IMAX,XMAX) STOP END *---------------------------------------------- SUBROUTINE QUAD(X0,X1,X2,IMAX,XMAX) REAL X0,X1,X2,XMAX,FX DO 10 I=1,IMAX F0 = F(X0)*((X1**2)-(X2**2)) F1 = F(X1)*((X2**2)-(X0**2))
PH 615 172
![Page 172: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/172.jpg)
F2 = F(X2)*((X0**2)-(X1**2)) FD0= 2*F(X0)*(X1-X2) FD1= 2*F(X1)*(X2-X0) FD2= 2*F(X2)*(X0-X1) XMAX=(F0+F1+F2)/(FD0+FD1+FD2) XMID=X1 IF (XMAX.GT.XMID)THEN X0=XMID X1=XMAX X2=X2 ELSE X0=X0 X1=XMAX X2=XMID ENDIF FX=F(XMAX) *------------------------------------------ WRITE(*,100) I,XMAX,FX 100 FORMAT(10X,I5,2F16.6) *------------------------------------------ 10 CONTINUE RETURN END *---------------------------------------- FUNCTION F(X) F=2*SIN(X)-((X**2.)/10.) RETURN END *----------------------------------------
PH 615 173
![Page 173: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/173.jpg)
เอาทพทจากโปรแกรม คอ จะไดคามากสดท f(x) = 1.7757 ตวอยางท 7.4 กาหนดให f(x) = - 1.5x6 – 2x4 + 12x จงหาคามากทสดของฟงกชน โดยวธ Quadratic Interpolation โดยใช x0 = 0, x1 = 1 และ x2 = 2 วธทา สวนหนงของโปรแกรมทใชคานวณ คอ FUNCTION F(X) F=(-1.5*X**6)-(2*X**4)+12*X RETURN END
PH 615 174
![Page 174: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/174.jpg)
*---------------------------------------- เอาทพทจากโปรแกรม คอ ซงจะไดคามากทสด = 8.69792 ตรงกบวธ Golden – Section Search
7.3 วธนวตน(Newton’ Method)
จากวธ Newton-Raphson ( )( )1
ii i
i
f xx x
f x+ = −′
ใชวธเดยวกน โดยให ( ) ( )g x f x′=
( )( )1
ii i
i
f xx x
f x+
′= −
′′ ( ) ( ) 0f x g x′ = =
PH 615 175
![Page 175: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/175.jpg)
ตวอยางท 7.5 จงใชวธนวตน หาคามากสด ของ
2
( ) 2sin10xf x x= −
โดยใชคาเรมตน และจงเขยนโปรแกรมเพอคานวรคาสงสดน 0 2.5x =
วธทา
( )
( )
2cos512sin5
xf x x
f x x
′ = −
′′ = − −
1
2cos512sin5
ii
i i
i
xxx x
x+
−= −
− −
แทนคา เรมตน 0 2.5x =
1
2.52cos 2.552.5 0.9950812sin 2.55
x−
= − =− −
( )0.99508 1.57829f =
การ Iteration ครงท 2
1
0.9952cos0.99550.995 1.4690112sin 0.9955
x−
= − =− −
( )1.46901 1.77385f =
PH 615 176
![Page 176: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/176.jpg)
โปรแกรมตอไปน คานวณคามากสดโดยวธนวตน PROGRAM NEWTON WRITE(*,*)'ENTER X0,IMAX' READ (*,*) X0,IMAX WRITE(*,30) 30 FORMAT(/,5X,'I',9X,'XROLD',11X,'F(X)',11X,'DF(X)' + ,10X,'DD(F(X))',/) XR = X0 DO 100 ITER= 1,IMAX XROLD=XR HX=H(XROLD) GX=G(XROLD) XM=XROLD-(GX/HX) XR=XM WRITE(*,40) ITER,XROLD ,F(XROLD),GX,HX 40 FORMAT(1X,I5,4F16.6) 100 CONTINUE STOP END *------------------------------------------------ FUNCTION F(X) F=2*SIN(X)-(X**2)/10 RETURN END *------------------------------------------------ * DIFFERENTIAL FUNCTION G(X)
PH 615 177
![Page 177: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/177.jpg)
G=(2*COS(X))-(X/5) RETURN END *------------------------------------------------ * DOUBLE DIFFERENTIAL FUNCTION H(X) H=(-2*SIN(X))-(0.2) RETURN END *------------------------------------------------ เอาทพทจากโปรแกรม คอ จะไดคามากทสดของฟงกชน คอ 1.775726 ซงตรงกบวธการกอนหนาน แตลเขาหาคาตอบไดเรวกวามาก (ใชเพยง 4 iteration เทานน)
PH 615 178
![Page 178: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/178.jpg)
ตวอยางท 7.6 จงหาคาสงสดของฟงกชนโดยวธนวตน f(x) = - 1.5x6 – 2x4 + 12x โดยใช x0 = 2 วธทา สวนหนงของโปรแกรมทใชในการคานวณ คอ FUNCTION F(X) F=(-1.5*X**6)-(2*X**4)+12*X RETURN END *------------------------------------------------ * DIFFERENTIAL FUNCTION G(X) G=(-9*X**5)-(8*X**3)+12 RETURN END *------------------------------------------------ * DOUBLE DIFFERENTIAL FUNCTION H(X) H=(-45*X**4)-(24*X**2) RETURN END *------------------------------------------------ เอาทพทจากโปรแกรม คอ
PH 615 179
![Page 179: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/179.jpg)
ซงจะไดคามากสดของฟงกชน คอ 8.697929 ตรงกนทงสามวธ แตวธนจะเขาถงคาตอบไดเรวทสด (7 iterations เทานน)
PH 615 180
![Page 180: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/180.jpg)
แบบฝกหดท 7
จากฟงกชนตอไปน f(x) = x2 – 8x + 12 ก) จงหาคามากทสดของฟงกชน โดยวธการดฟเฟอเรนชเอทฟงกชน
1.
ข) คานวณโดยใชวธ Quadratic interpolation โดยใช x0 = 0, x1 = 2 และ x2 = 6 กาหนดให f(x) = - 1.5x6 – 2x4 + 12x 2. ก) จงเขยนกราฟของฟงกชนน
ข) จงหาคามากทสดของฟงกชน โดยวธการดฟเฟอเรนชเอท ค) จงหาคามากทสดของฟงกชน โดยวธ golden – section โดยใช xl = 0, xu = 2 แลวทาซา 3 ครง
จงหาคามากทสด โดยใชวธ quadratic interpolation โดยใช x0 = 0, x1 = 1 และ x2 = 2 ทาการคานวณซา 3 ครง
ง)
จ) จงหาคามากทสด โดยใชวธ Newton ใชคาเรมตน x0 = 2 และทาการคานวณซา 3 ครง
3. ใชโปรแกรมในขอ 2. โดยใชวธการทงสามวธ 4. จงเปรยบเทยบวธการหาคามากทสดทงสามวธ
จงหาคามากทสดของฟงกชน f(x) = 2x – 1.75x2 + 1.1x3 – 0.25x4 โดยวธ 5. Golden – section (xl = -2, xu = 4, εs = 1%) ก) Quadratic interpolation (x0 = 1.75, x1 = 2, x2 = 2.25, iteration = 5) ข)
Newton (x0 = 2.5, εs = 1%) ค)
PH 615 181
![Page 181: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/181.jpg)
บทท 8 การปรบเสน และการประมาณคา
ขอมลทไดจากการทดลอง จะมการเบยงเบนมากเราอาจจะใชกราฟเสนตรงหรอเสนโคงใด ๆ มาแทนขอมลททดลองไดน ในบทนจะศกษาการคานวณวาฟงกชนใดเปนตวแทนของชดขอมลไดดทสดและไดดวยวธใด
รปท 8.1 ขอมล a) จากการทดลอง b) จากการ fit ดวยโพลโนเมยล c) จากการ fit ดวยเสนตรง
PH 615 183
![Page 182: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/182.jpg)
8.1 การถดถอยเชงเสน (Linear Regression) สมมตวาจากการทดลองไดขอมล 1 ชด คอ วธงายทสดคอ แทนขอมลชดนดวยกราฟเสนตรง
1 1 2 2 n n(x ,y ),(x ,y ),........,(x ,y )
y = a0 + a1x + e เมอ a0 = จดตดบนแกน y a1 = ความชนของกราฟ e = ความคลาดเคลอนจากคาทดลอง เสนตรงทนามาแทนขอมลจะตองเปนเสนตรงททาใหผลรวมของความคลาดเคลอนยกกาลงสอง มคานอยทสด หรอเขยนเปนสมการไดวา
( )0 11 1
n n
i ii i
e y a a= =
= − −∑ ∑ ix
( )22,.. ,mod
1 1
,n n
i i i i eli i
S e y y= =
= =∑ ∑
( )20 1
1
n
i ii
y a a x=
= − −∑ ตองการหาคา และ 0a 1a
( )
( )
0 10
0 11
2
2
ri i
ri i
S y a a xaS y a a x xa i
∂= − − −
∂∂
= − − −∂
∑
∑
PH 615 184
![Page 183: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/183.jpg)
หาคา ทนอยทสด โดย set derivative = 0 rS
0 1
20 1
0
0i i
i i i i
y a a
y x a x a x
= − −
=
x∑ ∑ ∑∑ ∑ ∑
เนองจาก ดงนน 0a na=∑ 0
( )0 1i ina x a y+ =∑ ∑
( ) ( )20 1i i i ix a x a x+ =∑ ∑ ∑ y
สมการทงสองน มชอเรยกวา normal equation ได
( )1 22
i i i i
i i
n x y x ya
n x x
−=
−∑ ∑ ∑∑ ∑
และหา จาก 0a 0 1a y a= − x
ความคลาดเคลอนจากการประมาณคา
= xyS / 2−nSr
ถา St = total sum of square St = ( )2∑ − yyi เมอ r2 = coefficient of determination
r2 = t
rt
SSS −
r = 2r = correlation coefficient
PH 615 185
![Page 184: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/184.jpg)
สาหรบการ fit ทด Sr = 0 และ r = r2 = 1 และสาหรบการท fit ไมด r = r2 = 0, Sr = St สตรทใชคานวณ r ของคอมพวเตอร คอ
r = ( )( )
( ) ( )∑ ∑∑ ∑∑∑∑
−−
−2222
iiii
iiii
yynxxn
yxyxn
ตวอยางท 8.1 จง fit กราฟเสนตรงกบคา x และ y ใน ตาราง ซงเปนคาทไดจากการทดลอง และจงเขยนโปรแกรมเพอ fit ขอมลน วธทา จะตองคานวณคาเหลานกอน
( ) ( )( ) ( )
( )
2
1 2
0
7, 119.5, 1402828, 472424, 3.4285717
7 119.5 28 240.8392857
7 140 28
3.428571 0.8392857 4 0.07142857
i i i
i
i
n x y x
x x
y y
a
a
= = =
= = =
= = =
−= =
−
= − =
∑ ∑∑
∑
จะไดกราฟเสนตรง 0.07142857 0.8392857y x= +
PH 615 186
![Page 185: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/185.jpg)
ix iy ( )2
iy y− ( )20 1i iy a a x− −
1 2 3 4 5 6 7
0.5 2.5 2.0 4.0 3.5 6.0 5.5
8.5765 0.8622 2.0408 0.3265 0.0051 6.6122 4.2908
0.1687 0.5625 0.3473 0.3265 0.5896 0.7972 0.1993
∑ 24.0 22.7143 2.9911
โปรแกรมทใช fit ขอมลน คอ *==================================================== PROGRAM L_REG *==================================================== * SET THIS BLOCK FOR NEW PROBLEM *---------------------------------------------------- PARAMETER (N=7) DIMENSION X(100),Y(100) DATA (X(I),I=1,N) /1.,2.,3.,4.,5.,6.,7./ DATA (Y(I),I=1,N) /0.5,2.5,2.,4.,3.5,6.,5.5/ *==================================================== * LINEAR REGRESSION PROCESS *---------------------------------------------------- SUMX=0. SUMY=0. SUMX2=0. SUMY2=0.
PH 615 187
![Page 186: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/186.jpg)
SUMXY=0. ST=0. SR=0. DO 10 I=1,N SUMX=SUMX+X(I) SUMY=SUMY+Y(I) SUMX2=SUMX2+X(I)*X(I) SUMY2=SUMY2+Y(I)*Y(I) SUMXY=SUMXY+X(I)*Y(I) 10 CONTINUE DETER=N*SUMX2-SUMX*SUMX A0=(SUMY*SUMX2-SUMXY*SUMX)/DETER A1=(N*SUMXY-SUMX*SUMY)/DETER *==================================================== * OUTPUT REPORT *---------------------------------------------------- WRITE(*,100) WRITE(*,200) WRITE(*,300) WRITE(*,200) DO 20 ITH=1,N WRITE(*,400) ITH,X(ITH),Y(ITH) 20 CONTINUE WRITE(*,200) WRITE(*,800) READ(*,*) WRITE(*,200) WRITE(*,500)'X',SUMX WRITE(*,500)'Y',SUMY
PH 615 188
![Page 187: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/187.jpg)
WRITE(*,500)'X*Y',SUMXY WRITE(*,500)'SQUARE X',SUMX2 WRITE(*,500)'SQUARE Y',SUMY2 WRITE(*,200) WRITE(*,600) A0,A1 WRITE(*,200) WRITE(*,700) A0,A1 WRITE(*,200) *==================================================== * ERROR REPORT *---------------------------------------------------- ST=0. YA=SUMY/N DO 30 IE=1,N ST=ST+(Y(IE)-(YA))**2. SR=SR+(Y(IE)-A1*X(IE)-A0)**2. 30 CONTINUE WRITE(*,810) ST,SR WRITE(*,200) * -------------------------------------------- * STANDARD DIVIATION * -------------------------------------------- SY=SQRT(ST/(N-1)) WRITE(*,900) SY * -------------------------------------------- * STANDARD ERROR OF THE ESTIMATE * -------------------------------------------- SYX=SQRT(SR/(N-2)) WRITE(*,1000) SYX
PH 615 189
![Page 188: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/188.jpg)
* -------------------------------------------- * COEFFICIENT OF DETERMINATION * -------------------------------------------- R2=(ST-SR)/ST WRITE(*,1100) R2 * -------------------------------------------- * CORRELATION COEFFICIENT * -------------------------------------------- R=((N*SUMXY)-(SUMX*SUMY))/ + (SQRT(N*SUMX2-SUMX**2.)*SQRT(N*SUMY2-SUMY**2.)) WRITE(*,1200) R * -------------------------------------------- * PERCENT OF THE VARIABILITY OF THE DATA. * -------------------------------------------- P=R2*100 WRITE(*,1300) P WRITE(*,200) *------------------------------------------------------------ 100 FORMAT(5X,'DATA') 200 FORMAT(5X, + '-----------------------------------------------------') 300 FORMAT(14X,'ith',9X,'Xi',12X,'Yi') 400 FORMAT(13X,I3,1X,2F14.6) 500 FORMAT(6X,'SUMMATION OF',A9,1X,'=',F12.6) 600 FORMAT(5X,' COEFFICIENT A0 =',F14.10, + /,5X,' COEFFICIENT A1 =',F14.10) 700 FORMAT(6X,'THE LEAST-SQUARE FIT IS:',//, + 6X,'Y =',F14.10,' +',F14.10,' * X') 800 FORMAT(/,6X,'PRESS ENTER TO SEE THE RESULT')
PH 615 190
![Page 189: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/189.jpg)
810 FORMAT(6X,'ST = ',F14.10,4X,', SR = ',F14.10) 900 FORMAT(6X,'STANDARD DIVIATION = ',F14.10) 1000 FORMAT(6X,'STANDARD ERROR OF THE ESTIMATE = ',F14.10) 1100 FORMAT(6X,'COEFFICIENT OF DETERMINATION = ',F14.10) 1200 FORMAT(6X,'CORRELATION COEFFICIENT = ',F14.10) 1300 FORMAT(/,6X,'THE LINE EXPLAINS ',F6.3, + ' % OF THE DATA VARIABILITY.') *---------------------------------------------------- STOP END *-------------------------------------------------------------------- เอาทพทจากโปรแกรม คอ
PH 615 191
![Page 190: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/190.jpg)
สมการทใชแทนขอมล คอ y = 0.0714285746 + 0.8392857313x โดยม St = 22.714 Sr = 2.991 คาเบยงเบนมาตรฐาน = 1.946 สมประสทธสหสมพนธ = 0.932 ในทางปฏบต นกศกษาสามารถทจะนาโปรแกรมนไป fit ขอมลอนทนกศกษาไดจากการทดลองไดเปนอยางด ตวอยาง 8.2 จงแสดงวธคานวณ total standard estimate และ correlation coefficient ของขอมลในตวอยาง 8.1 วธทา
22.7143 1.94577 1yS = =−
= standard deviation
2.9911 0.77357 2y xS = =−
= standard error of estimate
เนองจาก ดงนนจงสามารถใช regression ไดด y xS S< y
2 22.7143 2.9911 0.868
22.7143r −
= =
หรอ
0.868 0.932r = = ซงมคาตรงกบการคานวณจากโปรแกรม
PH 615 192
![Page 191: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/191.jpg)
ตวอยางท 8.3 จากการคานวณทางฟสกส
( ) ( )( )1 c m tgmv t ec
−= − (8.1)
จากสตรเอมไพรคอล
( )3.75
gm tv tc⎛= ⎜ t
⎞⎟+⎝ ⎠ (8.2)
เปรยบเทยบความเรว โดยอาศย Regression วธทา linear reqression ระหวางคาทฤษฎ (สมการ 8.1) กบคาจากการทดลอง mod 0.859 1.032el measurev v= − +
linear reqression ระหวางคาเอมไพรคอล (สมการ 8.2) กบคาจากการทดลอง mod 5.776 0.752el measurev v= +
ทงสองโมเดลได correlation coefficient มากกวา 0.99 ซงแสดงความสมพนธทดของโมเดลทงสอง ดงแสดงในรปท 8.2
PH 615 193
![Page 192: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/192.jpg)
คานวณ m/s คานวณ m/s fv
Eq(8.1) fv
การทดลอง m/s Time,s fvEq(8.2)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
10.00 16.30 23.00 27.50 31.00 35.60 39.00 41.50 42.90 45.00 46.00 45.50 46.00 49.00 50.00
8.953 16.405 22.607 27.769 32.065 35.641 38.617 41.095 43.156 44.872 46.301 47.490 48.479 49.303 49.988
11.240 18.570 23.729 27.556 30.509 32.855 34.766 36.351 37.687 38.829 39.816 40.678 41.437 42.110 42.712
PH 615 194
![Page 193: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/193.jpg)
รปท 8.2 a) ใช linear regression เปรยบเทยบคาจากทฤษฎกบคาจากการทดลอง b) ใช linear regression เปรยบเทยบคาจากสตรเอมไพรคอลกบคาจากการทดลอง
8.2 การถดถอยไมเปนเชงเสน Linear regression เปนเครองมอทมประสทธภาพในการ fit ขอมล อยางไรกตามบางครงความสมพนธของขอมลไมไดเปนชนดเชงเสน จะตอง fit ขอมลโดยใชโมเดลอน เชน exponential model, power equation หรอ saturation – growth – rate equation เปนตน
PH 615 195
![Page 194: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/194.jpg)
รปท 8.3 Model ชนดอนทใชในการ fit ขอมล
สมการทใชสาหรบโมเดลทงสาม คอ
1. Exponential model.
11 1ln ln lnb xy a e y a b= ⇒ = + 1
2
2. Simple power equation.
22 2log log logby a x y b x a= ⇒ = +
3. Saturation-growth-rate equation.
33
3 3
1 1bx
3
1b x y a x a
y a ⇒ = ++
=
PH 615 196
![Page 195: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/195.jpg)
ตวอยางท 8.4 จงอาศย least – squares regression เพอ fit เสนตรงกบขอมลตอไปน
x 1 3 5 7 10 12 13 16 18 20 y 4 5 6 5 8 7 6 9 12 11
จากนนใหสลบ x กบ y แลว fit ขอมลอกครงหนง วธทา สวนหนงของโปรแกรมทใชในการ fit คอ *==================================================== PROGRAM L_REG *==================================================== * SET THIS BLOCK FOR NEW PROBLEM *---------------------------------------------------- PARAMETER (N=10) DIMENSION X(100),Y(100) DATA (X(I),I=1,N) /1.,3.,5.,7.,10.,12.,13., + 16.,18.,20./ DATA (Y(I),I=1,N) /4.,5.,6.,5.,8.,7.,6.,9., + 12.,11./ *==================================================== เอาทพทจากโปรแกรม คอ
PH 615 197
![Page 196: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/196.jpg)
สมการเสนตรงทใชแทนขอมล คอ y = 3.389 + 0.372x โดยม ความคลาดเคลอนมาตรฐาน = 1.232 สมประสทธสมสมพนธ = 0.900
PH 615 198
![Page 197: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/197.jpg)
เมอสลบ x กบ y แลว fit เสนตรง จะไดเอาทพท คอ ซงจะไดสมการเสนตรงใหมทใชแทนขอมล คอ y = - 5.387 + 2.176x โดยม ความคลาดเคลอนมาตรฐาน = 2.977 สมประสทธสมสมพนธ = 0.900
PH 615 199
![Page 198: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/198.jpg)
ตวอยางท 8.5 จง Fit Simple power equation กบขอมลในตาราง
วธทา ได l og 1.75log 0.3y x= −
ขอมลทใชในการ fit คอ
x y Log x Log y 1 2 3 4 5
0.5 1.7 3.4 5.7 8.4
0 0.301 0.477 0.602 0.699
-0.301 0.226 0.534 0.753 0.922
จดตดบนแกน log a2 = -0.3 ดงนน a2 = 10-0.3 = 0.5 ความชนของกราฟ คอ b2 = 1.75 ดงนน y = 0.5x1.75
PH 615 200
![Page 199: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/199.jpg)
รปท 8.4 การ fit โดยใช power equation
8.3 การถดถอยโพลโนเมยล สมมตวาตองการ fit ดวย second-order polynomial
20 1 2y a a x a x e= + + +
Sum ของ error ยกกาลงสอง คอ
( )2
20 1 2
1
n
r i i ii
S y a a x a x=
= − − −∑
PH 615 201
![Page 200: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/200.jpg)
หา derivative เทยบกบแตละ unknown
( )20 1 2
0
2ri i
S y a a x a xa∂
= − − − −∂ ∑ i
( )20 1 2
1
2ri i i i
S x y a a x a xa∂
= − − − −∂ ∑
( )2 20 1 2
2
2ri i i i
S x y a a x a xa∂
= − − − −∂ ∑
Set ทงสามสมการ =0 จะได normal eqs
( ) ( ) ( )20 1 2i in a x a x a y+ + = i∑ ∑ ∑
( ) ( ) ( )2 30 1 2i i i i ix a x a x a x+ + =∑ ∑ ∑ ∑ y
( ) ( ) ( )2 3 4
0 1 2i i i2
i ix a x a x a x+ + =∑ ∑ ∑ ∑ y
โดย จาก i=1 ถง n สมการทงสามม unknown ทตองหาคา คอ และ โดยสมประสทธหาไดจากขอมล จะเหนไดวา โจทยทหา least-squares ของ second-orderpolynomial จะเหมอนกบการแกระบบ 3 สมการ
∑ 0 1,a a 2a
ในกรณของ order polynomial thm −
2
0 1 2 .... mmy a a x a x a x e= + + + + +
จะเหมอนกบการแกระบบ m+1 สมการ
( )m+1 r
y xSS
n=
−
PH 615 202
![Page 201: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/201.jpg)
ตวอยางท 8.6 จง Fit second-order polynomial กบขอมลในตาราง
ix iy ( )2
i iy y− ( )20 1 2i iy a a x a x− − + i
0 1 2 3 4 5
2.1 7.7 13.6 27.2 40.9 61.1
544.44 314.47 140.03 3.12
239.22 1272.11
0.14332 1.00286 1.08158 0.80491 0.61951 0.09439
ε 152.6 2513.39 3.74657
และจงเขยนโปรแกรมเพอ fit ขอมลน วธทา จากขอมลทให
42, 15, 979i im x x= = =∑ ∑ 6, 152.6, 585.6i i in y x y= = =∑ ∑ 2 22.5, 55, 2488i i ix x x y= = =∑ ∑
325.433, 225iy x= =∑ ดงนนจะเขยน simultaneous linear eqs. ไดเปน
0
1
2
6 15 55 152.615 55 225 585.655 225 979 2488.8
aaa
⎧ ⎫⎛ ⎞ ⎧ ⎫⎪ ⎪ ⎪ ⎪⎜ ⎟ =⎨ ⎬ ⎨ ⎬⎜ ⎟⎪ ⎪ ⎪ ⎪⎜ ⎟
⎝ ⎠ ⎩⎩ ⎭ ⎭
แกสมการโดยวธ Gauss elimination จะได 0 1 22.47857, 2.35929, 1.86071a a a= = =
PH 615 203
![Page 202: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/202.jpg)
ดงนน 2.47857 2.35929 1.86071y x= + +
3.74657 1.126 3y xS = =−
2 2513.39 3.74657 0.998512513.39
r −= =
correlation coefficient 0.9925r = โปรแกรมทใชในการ fit ขอมล คอ *==================================================== PROGRAM POLY_REG *==================================================== * SET THIS BLOCK FOR NEW PROBLEM *---------------------------------------------------- PARAMETER (N=6) DIMENSION X(100),Y(100) DIMENSION A(10,10),B(10),XX(10),SR(10) DATA (X(I),I=1,N) /0.,1.,2.,3.,4.,5./ DATA (Y(I),I=1,N) /2.1,7.7,13.6,27.2,40.9,61.1/ *==================================================== WRITE(*,*)' PLEASE ENTER ORDER OF POLYNOMIAL', + ' (MAXIMUM ORDER IS 10)' READ(*,*) M DO 10 IR=1,10 B(IR)=0. DO 10 IC=1,10 A(IR,IC)=0. 10 CONTINUE
PH 615 204
![Page 203: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/203.jpg)
DO 20 IR=1,M+1 DO 30 IC=1,M+1 K=IR+IC-2 DO 40 I=1,N A(IR,IC)=A(IR,IC)+X(I)**K 40 CONTINUE 30 CONTINUE DO 50 I=1,N B(IR)=B(IR)+Y(I)*(X(I)**(IR-1)) 50 CONTINUE 20 CONTINUE MP1=M+1 CALL GAUSS(MP1,A,B,XX) * --------------------------------- WRITE(*,100) M 100 FORMAT(/, + ' COEFFICIENTS OF FITTED POLYNOMIAL ORDER ',I2,' ARE:', /) DO 60 I=1,M+1 IM1=I-1 WRITE(*,300) IM1,XX(I) 300 FORMAT(5X,'A(',I2,') =',F16.10) 60 CONTINUE * ---------------------------------- *========================================================= * ERROR REPORT *--------------------------------------------------------- SUMSR=0. DO 70 I=1,N SR(I)=0.
PH 615 205
![Page 204: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/204.jpg)
P=0. DO 80 J=1,M P=P+(XX(J+1)*(X(I)**J)) 80 CONTINUE SR(I)=(Y(I)-XX(1)-P)**2. SUMSR=SUMSR+SR(I) 70 CONTINUE YK=0. DO 90 K=1,N YK=YK+Y(K) 90 CONTINUE YAV=YK/N SUMYY=0. DO 91 L=1,N SUMYY=SUMYY+(Y(L)-YAV)**2. 91 CONTINUE SYX=SQRT(SUMSR/(N-(M+1))) R2=(SUMYY-SUMSR)/SUMYY R=SQRT(ABS(R2)) PC=R2*100. WRITE(*,400) SUMYY,SUMSR,SYX,R2,R,PC 400 FORMAT(/,5X,'ST = ',F16.7, + /,5X,'SR = ',F16.7, + /,5X,'THE STANDARD ERROR IS :',F12.7 + /,5X,'THE COEFFICIENT OF DETERMINATION IS :',F12.7, + /,5X,'THE CORRELATION COEFFICIENT IS :',F12.7, + /,5X,'THE RESULT EXPLAINS ',F9.3, + ' % OF THE DATA VARIABILITY.') STOP
PH 615 206
![Page 205: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/205.jpg)
END *--------------------------------------------------------- SUBROUTINE GAUSS(NN,A,B,XX) DIMENSION A(10,10),B(10),XX(10) CALL SCL(NN,A,B) DO 100 IP=1,NN-1 CALL PIVOT(NN,A,B,IP) DO 200 IE=IP+1,NN RATIO = A(IE,IP)/A(IP,IP) DO 300 IC=IP+1,NN A(IE,IC) = A(IE,IC) - RATIO*A(IP,IC) 300 CONTINUE B(IE)=B(IE)-RATIO*B(IP) 200 CONTINUE DO 400 IE=IP+1,NN A(IE,IP)=0. 400 CONTINUE 100 CONTINUE XX(NN)=B(NN)/A(NN,NN) DO 500 IE=NN-1,1,-1 SUM=0. DO 600 IC=IE+1,NN SUM=SUM+A(IE,IC)*XX(IC) 600 CONTINUE XX(IE)=(B(IE)-SUM)/A(IE,IE) 500 CONTINUE RETURN END *----------------------------------------------------------
PH 615 207
![Page 206: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/206.jpg)
SUBROUTINE SCL(NN,A,B) DIMENSION A(10,10),B(10) DO 10 IE=1,NN BIG=ABS(A(IE,1)) DO 20 IC=2,NN AMAX=ABS(A(IE,IC)) IF(AMAX.GT.BIG) BIG=AMAX 20 CONTINUE DO 30 IC=1,NN A(IE,IC)=A(IE,IC)/BIG 30 CONTINUE B(IE)=B(IE)/BIG 10 CONTINUE RETURN END *--------------------------------------------------------- SUBROUTINE PIVOT(NN,A,B,IP) DIMENSION A(10,10),B(10) JP=IP BIG=ABS(A(IP,IP)) DO 10 I=IP+1,NN AMAX=ABS(A(I,IP)) IF(AMAX.GT.BIG) THEN BIG=AMAX JP=I ENDIF 10 CONTINUE IF(JP.NE.IP) THEN DO 20 J=IP,NN
PH 615 208
![Page 207: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/207.jpg)
DUMY = A(JP,J) A(JP,J)= A(IP,J) A(IP,J)= DUMY 20 CONTINUE DUMY = B(JP) B(JP) = B(IP) B(IP) = DUMY ENDIF RETURN END *----------------------------------------------------------- เอาทพททไดจากโปรแกรม คอ สมการท fit ขอมล คอ y = 2.47859 + 2.35926x + 1.860719x2 ซงตรงกบการคานวณดวยคอ มคาความคลาดเคลอนมาตรฐาน Sy/x = 1.12 และสมประสทธสหสมพนธ = 0.9992544 แสดงวา 99.851% ของขอมลอยภายในเสนโคงน การ fit ขอมลดวยสมการ quadration จงมประสทธภาพมาก ดงแสดงในรปท 8.5 โปรแกรมทใชในการ fit ขอมลดวยโพลโนเมยลน สามารถ
ใชไดถงโพลโนเมยลลาดบ 10 จงมประสทธภาพในการ fit ขอมลมาก
PH 615 209
![Page 208: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/208.jpg)
รปท 8.5 การ fit ดวย second – order polynomial ตวอยางท 8.7 ก) จง fit ขอมลตอไปนดวยเสนตรงและจงเขยนกราฟของขอมล และกราฟเสนตรงเพอการเปรยบเทยบ
ข) เชนเดยวกบขอ ก) แต fit ดวยเสนพาราโบลา
x 2 3 4 7 8 9 5 5 y 9 6 5 10 9 11 2 3
วธทา ก) สวนหนงโปรแกรมทใชในการ fit ดวยเสนตรง คอ *==================================================== PROGRAM LIN_REG *==================================================== * SET THIS BLOCK FOR NEW PROBLEM *---------------------------------------------------- PARAMETER (N=8) DIMENSION X(100),Y(100)
PH 615 210
![Page 209: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/209.jpg)
DATA (X(I),I=1,N) /2.,3.,4.,7.,8.,9.,5.,5./ DATA (Y(I),I=1,N) /9.,6.,5.,10.,9.,11.,2.,3./ *==================================================== * LINEAR REGRESSION PROCESS *---------------------------------------------------- เอาทพทจากโปรแกรม คอ สมการท fit คอ y = 3.48955 + 0.62985x
PH 615 211
![Page 210: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/210.jpg)
โดยมสมประสทธสหสมพนธ = 0.45893 แสดงถงความสมพนธระหวางขอมลและกราฟเสนตรงทเลวมาก เพราะวาขอมลเพยง 21.062 % เทานน ทแทนดวยกราฟเสนตรง ดงแสดงในรปตอไปน
0 2 4 6 8
5
10
15
20
10
vy
f1 x( )
vx x,
f1 x( ) 3.489551 0.629850x+:=
ข) สวนหนงโปรแกรมทใชในการ fit ดวยเสนพาราโบลา คอ
*==================================================== PROGRAM POLY_REG *==================================================== * SET THIS BLOCK FOR NEW PROBLEM *---------------------------------------------------- PARAMETER (N=8) DIMENSION X(100),Y(100) DIMENSION A(10,10),B(10),XX(10),SR(10) DATA (X(I),I=1,N) /2.,3.,4.,7.,8.,9.,5.,5./ DATA (Y(I),I=1,N) /9.,6.,5.,10.,9.,11.,2.,3./
PH 615 212
![Page 211: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/211.jpg)
*==================================================== WRITE(*,*)' PLEASE ENTER ORDER OF POLYNOMIAL', + ' (MAXIMUM ORDER IS 10)' READ(*,*) M เอาทพทจากโปรแกรม คอ สมการท fit คอ y = 166.02698 – 4.80693x + 0.48894x2 โดยมสมประสทธสหสมพนธ = 0.8473528 ซงแสดงวาขอมลสามารถอธบายไดดวยสมการถง 71.801 % ดกวาการ fit ดวยกราฟเสนตรงมาก ดงแสดงในรปตอไปน
PH 615 213
![Page 212: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/212.jpg)
0 2 4 6 8 1
5
10
15
20
0
vy
f1 x( )
f2 x( )
vx x,
f2 x( ) 16.026979 4.806926x− 0.488945x2+:=
f1 x( ) 3.489551 0.629850x+:=
8.4 การถดถอยเชงเสนหลายตวแปร ถาหากวา y เปนฟงกชนเชงเสนกบตวแปรสองตว เชน y เปนฟงกชนของ x1
และ x2
0 1 1 2 2y a a x a x e= + + +
รปท 8.6 การถดถอยเชงเสนหลายตวแปร
PH 615 214
![Page 213: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/213.jpg)
เชนเดยวกบวธการทผานมา คาสมประสทธหาจากผลรวมของกาลงสองของความคลาดเคลอน
( )2
0 1 1 2 21
n
r i ii
S y a a x a x=
= − − −∑ i
( )0 1 1 2 20
2ri i
S y a a x a xa∂
= − − − −∂ ∑ i
( )1 0 1 1 2 21
2ri i i i
S x y a a x a xa∂
= − − − −∂ ∑
( )2 0 1 1 2 22
2ri i i i
S x y a a x a xa∂
= − − − −∂ ∑
เซต partial derivatives = 0
01 22
1 1 1 2 1 12
2 1 2 2 2 2
ii i
i i i i i
i i i i i i
yan x x
ix x x x a xx x x x a
y
x y
⎧ ⎫⎛ ⎞⎧ ⎫⎪ ⎪⎜ ⎟⎪ ⎪ ⎪ ⎪=⎨ ⎬ ⎨ ⎬⎜ ⎟
⎪ ⎪ ⎪ ⎪⎜ ⎟⎩ ⎭⎝ ⎠ ⎪ ⎪⎩ ⎭
∑∑ ∑∑ ∑ ∑ ∑∑ ∑ ∑ ∑
ในกรณ m dimension
0 1 1 2 2 ....... m my a a x a x a x= + + + + + e
เมอ standard error
( )m+1 r
y xSS
n=
−
สาหรบกรณ power equation
1 20 1 2 ....... maa a
my a x x x=
PH 615 215
![Page 214: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/214.jpg)
ตวอยางท 8.8 ขอมลตอไปนคานวณจากสมการ
1 25 4 3y x x= + −
1x 2x y 0 2
2.5 1 4 7
0 1 2 3 6 2
5 10 9 0 3 27
จงอาศย multiple linear regression เพอ fit ขอมลชดน และจงเขยนโปรแกรมเพอ fit ขอมล วธทา หาคาสมประสทธตาง ๆ ได
0
1
2
6 16.5 14 5416.5 76.25 48 54 243.514 48 979 100
aaa
⎧ ⎫⎛ ⎞ ⎧ ⎫⎪ ⎪ ⎪ ⎪⎜ ⎟ =⎨ ⎬ ⎨ ⎬⎜ ⎟⎪ ⎪ ⎪ ⎪⎜ ⎟
⎝ ⎠ ⎩ ⎭ ⎩ ⎭
แกสมการโดยวธ Gauss elimination จะได
0 1 25, 4, 3a a a= = = − ซงตรงกบสมการขางบน โปรแกรมทใชในการ fit ขอมล คอ
PH 615 216
![Page 215: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/215.jpg)
*==================================================== PROGRAM MULTI_REG *==================================================== * SET THIS BLOCK FOR NEW PROBLEM *---------------------------------------------------- PARAMETER (N=6,K=2) DIMENSION X(100,10),Y(100) DIMENSION A(10,10),B(10),XX(10) DATA ((X(I,J),J=1,K),I=1,N)/0.,0., + 2.,1., + 2.5,2., + 1.,3., + 4.,6., + 7.,2./ DATA (Y(I),I=1,N) /5.,10.,9.,0.,3.,27./ *==================================================== * PROCESS *---------------------------------------------------- DO 10 IR=1,10 B(IR)=0. DO 10 IC=1,10 A(IR,IC)=0. 10 CONTINUE DO 20 I=1,N DO 30 IR=1,K+1 IF(IR.EQ.1) FR=1. IF(IR.GT.1) FR=X(I,IR-1) DO 40 IC=1,K+1 IF(IC.EQ.1) FC=1.
PH 615 217
![Page 216: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/216.jpg)
IF(IC.GT.1) FC=X(I,IC-1) A(IR,IC)=A(IR,IC)+FR*FC 40 CONTINUE B(IR)=B(IR)+FR*Y(I) 30 CONTINUE 20 CONTINUE KP1=K+1 CALL GAUSS(KP1,A,B,XX) *==================================================== * OUTPUT REPORT *---------------------------------------------------- 100 FORMAT(5X, + '------------------------------------------') 200 FORMAT(6X, + ' COEFFICIENTS OF FITTED POLYNOMIAL ARE:') 300 FORMAT(7X,'A(',I2,') =',F16.10) * ------------------------------- WRITE(*,100) WRITE(*,200) WRITE(*,100) DO 50 I=1,K+1 IM1=I-1 WRITE(*,300) IM1,XX(I) 50 CONTINUE WRITE(*,100) *---------------------------------------------------- STOP END *====================================================
PH 615 218
![Page 217: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/217.jpg)
SUBROUTINE GAUSS(NN,A,B,XX) DIMENSION A(10,10),B(10),XX(10) CALL SCL(NN,A,B) DO 100 IP=1,NN-1 CALL PIVOT(NN,A,B,IP) DO 200 IE=IP+1,NN RATIO = A(IE,IP)/A(IP,IP) DO 300 IC=IP+1,NN A(IE,IC) = A(IE,IC) - RATIO*A(IP,IC) 300 CONTINUE B(IE)=B(IE)-RATIO*B(IP) 200 CONTINUE DO 400 IE=IP+1,NN A(IE,IP)=0. 400 CONTINUE 100 CONTINUE XX(NN)=B(NN)/A(NN,NN) DO 500 IE=NN-1,1,-1 SUM=0. DO 600 IC=IE+1,NN SUM=SUM+A(IE,IC)*XX(IC) 600 CONTINUE XX(IE)=(B(IE)-SUM)/A(IE,IE) 500 CONTINUE RETURN END *---------------------------------------------------- SUBROUTINE SCL(NN,A,B) DIMENSION A(10,10),B(10)
PH 615 219
![Page 218: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/218.jpg)
DO 10 IE=1,NN BIG=ABS(A(IE,1)) DO 20 IC=2,NN AMAX=ABS(A(IE,IC)) IF(AMAX.GT.BIG) BIG=AMAX 20 CONTINUE DO 30 IC=1,NN A(IE,IC)=A(IE,IC)/BIG 30 CONTINUE B(IE)=B(IE)/BIG 10 CONTINUE RETURN END *---------------------------------------------------- SUBROUTINE PIVOT(NN,A,B,IP) DIMENSION A(10,10),B(10) JP=IP BIG=ABS(A(IP,IP)) DO 10 I=IP+1,NN AMAX=ABS(A(I,IP)) IF(AMAX.GT.BIG) THEN BIG=AMAX JP=I ENDIF 10 CONTINUE IF(JP.NE.IP) THEN DO 20 J=IP,NN DUMY = A(JP,J) A(JP,J)= A(IP,J)
PH 615 220
![Page 219: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/219.jpg)
A(IP,J)= DUMY 20 CONTINUE DUMY = B(JP) B(JP) = B(IP) B(IP) = DUMY ENDIF RETURN END *---------------------------------------------------- เอาทพทจากโปรแกรม คอ ซงจะได y = 5 + 4x1 – 3x2 ตรงกบสมการเรมตน ตวอยางท 8.9 จง Fit ฟงกชน กบขอมล ( )1
0 1 0( , , ) 1 a xf x a a a e−= −
x 0.25 0.75 1.25 1.75 2.25
y 0.28 0.57 0.68 0.74 0.79
ใชคาเรมตน และ สาหรบคาเรมจะมคา ผลรวมของกาลงสองของ error = 0.0248
0 1.0a = 1 1.0a =
PH 615 221
![Page 220: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/220.jpg)
วธทา
1
0
1 a xf ea
−∂= −
∂ และ 1
01
a xf a xea
−∂=
∂
อาศยสมการทผานมาหาคาเมทรกซ
[ ]0
0.2212 0.19470.5276 0.35430.7135 0.35810.8262 0.30410.8946 0.2371
Z
⎛ ⎞⎜ ⎟⎜ ⎟⎜ ⎟=⎜ ⎟⎜ ⎟⎜ ⎟⎝ ⎠
[ ] [ ]0 0
2.3193 0.94890.9489 0.4404
TZ Z ⎛ ⎞= ⎜ ⎟⎝ ⎠
[ ] [ ]1
0 0
3.6397 7.84217.8421 19.1678
TZ Z− −⎛ ⎞⎡ ⎤ = ⎜ ⎟⎣ ⎦ −⎝ ⎠
คณดวย[ จะได ]0TZ
[ ] { }0
0.15330.0365
TZ D−⎛ ⎞
= ⎜ ⎟−⎝ ⎠
หาคา vector { โดยอาศยสมการ (17.35) }AΔ
0.2714
0.5019A
−⎧ ⎫Δ = ⎨ ⎬
⎩ ⎭
นาไปรวมกบพารามเตอรซงคาดไว จะได
0
1
1.0 0.2714 0.72861.0 0.5019 1.5019
aa
−⎧ ⎫ ⎧ ⎫ ⎧ ⎫ ⎧ ⎫= + =⎨ ⎬ ⎨ ⎬ ⎨ ⎬ ⎨ ⎬⎩ ⎭ ⎩ ⎭ ⎩ ⎭⎩ ⎭
ซงคาน จะได sum ของ error ยกกาลงสอง = 0.0243 ทาเชนนอก จะได
0 0.79186a = และ 1 1.6751a =
ซงมคา sum ของ error ยกกาลงสอง = 0.000662
PH 615 222
![Page 221: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/221.jpg)
ตวอยางท 8.10 ขอมลตอไปนไดจากการเกบตวอยางในหองปฏบตการชววทยา โดยทาการนบจานวนแบคทเรยทเพาะไดในแตละวน
วน 0 2 4 6 8 10 12 14 16 18 20 จานวน x 106 67.38 70.93 74.67 78.60 82.74 87.10 91.69 92.51 101.60 106.95 112.58
จง fit สมการกบขอมลนโดยใชวธ fit ตาง ๆ กน เพอหาวาวธใดดทสด วธทา
Least-square
y = 2.2165x + 65.721
R 2 = 0.9857
65
75
85
95
105
115
0 5 10 15 20 25
Polynomial
y = 0.0358x 2 + 1.5005x + 67.869
R 2 = 0.9937
65
75
85
95
105
115
0 5 10 15 20 25
PH 615 223
![Page 222: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/222.jpg)
Exponential
y = 67.382e 0.0253x
R 2 = 0.9945
65
75
85
95
105
115
0 5 10 15 20 25
จะเหนไดวาการ fit ดวยกราฟเอกโพเนนเชยลมคาสมประสทธสหสมพนธมคามากทสด จงเปนวธการทดทสดในการ fit ขอมลชดน
8.5 การประมาณคา เมอทาการ fit ขอมลแลว บางครงเราอาจจะตองการหาคาทอยระหวางชดขอมล เชน เมอทาการทดลอง x อาจจะเทากบ 1, 5, 10,… ตองการทราบคา เมอ x = 3 จะสามารถใชวธการประมาณได วธการงายทสดกคอวธ Newton’s divided – difference interpolating polynomials โดยท fn(x) = f(x0) + (x – x0)f[x1,x0] + … + (x – x0)…f[xn,…, x0]
PH 615 224
![Page 223: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/223.jpg)
ตวอยางท 8.11 จง fit โพลโนเมยลลาดบสองกบขอมล x0 = 1 f(x0) = 0 x1 = 4 f(x1) = 1.386294 x2 = 5 f(x2) = 1.609438 x3 = 6 f(x3) = 1.791759 อาศยโพลโนเมยลประมาณคา ln(2) วธทา โปรแกรมทใชในการคานวณ คอ *==================================================== PROGRAM NT_ITP DIMENSION X(10),FX(10,10) *----------------------------------------------------- PARAMETER (N=4) DATA (X(I),I=1,N) /1.,4.,5.,6./ DATA (FX(I,1),I=1,N) /0.,1.386294,1.609438,1.791759/ XX=2. *----------------------------------------------------- M=N DO 10 IC=2,N M=M-1 DO 20 IR=1,M FX(IR,IC)=FX(IR+1,IC-1)-FX(IR,IC-1) FX(IR,IC)=FX(IR,IC)/(X(IR+IC-1)-X(IR)) 20 CONTINUE 10 CONTINUE FF=FX(1,1) FAC=1.
PH 615 225
![Page 224: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/224.jpg)
DO 30 I=2,N FAC=FAC*(XX-X(I-1)) FF=FF+FX(1,I)*FAC 30 CONTINUE *==================================================== * OUTPUT REPORT *---------------------------------------------------- 100 FORMAT(5X,'DATA') 200 FORMAT(5X, + '--------------------------------------------') 300 FORMAT(10X,'ith',9X,'Xi',11X,'F(Xi)') 400 FORMAT(9X,I3,1X,2F14.6) 500 FORMAT(5X,'VALUE OF F(X) AT X=',F10.6, + ' IS', F12.8) WRITE(*,100) WRITE(*,200) WRITE(*,300) WRITE(*,200) DO 40 ITH=1,N WRITE(*,400) ITH,X(ITH),FX(ITH,1) 40 CONTINUE WRITE(*,200) WRITE(*,500) XX,FF WRITE(*,200) STOP END *----------------------------------------------------
PH 615 226
![Page 225: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/225.jpg)
เอาทพทจากโปรแกรม คอ จะได ln(2) = 0.62876755
8.6 อนกรมฟเรยร เราไดศกษาการปรบเสนโคงโดยอาศยโพลโนเมยลในหวขอทผานมา ปญหาทางดานฟสกสบางครงเกยวของกบการออสซลเลต ซงอาจจะตองใชฟงกชนเรขาคณต เชน cos x, cos 2x, …, sin x, sin 2x, … มาใชแทนการประมาณอนกรมฟเรยรจะอาศยฟงกชนเหลานมาใชแทนโมเดล สาหรบฟงกชนทมคาบ T อนกรมฟเรยรสามารถเขยนไดเปน
f(x) = a0 + a1 cos(ω0t) + b1 sin(ω0t) + a2 cos(2ω0t) + b2 sin(2ω0t) + …
PH 615 227
![Page 226: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/226.jpg)
รปท 8.7 การประมาณอนกรมฟเรยรกบคลนรปสเหลยม
PH 615 228
![Page 227: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/227.jpg)
แบบฝกหดบทท 8
1. จง fit ขอมลชดนดวยกราฟเสนตรง
x 5 6 10 14 16 20 22 28 28 36 38 y 30 22 28 14 22 16 8 8 14 0 4
และจงประมาณคาท x = 12, 24 และ 31
2. จง fit ขอมลชดนดวยโมเดล saturation – growth – rate
x 0.75 2 2.5 4 6 8 8.5 y 0.8 1.3 1.2 1.6 1.7 1.8 1.7
และจงเขยนกราฟขอมลและสมการบนกราฟเดยวกน
3. จงใชโมเดลเอกโพเนนเชยล fit ขอมลน
x 0.4 0.8 1.2 1.6 2.0 2.3 y 750 1000 1400 2000 2700 3750
4. จงใช multiple linear regression เพอ fit ขอมล x1 0 1 1 2 2 3 3 4 4 x2 0 1 2 1 2 1 2 1 2 y 1.5 1.8 12.8 25.7 20.6 35.0 29.8 45.5 40.3
5. จงอาศยการถดถอยไมเปนเชงเสนเพอ fit กราฟพาราโบลากบขอมลน
x 0.075 0.5 1 1.2 1.7 2.0 2.3 y 600 800 1200 1400 2050 2650 3750
PH 615 229
![Page 228: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/228.jpg)
บทท 9 การอนทเกรท
การอนทเกรททงายทสดกคอ การอนทเกรทโดยการแทนฟงกชนดวยโพลโนเมยล
( ) ( )b b
na a
I f x dx f x dx= ≅∫ ∫
เมอ ( ) 1
0 1 1..... n nn nf x a a x a x a x−−= + + + +
รปท 9.1 การประมาณอนทเกรทดวยพนทใตกราฟ a) เสนตรง b) เสนพาราโบลา
รปท 9.2 การประมาณอนทเกรทดวยพนทใตกราฟเสนตรงสามเสน
PH 615 231
![Page 229: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/229.jpg)
ตวอยางท 9.1 จงอนทเกรทสมการตอไปน
a) ( )∫ −−3
01 dxe x
b) ( )∫− +−−4
2
5341 dxxxx
c) ( )∫ +2/
0sin48
πdxx
วธทา
a) = 2.05 ( )∫ −−3
01 dxe x
b) ( )∫− +−−4
2
5341 dxxxx = 432
c) = 16.566 ( )∫ +2/
0sin48
πdxx
9.1 ทราเปซอยดอลรล (Trapezoidal rule) อาศยโพลโนเมยลลาดบแรก
( ) ( )1
b b
a a
I f x dx f x dx= ≅∫ ∫
เมอ
( ) ( ) ( ) ( ) ( )1
f b f af x f a x a
b a−
= + −−
( ) ( ) ( ) ( )b
a
f b f aI f a x a dx
b a−⎡ ⎤
= + −⎢ ⎥−⎣ ⎦∫
จะได
( ) ( ) ( )2
f a f bI b a
+= −
เรยกวา Trapezoidal rule
PH 615 232
![Page 230: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/230.jpg)
รปท 9.3 แสดง Trapezoidal rule
โดยมความคลาดเคลอน
( )( )33112rE f b aξ= − −
เมอ อยระหวาง และb แตถาตองการใหไดความถกตองแมนยามากยงขน ใหแบงชวงของการอนทเกรทเปนสวนเลกหลาย ๆ สวน จากนนใหใชทราเปซอยดอลรลกบแตละสวนเรยกวา Multiple – Trapezoidal rule
ξ a
ตวอยางท 9.2 จงอาศย Trapezoidal rule. อนทเกรตสมการ
( ) 2 3 41 0.2 25 200 675 900 400 5f x x x x x= + − + − + x
จาก a = 0 ถง b = 0.8 และจงเขยนโปรแกรมโดยใชวธทราเปซอยดอล และวธ Multiple – Trapezoidal
PH 615 233
![Page 231: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/231.jpg)
วธทา
( )0 0.f = 2
( )0.8 0.232f =
( ) 0.2 0.2320.8 0.17282
I +≅ =
คาทแทจรงคอ 1.640533 1.640533 0.1728 1.467733rE = − = คดเปนerror 89.5% โปรแกรมทใชในการคานวณ คอ PROGRAM TRAPZ REAL A,B,OLDVAL,NEWVAL,H,INTEGR INTEGER N PRINT *,'ENTER LEFT AND RIGHT ENDPOINTS OF INTERVAL' PRINT *,'OF INTEGRATION. ALSO ENTER ACCURACY DESIRED.' PRINT *,'ENTER A,B,N ' READ *,A,B,N H=(B-A)/N OLDVAL = (B-A)*(F(A)+F(B))/2. SUM = (F(A)+F(B))/2 DO 10 I=1,N-1 SUM = SUM+F(A+I*H) 10 CONTINUE INTEGR =H*SUM NEWVAL = INTEGR
PH 615 234
![Page 232: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/232.jpg)
WRITE(*,100)N-1,OLDVAL WRITE(*,200)NEWVAL 100 FORMAT(/,7X,'THE INTEGRAL VALUE AFTER ',I3,' ITERATION',//, + 7X,'BY THE TRAPEZOIDAL RULE IS :',F10.6,///) 200 FORMAT( 7X,'THE VALUE OF THE INTEGRAL BY',//, + 7X,'THE MULTIPLE-TRAPEZOIDAL RULE IS :',F10.6) STOP END *-------------------------------------------------------------------- FUNCTION F(X) REAL X F = 0.2+25.*X-200.*X**2.+675.*X**3.-900.*X**4.+400.*X**5. END *------------------------------------------------------------------- เอาทพทจากการคานวณ คอ ซงจะไดคาอนทเกรท คอ 0.1728 ตรงกบการคานวณดวยมอ แตถาใช multiple trapezoidal rule จะไดคาอนทเกรทคอ 1.615042 ซงมคาใกลเคยงกบคาทแทจรงมาก
PH 615 235
![Page 233: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/233.jpg)
ตวอยางท 9.3 อาศยวธทราเปซอยดอล และ multiple trapezoidal คานวณอนทเกรทในตวอยาง 9.1 วธทา ใชโปรแกรมคานวณอนทเกรทโดยวธทราเปซอยดอลในตวอยาง 9.1 จะไดเอาทพท คอ a) b) c)
PH 615 236
![Page 234: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/234.jpg)
จะเหนไดวา ถาแบง segment จานวนนอยคาทไดจะผดพลาดไปมาก ในขอ c) ใชจานวน segment = 1,000 จงมคาใกลเคยงกบคาทแทจรง อยางไรกตาม ถา segment มจานวนมาก การคานวณดวยเครองคดเลขจะยงยากและใชเวลานานมาก
9.2 วธซมปสน (Simpson’s Rule) อาศยโพลโนเมยลลาดบสง ม 2 วธ คอ วธท 1 หลกการซมปสน 1/3
รปท 9.3 หลกการซมปสน 1/3 สตรทใชในการคานวณคอ
( ) ( ) ( ) ( )0 146
2f x f x f xI b a
+ += −
ความคลาดเคลอน
( ) ( )5
4
2880r
b aE f ξ
−= −
PH 615 237
![Page 235: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/235.jpg)
สาหรบการใชหลกการซมปสน 1/3 หลาย ๆ ครง ครงละหนงสวน
รปท 9.4 การใชหลกการซมปสน 1/3 แตละสวน
( )b ah
n−
= −
≅I ( ) ( ) ( ) ( ) ( ) ( ) ...6
426
42 432210 +++
+++ xfxfxfhxfxfxfh
+ ( ) ( ) ( )6
42 12 nnn xfxfxfh ++ −−
หรอ
( )( ) ( ) ( ) ( )
1 2
01,3,5 2,4,6
4 2
3
n n
i ji j
nf x f x f x fI b a
n
− −
= =
+ +≅ −
∑ ∑ x
โดยมความคลาดเคลอน
( )54
180a
b aE f
n−
= −
PH 615 238
![Page 236: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/236.jpg)
วธท 2 หลกการซมปสน 3/8 สมการทใชคานวณคอ
( ) ( ) ( ) ( ) ( )0 1 23 38
3f x f x f x f xI b a
+ + +≅ −
โดยมความคลาดเคลอน
( ) ( )5
4
6480a
b aE f ξ
−= −
ตวอยางท 9.4 จงหาคาอนทเกรทของสมการ โดยวธซมปสน 1/3 f(x) = 0.2 + 25x – 200x2 + 675x3 – 900x4 + 400x5
จาก a = 0 ถง b = 0.8 คาตอบทถกตองคอ 1.640533 วธทา ใช n = 4 (h = 0.2) f(0) = 0.2 f(0.2) = 1.288 f(0.4) = 2.456 f(0.6) = 3.464 f(0.8) = 0.232 จะได
I = ( ) ( )12
232.0456.22464.3288.142.08.0 ++++
= 1.623467 มคาใกลเคยงกบคาทแทจรง ความคลาดเคลอน
= aE ( )( )
( )24004180
8.04
2
−−
= 0.017067
PH 615 239
![Page 237: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/237.jpg)
โปรแกรมทใชในการคานวณคอ PROGRAM SIMPSN REAL A,B,INTEGL,SUMODD,SUMEVEN,H INTEGER N INTEGL=0. WRITE(*,*)' ENTER A,B,N' READ(*,*) A,B,N H=(B-A)/N CALL SHOWFX(A,N,H) CALL SUMMATION(A,N,H,SUMODD,SUMEVN) *------------------------------------------------------------ * EQUATION 21.18 P.599 *------------------------------------------------------------ INTEGL=(B-A)*(F(A)+4.*SUMODD+2.*SUMEVN+F(B))/(3.*N) *------------------------------------------------------------ WRITE(*,50) 50 FORMAT(9X,'N',13X,'H',11X,'F(A)',9X,'F(B)',6X,'INTEGRAL',/) WRITE(*,100) N,H,F(A),F(B),INTEGL 100 FORMAT(5X,I5,5X,5F13.7) STOP END *============================================================ *------------------------------------------------------------ FUNCTION F(X) REAL X F = 0.2+25.*X-200.*X*X+675.*X**3.-900.*X**4.+400.*X**5. END *------------------------------------------------------------
PH 615 240
![Page 238: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/238.jpg)
SUBROUTINE SUMMATION(A,N,H,SUMODD,SUMEVN) REAL A,H,SUMODD,SUMEVN SUMODD =0. SUMEVN =0. DO 10 I=1,N,2 IF(I.GE.N) GO TO 30 SUMODD=SUMODD+F(A+(I*H)) 10 CONTINUE 30 DO 20 J=2,N,2 IF(J.GE.N) GO TO 100 SUMEVN=SUMEVN+F(A+(J*H)) 20 CONTINUE *------------------------------------------- 100 WRITE(*,50) 50 FORMAT(//9X,'SUMODD',6X,'SUMEVEN',/) WRITE(*,200) SUMODD,SUMEVN 200 FORMAT(/5X,2F12.6//) *------------------------------------------- RETURN END *============================================================ SUBROUTINE SHOWFX(A,N,H) REAL A,H WRITE(*,50) F(A) 50 FORMAT(10X,'F( 0 ) =',F12.6) DO 10 I=1,N WRITE(*,100) I,F(A+(I*H)) 10 CONTINUE 100 FORMAT(10X,'F(',I3,' )',' =',F12.6)
PH 615 241
![Page 239: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/239.jpg)
RETURN END *============================================================ เอาทพทจากโปรแกรม คอ จะไดอนทเกรท = 1.6234670 ตวอยางท 9.5 จงหาอนทเกรทในตวอยาง 9.1 โดยใชวธการซมปสน 1/3 วธทา โปรแกรมทใชในการคานวณจากตวอยาง 9.4 โดยเปลยน f(x) เอาทพทจากโปรแกรม คอ
PH 615 242
![Page 240: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/240.jpg)
a) b) c)
PH 615 243
![Page 241: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/241.jpg)
ตวอยางท 9.6 จงหาคาอนทเกรทในตวอยาง 9.1 โดยวธ Multiple simpson 1/3 rule โดยใช N = 6 วธทา โปรแกรมทใชในการคานวณ คอ * MULTIPLE SIMSON'S 1/3 RULES * PROGRAM SIMPSN REAL A,B,INTEGL,SUMODD,SUMEVEN,H INTEGER N INTEGL=0. WRITE(*,20) 20 FORMAT(/,10X,'ENTER LEFT AND RIGHT ENDPOINTS ', + 'OF INTEGRATION A,B AND INTERVAL,N ') READ(*,*) A,B,N H=(B-A)/N CALL SHOWFX(A,N,H) CALL SUMMATION(A,N,H,SUMODD,SUMEVN) *------------------------------------------------------------ * EQUATION 21.18 P.599 *------------------------------------------------------------ INTEGL=(B-A)*(F(A)+4.*SUMODD+2.*SUMEVN+F(B))/(3.*N) *------------------------------------------------------------ WRITE(*,10) A,B WRITE(*,50) 10 FORMAT(/, 10X,'THE MULTIPLE SIMSON 1/3 RULES',/, + 10X,'INTEGRATE F(X) = (1.-EXP(-X))',/, + 10X,'FROM',F9.5,' TO',F9.5,/)
PH 615 244
![Page 242: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/242.jpg)
50 FORMAT(10X,'N',13X,'H',11X,'F(A)',9X,'F(B)',7X, + 'INTEGRAL',/) WRITE(*,100) N,H,F(A),F(B),INTEGL 100 FORMAT(6X,I5,6X,5F13.7) STOP END *============================================================ SUBROUTINE SUMMATION(A,N,H,SUMODD,SUMEVN) REAL A,H,SUMODD,SUMEVN SUMODD =0. SUMEVN =0. DO 10 I=1,N,2 IF(I.GE.N) GO TO 30 SUMODD=SUMODD+F(A+(I*H)) 10 CONTINUE 30 DO 20 J=2,N,2 IF(J.GE.N) GO TO 100 SUMEVN=SUMEVN+F(A+(J*H)) 20 CONTINUE *------------------------------------------- 100 WRITE(*,50) 50 FORMAT(/,10X,'SUM ODD',7X,'SUM EVEN') WRITE(*,200) SUMODD,SUMEVN 200 FORMAT(6X,2F12.6) *------------------------------------------- RETURN END *============================================================ SUBROUTINE SHOWFX(A,N,H)
PH 615 245
![Page 243: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/243.jpg)
REAL A,H WRITE(*,50) F(A) 50 FORMAT(10X,'F( X0 ) =',F12.6) DO 10 I=1,N WRITE(*,100) I,F(A+(I*H)) 10 CONTINUE 100 FORMAT(10X,'F( X',I2,' )',' =',F12.6) RETURN END *============================================================ *------------------------------------------------------------ FUNCTION F(X) REAL X F = (1-EXP(-X)) END *------------------------------------------------------------ เอาทพทจากโปรแกรม คอ a)
PH 615 246
![Page 244: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/244.jpg)
b) c)
PH 615 247
![Page 245: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/245.jpg)
9.3 การอนทเกรทโดยแตละ segment มคาไมเทากน
( ) ( ) ( ) ( ) ( ) ( )0 1 1 2 11 2 .....
2 2 2n n
n
f x f x f x f x f x f xI h h h −+ +≅ + + +
+
เมอ ความกวางของสวนท i ih
รปท 9.5 การอนทเกรทโดยแตละสวนมคาไมเทากน
9.4 การอนทเกรทโดยวธรอมเบรก
Romberg Integration ประยกตจาก trapezoidal rule
( ) ( )2 14 13 3
I I h I h= −
เมอ = step size 1 2,h h
อลกอรทมทใชกบคอมพวเตอรโดยวธรอมเบรก คอ
PH 615 248
![Page 246: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/246.jpg)
11, 1 , 1
, 1
44 1
kj k j k
j k k
I II
−+ − −
−
−≅
−
เมอ และ = อนทเกรททถกตองมากและนอยตามลาดบ 1, 1j kI + − , 1j kI −
ตวอยางท 9.7 จงอนทเกรทสมการในตวอยาง 9.4 โดยใชวธ single และ multiple trapezoidal rule จากนนใชวธของรอมเบรกเพอทาใหผลเฉลยถกตองยงขน
วธทา ≅ I ( ) ( )0688.1314848.1
34
−
= 1.623467 ซงมความคลาดเคลอนเพยง 1% โปรแกรมทใชในการคานวณ โดยวธรอมเบรก คอ PROGRAM ROMBERG DIMENSION R(10,10) REAL A,B WRITE(*,*)' PLEASE ENTER LIMIT OF INTEGRAL', + ' A,B AND ERROR ES' READ(*,*) A,B,ES FX0=FUNC(A) FXN=FUNC(B) R(1,1)=(FX0+FXN)*(B-A)/2. DO 10 I=1,9 N=2**I CALL TRAPEZ(A,B,N,AREA) R(I+1,1)=AREA
PH 615 249
![Page 247: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/247.jpg)
DO 20 IC=2,I+1 K =IC-1 IR=2+I-IC R(IR,IC)=((4**K)*R(IR+1,K)-R(IR,K))/(4**K-1.) 20 CONTINUE ER=ABS(100.*(R(1,K+1)-R(2,K))/R(1,K+1)) IF(ER.LE.ES) GO TO 30 10 CONTINUE 30 WRITE(*,100) A,B 100 FORMAT(//,7X,'INTEGRATE FUNCTION ',//, + 7X,'F(X)=0.2+25.*X-200.*X*X+675.*(X**3.)', + '-900.*(X**4.)+400.*(X**5.)',// + 7X,'FROM',F10.6,' TO',F10.6,/) WRITE(*,200) R(1,K+1),ER 200 FORMAT(' FINAL INTEGRAL VALUE =',F16.10,/, + ' WITH RELATIVE ERROR =',F16.10,' %') STOP END *========================================================== SUBROUTINE TRAPEZ(A,B,N,AREA) H=(B-A)/N SUM=0. X=A+H DO 10 I=1,N-1 FX=FUNC(X) SUM=SUM+FX X=X+H 10 CONTINUE FX0=FUNC(A)
PH 615 250
![Page 248: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/248.jpg)
FXN=FUNC(B) AREA=(FX0+FXN+2.*SUM)*H/2. RETURN END *========================================================== FUNCTION FUNC(X) FUNC=0.2+25.*X-200.*X*X+675.*(X**3.) + -900.*(X**4.)+400.*(X**5.) RETURN END *========================================================== เอาทพท คอ จะไดคาอนทเกรท = 1.6405341625 คาทแทจรง = 1.640533 มคาถกตองถงทศนยม 5 หลก
PH 615 251
![Page 249: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/249.jpg)
แผนผงตอไปนแสดงการคานวณโดยวธรอมเบรก โดย a) iteration ครงแรก b) iteration ครงทสอง c) iteration ครงทสาม
( 20 h ) ( )40 h ( )60 h ( )80 h
a) 0.172800 1.367467 1.068800 b) 0.172800 1.367467 1.640533 1.068800 1.623467 1.481800 c) 0.172800 1.367467 1.640533 1.640533 1.068800 1.623467 1.640533 1.481800 1.639467 1.600800
ตวอยางท 9.8 จงอาศยการอนทเกรทโดยวธรอมเบรกหาคา ( )∫ +2
1
2/1 dxxx
วธทา สวนหนงของโปรแกรมทใชในการคานวณ คอ *========================================================== FUNCTION FUNC(X) FUNC = (X+1./X)**2. RETURN END *==========================================================
PH 615 252
![Page 250: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/250.jpg)
เอาทพทจากโปรแกรม คอ
9.5 การอนทเกรทโดยวธเกาสควอดราเจอร (Gauss Quadrature)
เปนวธการเลอกจดในการอนทเกรทใหเหมาะสมเพอทจะไดพนทใตกราฟทถกตองมากยงขน
รปท 9.6 วธเกาสควอดราเจอร
PH 615 253
![Page 251: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/251.jpg)
ตวอยางท 9.9 จงอนทเกรทสมการในตวอยาง 9.4 โดยวธเกาสควอดราเจอร วธทา โปรแกรมทใชในการคานวณ คอ PROGRAM GAUSS_QUADRATURE DIMENSION XI(21),W(21) DATA XI/0.0000000,-.5773503,.5773503, + -.7745967,0.0000000,0.7745967, + -.8611363,-.3399810,0.3399810, + 0.8611363,-.9061798,-.5384693, + 0.0000000,0.5384693,0.9061798, + -.9324695,-.6612094,-.2386192, + 0.2386192,0.6612094,0.9324695/ DATA W/2.0000000,1.0000000,1.0000000, + 0.5555556,0.8888889,0.5555556, + 0.3478549,0.6521452,0.6521452, + 0.3478549,0.2369269,0.4786287, + 0.5688889,0.4786287,0.2369269, + 0.1713245,0.3607616,0.4679139, + 0.4679139,0.3607616,0.1713245/ REAL A,B WRITE(*,*)' PLEASE ENTER LIMIT OF INTEGRAL A,B ' READ(*,*) A,B A0=(A+B)/2. A1=(B-A)/2. IC=1 DO 10 NG=1,6 SUM=0.
PH 615 254
![Page 252: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/252.jpg)
DO 20 ITERMS=1,NG X=A0+A1*XI(IC) AI=FUNC(X) SUM=SUM+W(IC)*AI IC=IC+1 20 CONTINUE SUM=A1*SUM WRITE(*,100) NG,SUM 100 FORMAT(' RESULT OF INTEGRATION WITH',I2, + ' GUASS POINT(S) IS',F16.10) 10 CONTINUE STOP END *------------------------------------------------ FUNCTION FUNC(X) FUNC=0.2+25.*X-200.*(X*X)+675*(X**3.) + -900.*(X**4.)+400.*(X**5.) RETURN END *------------------------------------------------ เอาทพทจากโปรแกรม คอ
ถาใช 6 จดจะไดคาอนทเกรท = 1.64053 ซงตรงกบคาทแทจรง
PH 615 255
![Page 253: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/253.jpg)
แบบฝกหดบทท 9
1. จงอนทเกรทฟงกชนตอไปน โดยวธทราเปซอยดอล
( ) dxx∫−
+5
3
354
2. จงอนทเกรทฟงกชนตอไปน โดยวธทราเปซอยดอล และวธซมปสน
dxxe x∫3
0
2
3. จงอนทเกรทฟงกชนในขอ 2. โดยวธ multiple Simpson’s rule 4. จงอนทเกรทขอมลตอไปน โดยวธทราเปซอยดอล
x 0 0.1 0.2 0.3 0.4 0.5 y 1 7 4 3 5 2
5. ทาขอ 4. โดยวธซมปสน 6. จงหาคาโดยวธรอมเบรก
dxxe x∫3
0
2
7. จงหาคาโดยวธเกาสควอดราเจอร
( ) ( )( )∫ −−−1
0
1201.0 12.1 dxexx x
PH 615 256
![Page 254: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/254.jpg)
บทท 10 อนพนธและสมการดฟเฟอเรนเชยล
วธการหาอนพนธแบบงายกคอ การหาความชนของฟงกชน เราอาจจะใชการประมาณโดยวธ forward, backward หรอ centered difference กได วธนความคลาดเคลอนจะมคาแปรตามกาลงสองของชวงขน O(h2)
10.1 วธ finite difference
จากอนกรมเทยเลอร
( ) ( ) ( ) ( ) 21 .....
2i
i i i
f xf x f x f x h h+
′′′= + + +
จะได
( ) ( ) ( ) ( ) ( )2 1 24 30
2i i i
i
f x f x h f xf x h
h+ +− + −
′ = +
ซงจะสามารถคานวณอนพนธได 3 วธ ดงน วธท 1 Forward finite – divided – difference
First Derivative error
( ) ( ) ( )1ii
if x f xf x
h+ −
′ = ( )0 h
( ) ( ) ( ) ( )2 14 32
i ii
if x f x h ff x
h+ +− + −
′ =x
( )20 h
PH 615 257
![Page 255: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/255.jpg)
Second Derivative
( ) ( ) ( ) ( )2 12
2i ii
if x f x ff x
h+ +− +
′′ =x
( )0 h
( ) ( ) ( ) ( ) ( )3 2 12
4 5 2i i ii
if x f x f x ff x
h+ + +− + − +
′′ =x
( )20 h
Third Derivative
( ) ( ) ( ) ( ) ( )3 2 13
3 3i i ii
if x f x f x ff x
h+ + +− + +
′′′ =x
( )0 h
( ) ( ) ( ) ( ) ( ) ( )4 3 2 13
3 14 24 18 52
i i i ii
if x f x f x f x ff x
h+ + + +− + − + +
′′′ =x
( )20 h
Fourth Derivative
( ) ( ) ( ) ( ) ( ) ( )4 3 2 14
4 6 4i i i ii
if x f x f x f x ff x
h+ + + +− + − +
′′′′ =x
( )0 h
( ) ( ) ( ) ( ) ( ) ( ) ( )5 4 3 2 14
2 11 24 26 14 3i i i i ii
if x f x f x f x f x ff x
h+ + + + +− + − + − +
′′′′ =x
( )20 h
วธท 2 Backward finite – divided – difference
First Derivative error
( ) ( ) ( )1i ii
f x f xf x
h−−
′ = ( )0 h
( ) ( ) ( ) ( )13 42
i ii
2if x f x h f xf x
h−+ +
′ = − ( )20 h
PH 615 258
![Page 256: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/256.jpg)
Second Derivative
( ) ( ) ( ) ( )12
2i ii
f x f x f xf x
h−− +
′′ = 2i− ( )0 h
( ) ( ) ( ) ( ) ( )1 22
2 5 4i i ii
3if x f x f x f xf x
h− −− + −
′′ = − ( )20 h
Third Derivative
( ) ( ) ( ) ( ) ( )1 13
3 3i i ii
3if x f x f x f xf x
h− −− + −
′′′ = − ( )0 h
( ) ( ) ( ) ( ) ( ) ( )1 2 33
5 18 24 14 32
i i i ii
4if x f x f x f x f xf x
h− − −− + + +
′′′ = − ( )20 h
Fourth Derivative
( ) ( ) ( ) ( ) ( ) ( )4 1 2 34
4 6 4i i i ii
4if x f x f x f x f xf x
h+ − − −− + − +
′′′′ = − ( )0 h
( ) ( ) ( ) ( ) ( ) ( ) ( )1 2 3 44
3 14 26 24 11 2i i i i ii
5if x f x f x f x f x f xf x
h− − − −− + − + −
′′′′ = −
)
( )20 h
วธท 3 Center finite – divided – difference
First Derivative error
( ) ( ) (1
2i
i1if x f x
f xh
+ −′ = − ( )20 h
( ) ( ) ( ) ( ) ( )2 1 18 812
i i ii
2if x f x f x f xf x
h+ + −− + − +
′ = − ( )40 h
PH 615 259
![Page 257: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/257.jpg)
Second Derivative
( ) ( ) ( ) ( )12
2i ii
1if x f x f xf x
h+ + +
′′ = − ( )20 h
( ) ( ) ( ) ( ) ( ) ( )2 1 12
16 30 1612
i i i ii
2if x f x f x f x f xf x
h+ + −− + − + −
′′ = − ( )40 h
Third Derivative
( ) ( ) ( ) ( ) ( )2 1 13
2 22
i i ii
f x f x f x f xf x
h+ + −− + −
′′′ = 2i− ( )20 h
( ) ( ) ( ) ( ) ( ) ( ) ( )3 2 1 1 23
8 13 13 88
i i i i ii
3if x f x f x f x f x f xf x
h+ + + − −− + − + − +
′′′ = −
( )40 h
Fourth Derivative
( ) ( ) ( ) ( ) ( ) ( )2 1 14
4 6 4i i i ii
2if x f x f x f x f xf x
h+ + −− + − +
′′′′ = − ( )20 h
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )3 2 1 1 24
12 39 56 39 126
i i i i i ii
3if x f x f x f x f x f x f xf x
h+ + + − −− + + + − + +
′′′′ = −
( )40 h
ตวอยางท 10.1 จงหาอนพนธของสมการ f(x) = -0.1x4 – 0.15x3 – 0.5x2 – 0.25x + 1.2 ทจด x = 0.5 โดยวธ finite divided difference ใช h = 0.25 วธทา ขอมลทตองการในการคานวณ คอ Xi-2 = 0 f(xi-2) = 1.2 Xi-1 = 0.25 f(xi-1) = 1.103516 Xi = 0.5 f(xi) = 0.925 Xi+1 = 0.75 f(xi+1) = 0.6363281 Xi+2 = 1 f(xi+2) = 0.2
PH 615 260
![Page 258: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/258.jpg)
สาหรบ forward difference
= ( 5.0f ′ ) ( ) ( )( )5.02
925.036363281.042.0 −+−
= - 0.859375 สาหรบ backward difference
= ( 5.0f ′ ) ( ) ( )( )25.02
2.1035156.14925.03 +−
= - 0.878125 สาหรบ centered difference
= ( 5.0f ′ ) ( ) ( )( )25.012
035156.186363281.082.0 −+−
= - 0.9125
วธ centered difference จะใหคาถกตองทสด โดยมความคลาดเคลอน εt = 0%
10.2 การหาอนพนธโดยวธรชารดสน จากการหาคาอนทเกรทโดย Ricchardson extrapolation
( ) ( ) ( ) ( )2 21 2
1/ 1 1I I h I h I h
h h≅ + −⎡ ⎤⎣ ⎦−
เมอ และ เปนการอนทเกรทโดยใช step size และ
ตามลาดบ ( )1hI ( )2hI 1h 2h
สาหรบการคานวณดวยคอมพวเตอร เพอความสะดวกจะใช = ดงนน 2h 2/1h
( ) ( )2 14 13 3
I I h I h≅ −
PH 615 261
![Page 259: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/259.jpg)
เชนเดยวกน จะสามารถหาอนพนธไดจาก
( ) ( )2 14 13 3
D D h D h≅ −
ตวอยางท 10.2 จงหาอนพนธในตวอยาง 10.1 โดยวธรชารดสน
วธทา = = - 1.0 ( )5.0D1
2.12.0 −
= ( )25.0D5.0
103516.16363251.0 − = - 0.934375
ดงนน
D = ( ) ( 131934375.0
34
−−− ) = - 0.9125
ซงตรงกบคาทแทจรง εt = 0 %
10.3 การแกสมการดฟเฟอเรนเชยลโดยวธออยเลอร
จากสมการดฟเฟอเรนเชยล = f(x,y) dxdy
อนพนธอนดบแรก จะเปนคาความชนท xi
( ),i if x yφ =
เมอ เปนสมการดฟเฟอเรนเชยลท xi และ yi ( ,i i )f x y
ดงนน ( )1 ,i i i iy y f x y+ = + h
เปนสตรทใชโดยวธออยเลอร
PH 615 262
![Page 260: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/260.jpg)
รปท 10.1 วธออยเลอร ตวอยางท 10.3 จงใชวธออยเลอรอนทเกรทสมการ
dxdy = - 2x3 + 12x2 – 20x + 8.5
จาก x = 0 ถง x = 4 โดยใช step size = 0.5 ภาวะเรมตนเมอ x = 0 จะได y = 1 ผลเฉลยจรงคอ y = -0.5x4 + 4x3 – 10x2 + 8.5x + 1 วธทา จากสตรของวธออยเลอร y(0.5) = y(0) + f(0,1)0.5 เมอ y(0) = 1 และหาความชนท x = 0 คอ f(0,1) = -2(0)3 + 12(0)2 – 20(0) + 8.5 = 8.5 ดงนน y(0.5) = 1.0 + 8.5(0.5) = 5.25
PH 615 263
![Page 261: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/261.jpg)
ผลเฉลยจรงท x = 0.5 คอ y = -0.5(0.5)4 + 4(0.5)3 – 10(0.5)2 + 8.5(0.5) + 1 = 3.21875
ซงมความคลาดเคลอนมาก εt = 63.1 % สาหรบการคานวณขนทสอง y(1) = y(0.5) + f(0.5,5.25)0.5 = 5.25 + [- 2(0.5)3 + 12(0.5)2 – 20(0.5) + 8.5]0.5 = 5.875
คานวณเชนนหลาย ๆ ครง จะไดผลเฉลย แตกยงมความคลาดเคลอนคอนขางมาก
รปท 10.1 เปรยบเทยบคาจรงกบคาจากวธเชงตวเลข
PH 615 264
![Page 262: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/262.jpg)
สาหรบการคานวณดวยคอมพวเตอรใชโปรแกรมตอไปน PROGRAM EULER WRITE(*,50) 50 FORMAT(' PLEASE ENTER X,Y,N,H') READ(*,*) X,Y,N,H WRITE(*,100) H 100 FORMAT(' SOLUTION WITH STEP SIZE =',F10.4, + ' IS:',/,10X,'X',15X,'Y') WRITE(*,200) X,Y 200 FORMAT(3F16.6) DO 10 I=1,N F1=FUNC1(X,Y) Y=Y+F1*H X=X+H WRITE(6,200) X,Y 10 CONTINUE STOP END *------------------------------------------------ FUNCTION FUNC1(X,Y) FUNC1=-2.*(X**3.)+12.*(X**2.)-20.*X+8.5 RETURN END *------------------------------------------------ เอาทพทจากโปรแกรม คอ
PH 615 265
![Page 263: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/263.jpg)
จะได y(0.5) = 5.25 y(1) = 5.875 y(4) = 7 เปนตน ตวอยางท 10.4 จงแกปญหาคาเรมตน (initial – value problem) ตอไปนภายในชวง x = 0 ถง 2
dxdy = yx2 – 1.2y
เมอ y(0) = 1 วธทา สวนหนงของโปรแกรมทใชในการคานวณ คอ *------------------------------------------------ FUNCTION FUNC1(X,Y) FUNC1=Y*(X**2.)-1.2*Y RETURN END *----------------------------------------------- เอาทพทจากการคานวณ คอ
PH 615 266
![Page 264: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/264.jpg)
ตวอยางท 10.5 จงเขยนกราฟเพอเปรยบเทยบผลเฉลยจากตวอยาง 10.4 เมอใช h = 0.5 และ 0.25
Euler's method with h=0.5 and 0.25
0
0.2
0.4
0.6
0.8
1
1.2
0 0.5 1 1.5 2 2.5x
y
Step size 0.5
Step size 0.25
วธทา
PH 615 267
![Page 265: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/265.jpg)
10.4 การแกสมการดฟเฟอเรนเชยลโดยวธรงกตตา (Runge – Kutta Methods) แกสมการ Ordinary differential equations
( ),dy f x ydx
=
( )1 , ,i i i iy y x y hφ+ = + h
โดยท φ(xi,yi,h) เปน inerement function ในรป
1 1 2 2 ...... n na k a k a kφ = + + + เมอ a เปนคาคงท และ k มคาดงน
( )( )( )
( )
1
2 1 11 1
3 2 21 1 22 2
1 1,1 1 1,2 2 1, 1
,
,
,...
, .....
i i
i i
i i
n i n i n n n n n
k f x y
k f x p h y q k h
k f x p h y q k h q k h
k f x p h y q k h q k h q k h− − − − −
=
= + +
= + + +
= + + + + + 1−
วธรงกตตามอยหลายแบบดวยกน ขนกบจานวนเทอมใน inerement function ท
นามาใช เชน n = 2 สาหรบลาดบสอง, n = 3 สาหรบลาดบ,… เปนตน
PH 615 268
![Page 266: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/266.jpg)
สาหรบวธรงกตตาลาดบสอง
( )1 1 1 2i iy y a k a kφ+ = + + 2 h ( )( )
1
2 1 1
,
,i i
i i
k f x y
k f x p h y q k h
=
= + + 1 1
1 2
2 1
2 11
11212
a a
a p
a q
+ =
=
=
สาหรบวธรงกตตาลาดบสาม
( )1 1 21 46i iy y k k k+ = + + + 3 h
( )
( )
1
2 1
3 1
,
1 1,2 2, 2
i i
i i
i i
k f x y
k f x h y k h
k f x h y k h k h
=
⎛ ⎞= + +⎜ ⎟⎝ ⎠
= + − + 2
สาหรบวธรงกตตาลาดบส
( )1 1 2 31 2 26i iy y k k k k+ = + + + + 4 h
( )
( )
1
2 1
3 2
4 3
,
1 1,2 21 1,2 2,
i i
i i
i i
i i
k f x y
k f x h y k h
k f x h y k h
k f x h y k h
=
⎛ ⎞= + +⎜ ⎟⎝ ⎠⎛ ⎞= + +⎜ ⎟⎝ ⎠
= + +
PH 615 269
![Page 267: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/267.jpg)
สาหรบวธรงกตตาลาดบหา
( )1 1 3 4 51 7 32 12 32 790i iy y k k k k k+ = + + + + + 6 h
( )1
2 1
3 1 2
4 2 3
5 1 4
6 1 2 3 4
,
1 1,4 41 1 1,4 8 81 1,2 23 3 9,4 16 16
3 2 12 12 8,7 7 7 7 7
i i
i i
i i
i i
i i
i i
k f x y
k f x h y k h
k f x h y k h k h
k f x h y k h k h
k f x h y k h k h
k f x h y k h k h k h k h k h
=
⎛ ⎞= + +⎜ ⎟⎝ ⎠⎛ ⎞= + + +⎜ ⎟⎝ ⎠⎛ ⎞= + + +⎜ ⎟⎝ ⎠⎛ ⎞= + + +⎜ ⎟⎝ ⎠⎛ ⎞= + − + + − +⎜ ⎟⎝ ⎠
5
ตวอยางท 10.6 จงใชวธรงกตตาลาดบสอนทเกรทสมการ
f(x,y) = - 2x3 + 12x2 – 20x + 8.5
โดยใช h = 0.5 และภาวะเรมตน y = 1 ท x = 0 วธทา k1 = 8.5, k2 = 4.21875, k3 = 4.21875 และ k3 = 1.25 จะได
y(0.5) = ( )[ ] ( )5.0
25.121875.4221875.425.8611
⎭⎬⎫
⎩⎨⎧ ++++
= 3.21875 ซงตรงกบคาแทจรง
PH 615 270
![Page 268: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/268.jpg)
โปรแกรมทใชในการคานวณ คอ PROGRAM RK4 WRITE(*,50) 50 FORMAT(' PLEASE ENTER X,Y,N,H') READ(*,*) X,Y,N,H WRITE(*,100) H 100 FORMAT(' SOLUTION WITH STEP SIZE =',F10.6, + ' IS:',/,10X,'X',15X,'Y') WRITE(*,200) X,Y 200 FORMAT(2F16.6) DO 300 I=1,N AK1=FUNC(X,Y) XX=X+H/2. YY=Y+H*AK1/2. AK2=FUNC(XX,YY) YY=Y+H*AK2/2. AK3=FUNC(XX,YY) XX=X+H YY=Y+H*AK3 AK4=FUNC(XX,YY) Y=Y+(AK1+2.*AK2+2.*AK3+AK4)*H/6. X=X+H WRITE(*,200) X,Y 300 CONTINUE STOP END *-------------------------------------------------------
PH 615 271
![Page 269: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/269.jpg)
FUNCTION FUNC(X,Y) FUNC=-2.*(X**3.)+12.*(X**2.)-(20.*X)+8.5 RETURN END *------------------------------------------------------- เอาทพท คอ จะได y(0.5) = 3.218750 ตรงกบคาแทจรง ตวอยางท 10.7 จงใชวธรงกตตาลาดบสอนทเกรทสมการ f(x,y) = 4e0.8x – 0.5y โดยใช h = 0.5 และ y(0) = 2 จาก x = 0 ถง 0.5 และจงเขยนโปรแกรมเพออนทเกรทสมการน
PH 615 272
![Page 270: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/270.jpg)
วธทา k1 = f(0.2) = 4e0.8(1) – 0.5(2) = 3 ใชคานคานวณ y และความชนทจดกงกลาง y(0.25) = 2 + 3(0.25) = 2.75 k2 = f(0.25,2.75) = 4e0.8(0.25) – 0.5(2.75) = 3.510611 ใชคานคานวณ y และความชนทจดกงกลาง y(0.25) = 2 + 3.510611(0.25) = 2.877653 k3 = f(0.25,2.877653) = 4e0.8(0.25) – 0.5(2.877653)
= 3.510611 ตอไปใชคาความชนนคานวณ y และความชนทจดปลายของชวง y(0.5) = 2 + 3.071785(0.5) = 3.723392 k4 = f(0.5,3.723392) = 4e0.8(0.5) – 0.5(3.723392)
= 4.105603 สดทาย นาคาความชนทงสมาหาคาเฉลย ซงจะนาคาเฉลยนไปพยากรณคาทจดปลายของชวง
φ = ( ) ( )[ ]105603.4446785.32510611.32361
+++
= 3.503399 y(0.5) = 2 + 3.503399(0.5) = 3.751669
ซงมคาใกลเคยงกบคาทแทจรง คอ 3.751521 มาก
PH 615 273
![Page 271: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/271.jpg)
สวนหนงของโปรแกรมโดยวธรงกตตาทใชในการคานวณ คอ *------------------------------------------------------- FUNCTION FUNC(X,Y) FUNC=(4.*EXP(0.8*X))-0.5*Y RETURN END *------------------------------------------------------- เอาทพทจากโปรแกรม คอ จะได y(0.5) = 3.751699 ตรงกบการใชเครองคดเลขดวยมอ
PH 615 274
![Page 272: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/272.jpg)
ตวอยางท 10.8 จงใชวธรงกตตาลาดบสอนทเกรทสมการ
dxdy = yx2 – 1.2y
เมอ y(0) = 1 วธทา ใชโปรแกรมในตวอยาง 10.6 โดยเปลยนคาฟงกชน เอาทพทจากโปรแกรม คอ ซงจะไดคา y เมอ x = 0, 0.5, … , 4
การคานวณโดยใชโปรแกรมคอมพวเตอร จะใหผลทถกตองแมนยาและรวดเรว อยางไรกตามนกศกษาจะตองเขาใจขนตอนการแกปญหากอน โดยวธกดเครองคดเลขดวยมอ แลวจงนาผลลพธทไดมาเปรยบเทยบกน
PH 615 275
![Page 273: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/273.jpg)
10.5 ปญหาคาทขอบเขตและคาไอเกน
การแกสมการดฟเฟอเรนเชยล จะขนกบคาเรมตนแตบางครง บางปญหาไมไดขนกบคาเรมตนคาเดยว แตจะมคาตาง ๆ ตามคาตวแปรทจดเหลานน คาเหลานมกจะเปนคาเฉพาะทจดขอบเขตของระบบ จงมชอเรยกวา ปญหาทขอบเขต
รปท 10.2 ปญหาคาทขอบเขต
ตวอยางปญหาคาทขอบเขตเชน ปญหาความรอนเคลอนทภายในแทงเหลกยาว ถาไมมฉนวนหมแทงเหลก จะมความรอนถายเทออกมาจากแทงเหลก ถาท x = 0 อณหภม = T1 และท x = L อณหภม = T2 จะเขยนเปนภาวะขอบเขตไดเปน
T(0) = T1 T(L) = T2
PH 615 276
![Page 274: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/274.jpg)
โดยมสมการอนพนธแทนอณหภมทตาแหนงตาง ๆ
( TThdx
)a −′2Td
+2 = 0
เมอ = สมประสทธการถายเทความรอน ซงจะสามารถใชสมการเชงตวเลข เพอแกสมการหาอณหภมทตาแหนงตาง ๆ ได
h′
รปท 10.3 การถายเทความรอนในแทงเหลก
คาไอเกน (eigen value) เปนปญหาหนงของปญหาคาขอบเขตทเกยวของกบระบบทางฟสกส เชน ระบบการเคลอนทของมวลบนสปรง ระบบอนภาคภายใตศกยของกลศาสตรควนตม เปนตน
10.6 เลขสม (Random number)
การแกสมการอนพนธบางระบบทมลกษณะเฉพาะ อาจจะไมตองกระทาโดยใชวธการทไดกลาวมาแลว เชน การแผรงสของสารกมมนตรงส จะเปนไปอยาง random อตราการสลายตวของสารกมมนตรงส จะขนกบจานวนอะตอมทมอย
dtdN = - λN
สามารถใชเลขสมแทนโมเดลการแผรงส ซงทาใหไมจาเปนทจะตองแกสมการอนพนธ
โดยตรงฟงกชนทใชในการสรางเลขสม คอ
PH 615 277
![Page 275: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/275.jpg)
FUNCTION RAN(K) PARAMETER (M = 243000, IA = 4561, IC = 51349) K = MOD(K*IA+IC,M) RAN = K/(1.*M) RETURN END
PH 615 278
![Page 276: Computational Physics in Thai](https://reader035.vdocuments.net/reader035/viewer/2022082203/55cf9323550346f57b9c046e/html5/thumbnails/276.jpg)
แบบฝกหดบทท 10
จงใชวธ finite difference หาอนพนธของ y = ex ท x = 1 ใช h = 0.1 1.
จงใชวธของรชารดสนหาอนพนธของ y = sin x ท x = π/4 ใช h1 = π/3 และ 2.
h2 = π/6
3. จรวดลาหนงเคลอนทไดระยะทางดงน
t 0 1 2 3 4 5 y 0 2 8 18 32 50
จงหาความเรวและความเรงของจรวดทเวลา t
4. จงใชวธออยเลอรแกสมการ
2
2
dtyd = (1+x) y
เมอ y(0) = 1 แกสมการจาก x = 0 ถง 1
5. จงแกสมการจาก t = 0 ถง 3
dtdy = - y + t
เมอ y(0) = 1 โดยวธรงกตตาลาดบสาม โดยใช h = 0.5
PH 615 279