您的位置:程序门 -> java -> j2ee / ejb / jms



设f(x)=-x*x+2x+0.5,求maxf(x),x属于【-1,2】


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


设f(x)=-x*x+2x+0.5,求maxf(x),x属于【-1,2】[已结贴,结贴人:shang_zchao]
发表于:2007-10-20 11:01:40 楼主
求设f(x)=-x*x+2x+0.5,求maxf(x),x属于【-1,2】
java编程
谁能提供下思路..
谢谢
发表于:2007-10-20 11:03:431楼 得分:0
这个还需要思路?。。。
发表于:2007-10-20 11:09:292楼 得分:0
很明显的递增函数,应该f(2)是最大了
lz是不是想问怎么判断递增还是递减?
发表于:2007-10-20 11:12:143楼 得分:0
believefym   兄
我是新手
发表于:2007-10-20 11:17:494楼 得分:0
qybao   兄
怎么来判断递增还是递减?
谢谢
发表于:2007-10-20 11:24:245楼 得分:5
这个怎么可能是递增函数
很明显-b/2a   =   1的时候最大
发表于:2007-10-20 11:30:006楼 得分:0
believefym   兄  
能详细点说明吗
谢谢
发表于:2007-10-20 11:35:287楼 得分:0
这个方程不就是个抛物线吗。。。
发表于:2007-10-20 11:40:578楼 得分:0
是啊
但是   我却不知道   用代码表达出来
发表于:2007-10-20 12:40:059楼 得分:15
我没看清x*x前还有个-
那就是在[-1,1]区间递增,[1,2]区间递减
最大值应该是抛物线顶点f(1)

用程序来做,可不可以这样
double[]   region   =   {-1,   2};
double   a   =   -1;   //ax^2+bx+c的系数
double   b   =   2;
double   c   =   0.5;
double   v   =   -1   *   b   /   (2   *   a);   //求顶点
//从抛物线知道,a <0时顶点左边递增,右边递减
if   (v-region[0]> =0   &&   region[1]-v   > =   0)   {   //判断区间
        //如果顶点在区间,那么顶点最大
        system.out.println("f("   +   v   +   ")   is   max");
}   else   {
        if   (v-region[1]   >   0)   {   //区间在顶点左边,根据抛物线知道该区间递增
                system.out.println("f("   +   region[1]   +   ")   is   max");
        }   else   {   //区间在顶点右边,则该区间递减
              system.out.println("f("   +   region[0]   +   ")   is   max");
        }
}


快速检索

最新资讯
热门点击