
正文
如何用C语言算出函数极值 c语言求级数公式
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言求正弦函数的极值点,下面的程序输入的大一些会死循环,求解释
楼主的算法在数学上是没有问题的,但在计算机上就不一样了.
x和x+h完全可能相等,
当x+h==x+0并且y(x-h)==y(x+h),然后就是死循环了.
建议楼主把程序中的float都换为double再试一试.
或者把y(x-h)y(x+h)换成y(x-h)=y(x+h).
再者,我搞不明白bool
bRet存在的意义是什么,望楼主释疑.
相关问答
Q1: 用C语言求2次函数极值
y=ax^2+bx+c
以上面为例:a=1 b=4 c=0
极值=(4ac-b^2)/4a
double a=1, b=4, c=0;
double jizhi;
jizhi=(4*a*c-b*b)/(4*a);
Q2: c语言求最大值函数
自定义函数实现
int max(int a,int b)
{
return ab?a:b;
}
Q3: 如图,如何用这个PSO算法或遗传算法来求函数极值,用C语言编写代码
需要很多的子函数 %子程序:新物种交叉操作,函数名称存储为crossover.m function scro=crossover(population,seln,pc); BitLength=size(population,2); pcc=IfCroIfMut(pc);%根据交叉概率决定是否进行交叉操作,1则是,0则否 if pcc==1 chb=round(rand*(BitLength-2))+1;%在[1,BitLength-1]范围内随机产生一个交叉位 scro(1,:)=[population(seln(1),1:chb) population(seln(2),chb+1:BitLength)] scro(2,:)=[population(seln(2),1:chb) population(seln(1),chb+1:BitLength)] else scro(1,:)=population(seln(1),:); scro(2,:)=population(seln(2),:); end %子程序:计算适应度函数,函数名称存储为fitnessfun.m function [Fitvalue,cumsump]=fitnessfun(population); global BitLength global boundsbegin global boundsend popsize=size(population,1);%有popsize个个体 for i=1:popsize x=transform2to10(population(i,:));%将二进制转换为十进制 %转化为[-2,2]区间的实数 xx=boundsbegin+x*(boundsend-boundsbegin)/(power(2,BitLength)-1); Fitvalue(i)=targetfun(xx);%计算函数值,即适应度 end %给适...
望采纳!
Q4: c语言如何求函数极限
如果是用程序近似计算的话,可以这样做
#includestdio.h
#includemath.h
main()
{ long int n,k;
double s1,s2,e=1e-8; //e代表计算精度
n=1;k=1; //k=n×n
s1=(3.0*k+n)/(2*k+3);
do{
s2=s1;
k=k+2*n+1; //(n+1) ^2=n^2+2n+1
n=n+1;
s1=(3.0*k+n)/(2*k+3);
}while(fabs(s1-s2)e) ;
printf("%lf",s1);
}
Q5: C语言,用粒子群算法求函数最大值,拜托了!!
for i=1:sizepop % 随机产生一个种群 pop(i,:)=2*rands(1,2); % 初始化粒子 V(i,:)=0.5*rands(1,2); % 初始化速度 % 计算粒子适应度值 fitness(i)=fun(pop(i,:)); end [bestfitness bestindex]=min(fitness); zbest=pop(bestindex,:); % 群体极...
关于如何用C语言算出函数极值和c语言求级数公式的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






