QUT——An Easy Math Problem (三次函数求最大值)

总结

高中数学题,求心里阴影面积。

上题

题目描述
Here has an function:
f(x)=|a∗x3+b∗x2+c∗x+d|(L≤x≤R)
Please figure out the maximum result of f(x).

输入
Multiple test cases(less than 100). For each test case, there will be only 1 line contains 6 numbers a, b, c, d, L and R.
(−1000≤a,b,c,d≤1000,−1000000≤L≤R≤1000000)

输出
For each test case, print the answer that was rounded to 5 digits after decimal point in 1 line.

样例输入
1.00 2.00 3.00 4.00 5.00 6.00

样例输出
310.00000

提示

来源
piaocoder

·
·
·
·

分析

·

三次函数求最大值

无非就是求导 不过要注意绝对值

1.是三次函数
~~ ~l r在单增区间
~~ ~l r不在单减区间
~~ ~l r之间不单调
~~ ~~~ ~求两个端点的最大值;

2.不是三次函数
~~ ~二次函数
~~ ~~~ ~二次函数最大值
~~ ~二次函数求最大值

·

下面是飘神的分析

f(x)=|a?x3+b?x2+c?x+d|,求最大值。

令g(x)=a?x3+b?x2+c?x+d,f(x)的最大值即为g(x)的正最大值,或者是负最小值。

a!=0时,g′(x)=3?a?x2+2?b?x+c求出g′(x)的根
(若存在,x1,x2,由导数的性质知零点处有极值。ans=max(f(xi)|L≤xi≤R).
然后考虑两个端点的特殊性有ans=max(ans,f(L),f(R)).

a=0时的情况和b=0时的情况单独考虑,还有就是要注意到极值点是否在区间[L,R]里面;即
可求出结果。

代码不贴了

这道题WA了4小时 就因为之前用的是float 改成double 过了………………

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值