补充描述:都是定积分,x取值范围在[3,4]。
我用Forcal求解的几组结果:
A=1.2999999999997554, B1=3.7504687499998699, B2=-0.52500000000009195, 极大值=16384
A=6.09999999993079e-002, B1=2.7411718749997949, B2=-15.515000000000168, 极大值=16384
A=4.8639999999992796, B1=4.334734374999794, B2=4.3389999999998823, 极大值=32768.
A=-3.3100000000000591, B1=-6.1008203124999332, B2=3., 极大值=12288.
发现:
1、获得的极大值原先以为是2^n,如1024、4096等。但发现12288也是一个极大值。有意思的是这些极大值都是整数,我求解的最大极大值是32768。
2、以最大值16384为例,有多组解,如上面就是两组。
3、不知有没有最大值。若能得到解析解分析一下更好。
Forcal代码:
f(x,A,B1,B2)=exp(-A)*(x-3)^(-B1)*(5-x)^(-B2);
ln43(x::A,B1,B2)=ln(x-3)*f(x,A,B1,B2);
ln54(x::A,B1,B2)=ln(5-x)*f(x,A,B1,B2);
logf(x:t:A,B1,B2)= t=f(x,A,B1,B2), t*lg(t);
pp(_A,_B1,_B2::A,B1,B2,hln43,hln54,hlogf)= //函数定义
{
A=_A, B1=_B1, B2=_B2,
XSLSF::fpqg(hlogf,3.00001,4.99999,1e-6)+1e10*XSLSF::fpqg(hln43,3.00001,4.99999,1e-6)^2+1e10*XSLSF::fpqg(hln54,3.00001,4.99999,1e-6)^2
};
main(:d,k,A,B1,B2:hln43,hln54,hlogf)=
{
hln43=HFor("ln43"), hln54=HFor("ln54"), hlogf=HFor("logf"),
k=300,A=5,B1=5,B2=5, //初值
d=fcopt::OptMin[HFor("pp"),5000,&k,1e-6: &A,-10,10, &B1,-10,10, &B2,-5,5],
printff{"/r/nk={1,i}, A={2,r}, B1={3,r}, B2={4,r}, pp={5,r}/r/nlogf={6,r}, ln43={7,r}, ln54={8,r}/r/n",
k,A, B1, B2, d,XSLSF::fpqg(hlogf,3.00001,4.99999,1e-6),XSLSF::fpqg(hln43,3.00001,4.99999,1e-6),XSLSF::fpqg(hln54,3.00001,4.99999,1e-6)}
};
结果:
k=166, A=4.8639999999992796, B1=4.334734374999794, B2=4.3389999999998823, pp=-32768.logf=-32768., ln43=0., ln54=0.