黄金分割法、二次插值法c语言编程

上传人:第*** 文档编号:33583849 上传时间:2018-02-15 格式:DOCX 页数:4 大小:14.09KB
返回 下载 相关 举报
黄金分割法、二次插值法c语言编程_第1页
第1页 / 共4页
黄金分割法、二次插值法c语言编程_第2页
第2页 / 共4页
黄金分割法、二次插值法c语言编程_第3页
第3页 / 共4页
黄金分割法、二次插值法c语言编程_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《黄金分割法、二次插值法c语言编程》由会员分享,可在线阅读,更多相关《黄金分割法、二次插值法c语言编程(4页珍藏版)》请在金锄头文库上搜索。

1、已知:F(x)=x4-4x3-6x2-16x+4, 求极小值,极小值点,区间,迭代次数? 用进退法确定区间,用黄金分割法求极值。#include #include #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; 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(f2f1) h=-h

2、;t=x2;x2=x1;x1=t;do x3=x2+h;h=2*h;f3=f(x3);n=n+1; while(f3x3) 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( do x1=a+0.382*(b-a); x2=a+0.618*(b-a);f1=f(x1);f2=f(x2);n=n+1; if(f1f2) a=x1; else b=x2; while(b-a)e); *p=(x1+x2)/2;return(n); main() float

3、a,b,x,min;int n1,n2;n1=finding( n2=gold(min=f(x); printf(n The area is %f to %f.,a,b); printf(n The nunmber 1 is %d.,n1);printf(n The 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;求极小值,极小值点,迭代次数? 用复合形法求极值。 约束条件:x2=0; x1=0; 25-x1 的平方 -x2 的平方=

4、0;#include #include #define EP 0.0001#define E 0.01 #define fori for(i=0;i=0)&(q1=0) n=1;else n=0; 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(f1f2) if(f2f3) fori Mi=p3i;Li=p2i; else fori Hi=p3i;Mi=p1i;Li=p2i; else if(f2f3) fori Hi=p2i;Mi=p1i;Li=p3i; else fori Hi=p2i;Mi=p3i;Li=p1i; fori p1i=Hi;p2i=Mi;p3i=Li; float r() float rr; do rr=rand();while(rrE);min=f(x3); printf(n The Min is %f.,min); fori printf(n The X%d is %f.,i,x3i);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号