@Metralix
2017-03-31T22:25:42.000000Z
字数 567
阅读 924
数论
规律
题目大意
求该函数的最值。
解题思路
求函数的最小值,首先求导的导函数为:42 * x^6+48*x^5+21*x^2+10*x-y
又由于导函数是单增函数,所以必有先负后正,即原函数必有先减后增的性质。求出导函数的零点就是原函数的最小值点。
求导函数最小值方法是2分法.
。
#include<stdio.h>
#include<math.h>
double func(double x,double y)
{
return 6*pow(x,7)+8*pow(x,6)+7*pow(x,3)+5*x*x-y*x;
}
double D_func(double x,double y)
{
return 42*pow(x,6)+48*pow(x,5)+21*pow(x,2)+10*x-y;
}
int main()
{
int k;
scanf("%d",&k);
while(k--)
{
double Y,Floor,Ceil,Mid;
scanf("%lf",&Y);
Floor=0.0;
Ceil=100.0;
while(Ceil-Floor>1e-6)
{
Mid=(Ceil+Floor)/2;
if(D_func(Mid,Y)>0) Ceil=Mid;
else Floor=Mid;
}
printf("%.4lf\n",func(Mid,Y));
}
return 0;
}