黃金分割法、二次插值法C語言編程_第1頁
黃金分割法、二次插值法C語言編程_第2頁
黃金分割法、二次插值法C語言編程_第3頁
黃金分割法、二次插值法C語言編程_第4頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、已知:F(x)=x4-4x3-6x2-16x+4,求極小值,極小值點,區(qū)間,迭代次數(shù)? 用進退法確定區(qū)間,用黃金分割法求極值。 #include <stdio.h> #include <math.h> #define e 0.001 #define tt 0.01 float f(double x)  float y=pow(x,4)-4*pow(x,3)-6*pow(x,2)-16*x+4; 

2、;return(y);  finding(float *p1,float*p2)  float x1=0,x2,x3,t,f1,f2,f3,h=tt; int n=0; x2=x1+h;f1=f(x1);f2=f(x2); if(f2>f1) h=-h;t=x2;x2=x1;x1=t; do         x3=x2+h;h=2*h;f3=f(x3);n=n+1; wh

3、ile(f3<f2); if(x1>x3) t=x1;x1=x3;x3=t; *p1=x1;*p2=x3; return(n);  gold(float *p)  float a,b,x1,x2,f1,f2; int n=0; finding(&a,&b); do        x1=a+0.382*(b-a);   &

4、#160;     x2=a+0.618*(b-a);f1=f(x1);f2=f(x2);n=n+1;          if(f1>f2) a=x1;          else b=x2; while(b-a)>e); *p=(x1+x2)/2;return(n);  main() 

5、 float a,b,x,min;int n1,n2; n1=finding(&a,&b); n2=gold(&x); min=f(x); printf("n The area is %f to %f.",a,b); printf("n The nunmber 1 is %d.",n1); printf("n Th

6、e min is %f and the result is %f.",x,min); printf("n The nunmber 2 is %d.",n2)        二插法 已知:F(x1,x2)=4*x1-x2的平方-12;求極小值,極小值點,迭代次數(shù)? 用復合形法求極值。 約束條件:x2>=0;

7、0;x1>=0;  25-x1的平方-x2的平方>=0; #include <stdio.h> #include <math.h> #define EP 0.0001 #define E 0.01 #define fori for(i=0;i<=1;i+) int i; float f(float *p)  float y;&

8、#160;y=4*p0-pow(p1,2)-12; return(y);  int cons(float *q)  int n; if(pow(q0,2)+pow(q1,2)-25<=0)&&(q0>=0)&&(q1>=0)         n=1; else         n=0;&#

9、160;return(n);  void paixu(float *p1,float *p2,float *p3)  float f1,f2,f3; float L2,M2,H2; f1=f(p1); f2=f(p2); f3=f(p3); fori  Hi=p1i;Mi=p2i;Li=p3i; if(f1>f2)         

10、          if(f2<f3)           if(f1>f3) fori  Mi=p3i;Li=p2i;            else fori  Hi=p3i;Mi=p1i;Li=p2i; 

11、;        else        if(f2<f3)          fori  Hi=p3i;Li=p1i;        else       if(

12、f1>f3)            fori  Hi=p2i;Mi=p1i;Li=p3i;          else            fori  Hi=p2i;Mi=p3i;Li=p1i; for

13、i  p1i=Hi;p2i=Mi;p3i=Li;  float r()  float  rr; do        rr=rand(); while(rr<=0); rr=rr/32767; return(rr);  main()  float x12=2,1,x22=4,1,x32=3,3; float XC2,XR2,

14、A2,B2; float H=1.3,FH,FR,FC,FL,cha,min,S; int tf,tf1,tf2; do                  do                   &

15、#160;    paixu(x1,x2,x3);            /*       fori printf("n X1%d is %f,X2%d is %f,X3%d is %f.",i,x1i,i,x2i,i,x3i);   &#

16、160;        */       fori XCi=(x2i+x3i)/2;            /*       fori printf("n XC%d is %f.",i,XC

17、i);            */            tf1=cons(XC);             if(tf1=0)         &#

18、160;     FC=f(XC);         FL=f(x3);         if(FL<FC)           fori  Ai=x3i;Bi=XCi;       

19、 else           fori  Ai=XCi;Bi=x3i;        do           S=r();x1i=Ai+S*(Bi-Ai);tf2=cons(x1);       

20、 while(tf2=0);        do           S=r();x2i=Ai+S*(Bi-Ai);tf2=cons(x2);        while(tf2=0);        do   

21、        S=r();x3i=Ai+S*(Bi-Ai);tf2=cons(x3);        while(tf2=0);                          

22、0; while(tf1=0);         fori XRi=XCi+H*(XCi-x1i);         /*           fori printf("n XR%d is %f.",i,XRi); &#

23、160;       */         FH=f(x1);         FR=f(XR);         tf=cons(XR);         if(tf&

24、amp;&(FR<FH)                       fori x1i=XRi;            /*       printf(&q

25、uot;n 1");            */                    else           H=H/2;         /*        &#

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論