胥渡吧小蝶是毁容了吗?:我有一道C语言的题不会做,谁能帮帮我!!!

来源:百度文库 编辑:高校问答 时间:2024/05/10 11:26:54
有一道C语言的题是这样的:
有一个函数:f(x)=4x*x*x+4x*x+4x+4
从键盘输入一个数
求从这个数开始有第一个极小值点。

这道是我找不到一点思路:
求极小值的思路是怎样的
要怎样才能保证求到的是第一个极小值呢

救命啊各位大侠
我要的是极小值
不是最小值

极小值是这样的:
如果一个连续函数,它的值如果是先减后增的话,那么它的极小值点就是在从减到增的转折点上。反之就是极大值点。

但极小值点却不是最小值点,因为还有比它小的值

总之还是谢谢一楼的老兄

C语言里可以使用微分吗!!!???
谢谢二楼的老兄

第一步:对该函数求一次导(适用任何函数):
F(x)=12*x*x+8*x+4;
第二步: 判断x的极性
令F(x)=0;得出x的值(判断8*8-4*12*4与0大小,本题无 极值点):
用if.....else if
1)小于0,无解
2)等于0,有一 解x
if(F(x)<0&&F(x+0.01)>0)它是极小值//0.01为增大x一点.
return x;
3)大于 有二解 x1,x2,
if(F(x1)<0&&F(x1+0.01)>0)
return x1;
else if(F(x2)<0&&F(x2+0.01)>0)
return x2;
第三步:找第一个极小值点
把输入的a(假设)的值代入F(x)中
判断f(a)与f(x)的大小
if(f(x)<f(a)&&a>=x)//a>=x 为a在x的前面
return x;

x 为所求的极小值点

没 有笔和纸 没法写的再详细一 点,还请原谅
这要从微分角度来考虑。
先对f(x)求导f(x)'=12x*x+8x,令其=0,
则有x=0和x=-2/3两个拐点;
再求二次导,f(x)''=24x+8,代入两个直,
分别为8和-8;
f(x)''>0的话图呈U形,有极小直;
反之有极大直。
这要从微分角度来考虑。
先对f(x)求导f(x)'=12x*x+8x,令其=0,
则有x=0和x=-2/3两个拐点;
再求二次导,f(x)''=24x+8,代入两个直,
分别为8和-8;
f(x)''>0的话图呈U形,有极小直;
反之有极大直。
这要从微分角度来考虑。
先对f(x)求导f(x)'=12x*x+8x,令其=0,
则有x=0和x=-2/3两个拐点;
再求二次导,f(x)''=24x+8,代入两个直,
分别为8和-8;
f(x)''>0的话图呈U形,有极小直;
反之有极大直。

晕。
这个也好办 4x*x*x+4x 分成一组 4x*x+4 分成一组
就变成了 4x(x*x+1)+4(x*x+1)也就是 (4x+1)(x*x+1)

x*x+1 保证是正的 那么最小的就出现在 4x+1 里了

如果 x>=-0.25 最小值是 (4x+1)(x*x+1)
如果 x<-0.25 那么最小值 点没有
呵呵,希望对你有帮助。
如果 X是整数 最小值点应该在0 呵呵。

这要从微分角度来考虑。
先对f(x)求导f(x)'=12x*x+8x,令其=0,
则有x=0和x=-2/3两个拐点;
再求二次导,f(x)''=24x+8,代入两个直,
分别为8和-8;
f(x)''>0的话图呈U形,有极小直;
反之有极大直。

第一步:对该函数求一次导(适用任何函数):
F(x)=12*x*x+8*x+4;
第二步: 判断x的极性
令F(x)=0;得出x的值(判断8*8-4*12*4与0大小,本题无 极值点):
用if.....else if
1)小于0,无解
2)等于0,有一 解x
if(F(x)<0&&F(x+0.01)>0)它是极小值//0.01为增大x一点.
return x;
3)大于 有二解 x1,x2,
if(F(x1)<0&&F(x1+0.01)>0)
return x1;
else if(F(x2)<0&&F(x2+0.01)>0)
return x2;
第三步:找第一个极小值点
把输入的a(假设)的值代入F(x)中
判断f(a)与f(x)的大小
if(f(x)<f(a)&&a>=x)//a>=x 为a在x的前面
return x;

x 为所求的极小值点

没 有笔和纸 没法写的再详细一 点,还请原谅

#include<stdio.h>
#include<math.h>
main()
{float y,x,i;
scanf("%f",&x);
for(i=x;i<exp(4);)
{y=12*x*x+8*x+4;
if(y==0&&y-exp(-4)<y&&y+exp(-4)>y)
{ printf("%f",i);
break;
else i=i+exp(-4);
}
}
这道题目没有解,不过微分的方法还不会