1 / 48

บทที่ 4 การหาจุดต่ำที่สุดของฟังก์ชั่นที่ไม่มีข้อจำกัด ด้วยวิธีการเชิงตัวเลข

บทที่ 4 การหาจุดต่ำที่สุดของฟังก์ชั่นที่ไม่มีข้อจำกัด ด้วยวิธีการเชิงตัวเลข. ดุลยโชติ ชลศึกษ์ Mechanical Engineering Department Thammasat University. หัวข้อ. การหาจุดต่ำที่สุดของฟังก์ชั่น ตัวแปรเดียว ด้วยวิธีการเชิงตัวเลข. การหาจุดต่ำที่สุดของฟังก์ชั่น หลายตัวแปร ด้วยวิธีการเชิงตัวเลข.

zamora
Download Presentation

บทที่ 4 การหาจุดต่ำที่สุดของฟังก์ชั่นที่ไม่มีข้อจำกัด ด้วยวิธีการเชิงตัวเลข

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. บทที่ 4การหาจุดต่ำที่สุดของฟังก์ชั่นที่ไม่มีข้อจำกัดด้วยวิธีการเชิงตัวเลข ดุลยโชติ ชลศึกษ์ Mechanical Engineering Department Thammasat University

  2. หัวข้อ การหาจุดต่ำที่สุดของฟังก์ชั่นตัวแปรเดียว ด้วยวิธีการเชิงตัวเลข การหาจุดต่ำที่สุดของฟังก์ชั่นหลายตัวแปรด้วยวิธีการเชิงตัวเลข Module 4 : Numerical Method for Unconstrained Optimization

  3. การหาจุดต่ำที่สุดของฟังก์ชั่นตัวแปรเดียว ด้วยวิธีการเชิงตัวเลข 1 f(x) • วิธีตัดครึ่ง • วิธีตัดส่วนทอง • วิธีประมาณด้วยพาราโบลา • วิธีของนิวตัน x Module 4 : Numerical Method for Unconstrained Optimization

  4. วิธีตัดครึ่ง 1. หาจุด 3 จุดเรียงกัน A B C โดยที่จุด B อยู่ต่ำที่สุด 2. หาจุด D โดยการแบ่งครึ่งช่วง A-B 3. เรียกจุดที่ต่ำที่สุดเป็นจุด B ใหม่ จุดที่อยู่ข้างซ้ายของจุด B เป็นจุด A และข้างขวาเป็นจุด C Module 4 : Numerical Method for Unconstrained Optimization

  5. วิธีตัดครึ่ง (2) ทำการหาจุด D โดยสลับไปแบ่งครึ่งช่วง B-C ตามรูป 4.1 ให้เรียกจุดที่ต่ำที่สุดเป็นจุด B ใหม่ จุดที่อยู่ข้างซ้ายของจุด B เป็นจุด A และข้างขวาเป็นจุด C Module 4 : Numerical Method for Unconstrained Optimization

  6. วิธีตัดครึ่ง(3) ทำซ้ำไปเรื่อยๆจนได้ความละเอียดที่ต้องการ Module 4 : Numerical Method for Unconstrained Optimization

  7. โปรแกรม Bisection C BRACKETING DO 100 I=1,MAXITER XC=XB+STEP CALL OBJFNC(XC,FC) IF (ABS(FC-FB).LT.FTOL) GOTO 200 IF (FC.GT.FB) GOTO 200 XA=XB FA=FB XB=XC FB=FC 100 CONTINUE C BISECTION 200 XD=(XC+XB)/2 CALL OBJFNC(XD,FD) IF (FD.LT.FB) THEN XA=XB FA=FB XB=XD FB=FD ELSE XC=XD FC=FD ENDIF XD=(XA+XB)/2 CALL OBJFNC(XD,FD) IF (FD.LT.FB) THEN XC=XB FC=FB XB=XD FB=FD ELSE XA=XD FA=FD ENDIF I=I+1 IF (I.GT.MAXITER) GOTO 300 IF (ABS(FA-F0).LT.FTOL) GOTO 300 Module 4 : Numerical Method for Unconstrained Optimization

  8. วิธีตัดส่วนทอง สมมุติว่าสัดส่วนระหว่างระยะ A-B และ B-C เป็น และสมมุติว่าทำการแบ่งช่วง B-C ที่จุด D โดยมีสัดส่วน Module 4 : Numerical Method for Unconstrained Optimization

  9. วิธีตัดส่วนทอง(2) ต้องการให้ความกว้างของช่วงการค้นหาลดลงอย่างสม่ำเสมอจะต้องกำหนดให้ หรือ รักษาสัดส่วนการค้นหาตามเดิม หรือ Module 4 : Numerical Method for Unconstrained Optimization

  10. วิธีตัดส่วนทอง(3) แก้สมการทั้งสอง จะได้ Module 4 : Numerical Method for Unconstrained Optimization

  11. วิธีตัดส่วนทอง(4) • สัดส่วนw = 0.38197 เรียกว่าสัดส่วนทอง (Golden Ratio) • ในการค้นหาแต่ละรอบความกว้างของช่วงที่ค้นหาจะลดลงเหลือ 0.61803 เท่าของช่วงเดิมเสมอ • ในการค้นหาแบบตัดครึ่งช่วงกว้างจะลดลงด้วยสัดส่วนที่ไม่แน่นอน • คืออาจลดลงเหลือ 0.75 หรือ 0.5 เท่าของช่วงเดิมแล้วแต่จังหวะของการค้นหา Module 4 : Numerical Method for Unconstrained Optimization

  12. วิธีของนิวตัน ประมาณฟังก์ชั่นด้วยอนุกรมของเทย์เลอร์ ที่จุดต่ำที่สุด ความชันเป็นศูนย์ ใช้ Forward Difference Module 4 : Numerical Method for Unconstrained Optimization

  13. ตัวอย่าง 4.1 Module 4 : Numerical Method for Unconstrained Optimization

  14. ตัวอย่าง 4.1 (2) Module 4 : Numerical Method for Unconstrained Optimization

  15. ตัวอย่าง 4.1 (3) Module 4 : Numerical Method for Unconstrained Optimization

  16. การบ้าน 4 Module 4 : Numerical Method for Unconstrained Optimization

  17. การหาจุดต่ำที่สุดของฟังก์ชั่นหลายตัวแปร ด้วยวิธีการเชิงตัวเลข 2 Module 4 : Numerical Method for Unconstrained Optimization

  18. วิธีค้นหาทีละทิศทาง Module 4 : Numerical Method for Unconstrained Optimization

  19. ตัวอย่าง 4.2 Module 4 : Numerical Method for Unconstrained Optimization

  20. ตัวอย่าง 4.2 (2) Module 4 : Numerical Method for Unconstrained Optimization

  21. วิธีลงทางชันที่สุด Module 4 : Numerical Method for Unconstrained Optimization

  22. วิธีลงทางชันที่สุด (2) Module 4 : Numerical Method for Unconstrained Optimization

  23. ตัวอย่าง 4.3 Module 4 : Numerical Method for Unconstrained Optimization

  24. ตัวอย่าง 4.3 (2) Module 4 : Numerical Method for Unconstrained Optimization

  25. ปัญหาของวิธีลงทางชันที่สุดปัญหาของวิธีลงทางชันที่สุด การเดินแบบซิกแซก Module 4 : Numerical Method for Unconstrained Optimization

  26. วิธีเกรเดี้ยนร่วม Module 4 : Numerical Method for Unconstrained Optimization

  27. วิธีเกรเดี้ยนร่วม (2) Module 4 : Numerical Method for Unconstrained Optimization

  28. ตัวอย่าง 4.5 Module 4 : Numerical Method for Unconstrained Optimization

  29. ตัวอย่าง 4.5 (2) Module 4 : Numerical Method for Unconstrained Optimization

  30. เปรียบเทียบการลู่เข้า Module 4 : Numerical Method for Unconstrained Optimization

  31. เปรียบเทียบการลู่เข้า Module 4 : Numerical Method for Unconstrained Optimization

  32. การเขียนโปรแกรม PROGRAM CONJUG PARAMETER N=2 DIMENSION X(N),X1(N),G(N),D(N),G0(N),D0(N) C SPECIFY OPTIMIZATION PARAMETERS MAXITER=100 XTOL=0.00001 FTOL=0.00001 GTOL=0.00001 F0=1.E9 C SPECIFY INITIAL VALUE OF VARIABLES X(1)=-1 X(2)=1 OPEN (2,FILE='CONOUT.TXT') OPEN(3,FILE='CONLOG.TXT') C EVALUATE THE INITIAL POINT CALL OBJFNC(X,N,F) C START STEEPEST DIRECTION PROCESS DO 200 J=1,MAXITER WRITE(2,*) J,(X(I),I=1,N),F WRITE(*,*) J,(X(I),I=1,N),F IFLAG=0 C EVALUATE GRADIENT CALL GRADF(X,N,G) Module 4 : Numerical Method for Unconstrained Optimization

  33. การเขียนโปรแกรม C FIND SIZE OF G SIZEG=0 DO 110 I=1,N 110 SIZEG=SIZEG+G(I)*G(I) SIZEG=SQRT(SIZEG) C EXIT CONDITION 1 IF (ABS(SIZEG).LT.GTOL) GOTO 600 C COMPUTE CONJUGATE DIRECTION IF (J.EQ.1) THEN DO 112 I=1,N D(I)=-G(I) D0(I)=-G(I) 112 G0(I)=G(I) SIZEG0=SIZEG ELSE BETA=(SIZEG/SIZEG0)**2 DO 114 I=1,N D(I)=-G(I)+BETA*D0(I) G0(I)=G(I) 114 D0(I)=D(I) SIZEG0=SIZEG ENDIF Module 4 : Numerical Method for Unconstrained Optimization

  34. การเขียนโปรแกรม C LINE SEARCH IN CONJUGATE DIRECTION SIZED=SIZVEC(D,N) DO 130 I=1,N 130 D(I)=D(I)/SIZED C EVALUATE OBJECTIVE FUNCTION CALL MLINE(X,N,D,F) C EXIT CONDITION 2 190 IF ((J.GT.2).AND.(ABS(F-F0).LT.FTOL))GOTO 600 F0=F 200 CONTINUE 600 WRITE(2,*) J,(X(I),I=1,N),F END Module 4 : Numerical Method for Unconstrained Optimization

  35. โปรแกรมย่อยOBJFNC SUBROUTINE OBJFNC(X,N,F) DIMENSION X(N) C ***** INPUT YOUR OBJECTIVE FUNCTION HERE.***** C THE DEFAULT FUNCTION IS 2D ROSENBROCK FUNCTION. F=(1-X(1))**2+100*(X(2)-X(1)**2)**2 WRITE(3,*) (X(I),I=1,N),F END Module 4 : Numerical Method for Unconstrained Optimization

  36. โปรแกรมย่อยGRADF SUBROUTINE GRADF(X,N,G) DIMENSION X(N),G(N) C ***** INPUT YOUR GRADIENT FUNCTION HERE ****** C –- OR -- C USE CENTRAL DIFFERENCE IN CASE NO ANALYTICAL EXPRESSION FOR C GRADIENT DX=0.0001 DO I=1,N X(I)=X(I)+DX CALL OBJFNC(X,N,FF) X(I)=X(I)-2*DX CALL OBJFNC(X,N,FB) G(I)=(FF-FB)/2/DX X(I)=X(I)+DX ENDDO WRITE(*,*) 'G',(G(I),I=1,N) END Module 4 : Numerical Method for Unconstrained Optimization

  37. วิธีของนิวตันสำหรับตัวแปรหลายมิติวิธีของนิวตันสำหรับตัวแปรหลายมิติ ในหลายมิติ Module 4 : Numerical Method for Unconstrained Optimization

  38. การบ้าน 4 Module 4 : Numerical Method for Unconstrained Optimization

  39. วิธีค้นหาแบบตาราง Module 4 : Numerical Method for Unconstrained Optimization

  40. วิธีค้นหาแบบตาราง Module 4 : Numerical Method for Unconstrained Optimization

  41. วิธีสามเหลี่ยมสะท้อน Module 4 : Numerical Method for Unconstrained Optimization

  42. วิธีสามเหลี่ยมสะท้อน Module 4 : Numerical Method for Unconstrained Optimization

  43. การสุ่มลดพื้นที่ Module 4 : Numerical Method for Unconstrained Optimization

  44. วิธีลำดับขั้นตอนทางพันธุกรรมวิธีลำดับขั้นตอนทางพันธุกรรม Module 4 : Numerical Method for Unconstrained Optimization

  45. การผสม Module 4 : Numerical Method for Unconstrained Optimization

  46. การกลายพันธุ์ Module 4 : Numerical Method for Unconstrained Optimization

  47. ตัวอย่างการทำงาน Module 4 : Numerical Method for Unconstrained Optimization

  48. การสุ่มจุดใน N มิติ C SPECIFY THE RANGE NDATA=10000 XMIN=-10 XMAX=10 FMAX=1.E9 FMIN=-1.E9 C RANDOMLY GENERATE DATA POINTS DX=XMAX-XMIN DO 200 J=1, NDATA 50 DO 100 I=1,N CALL RANDOM_NUMBER(RR) 100 X(I)=XMIN+DX*RR 200 WRITE(*,*) (X(I),I=1,N) Module 4 : Numerical Method for Unconstrained Optimization

More Related