求函数在给定区间上的最值(问题已解决)

本文介绍如何使用Python计算给定区间上函数f(x)=5x^3+6x^2+2x+8的最值,通过精确计算在0.01步长下比较多个点,确保结果精度。适合中学生理解浮点运算技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

求函数在给定区间上的最值
Description

给定函数 func=lambda x:5*x**3+6*x**2+2*x+8,求给定区间该函数的最大值和最小值。x为0.01为最小分度进行运算,结果要求小数点后保留6位数字。
如给定区间[a,b],a=0.1,b=0.3,则要比较0.10,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.19,0.20,0.21,0.22,0.23,0.24,0.25,0.26,0.27,0.28,0.29,0.3021个数所得函数值中的最大值和最小值。


Input
一行,两个带一位小数的浮点数a和b,用空格分开。如:

0.1 0.3


Output
一行,两个带六位小数的浮点数,第一个为最大值,第二个为最小值,中间用空间分开。如:

9.2750008.265000


Sample Input 1 

0.1 0.3
Sample Output 1

9.275000 8.265000
Hint

该题关系到浮点的运算,注意大小的比较方式。

Source

中学生可以这样学Python

错误代码如下(怎么改啊,裂开):

from math import fabs
func=lambda x:5*x**3+6*x**2+2*x+8
a,b=map(float,input().split())
#print((b-a))
#print((b-a)/0.01)
cishu=round(fabs(b-a)/0.01)
#print(cishu)
fmin=func(a)
fmax=func(a)
for i in range(cishu+1):
    j=round(a+0.01*i,2)
    f=func(j)
    #print(j,f)
    if f>fmax:
        fmax=f
    elif f<fmin:
        fmin=f
print('{:.6f} {:.6f}'.format(fmax,fmin))
  

在这里插入图片描述
2023.10.24 感觉跟换了一个脑子思考一样,现在对了

from math import fabs
a,b=map(float,input().split())
cishu=round(fabs(a-b)/0.01)+1
l=[]
#print(cishu)
for i in range(cishu):
    x=round(a+i*0.01,2)
    #print(x)
    f=5*x**3+6*x**2+2*x+8
    l.append(f)
print('{:.6f} {:.6f}'.format(max(l),min(l)))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值