一维优化方法黄金分割法c语言,一维黄金分割法程序

该程序实现了黄金分割法(Golden Section Search)来寻找一元函数的局部极值点。用户输入初始点t0、步长h和加步系数alpha,程序通过迭代更新搜索区间,直到满足精度条件为止。程序适用于寻找函数的最小值点。
摘要由CSDN通过智能技术生成

黄金分割法程序

#include

#include

#define f(t) (8*pow(t,3)-2*pow(t,2)-7*t+3)

#define eps pow(10,-6)

void sb(double *a,double *b)

{

double t0,t1,t,h,alpha,f0,f1;

int k=0;

printf("请输入初始点t0=");

scanf("%lf",&t0);

printf("\n请输入初始 步长h=");

scanf("%lf",&h);

printf("\n请输入加步系数alpha(需大于1)=");

scanf("%lf",&alpha);

f0=f(t0);

t1=t0+h;

f1=f(t1);

while(1)

{

printf("\nf1=%lf,f2=%lf,t0=%lf,t=%lf,h=%lf,k=%d",f0,f1,t0,t1,h,k); if(f1

{

h=alpha*h;

t=t0;

t0=t1;

f0=f1;

k++;

}

else

{

if(k==0)

{h=-h;t=t1;}

else

{

*a=t

*b=t>t1?t:t1;

break;

}

}

t1=t0+h;

f1=f(t1);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值