鱼C论坛

 找回密码
 立即注册
查看: 2919|回复: 2

[已解决]py函数导数计算

[复制链接]
发表于 2021-8-14 14:17:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
想计算表达式f(x)=0.01*x**2+0.1*x的在x=5处的导数值?
书上给的代码是这样:
#导数计算
def numerical_diff(f, x):
    h = 1e-4  #0.0001
    return ((f(x+h) - f(x-h)) / (2 * h))


#定义f(x)计算式
def function_1(x):
    return 0.01*x**2+0.1*x


print(numerical_diff(function_1, 5))

我的问题是1:((f(x+h) - f(x-h)) / (2 * h)),他这里的f(x+h)是怎么计算的,不应该先把x+h赋值给一个变量,调用 function_1来计算出f(x+h)吗,然后再次调用计算出f(x-h),最后再他这样也可以计算???
2:numerical_diff(function_1, 5),这里为什么调用带形参的函数,为什么可以不传 实参数?
后来我自己改了下代码,好理解的
#导数计算
def numerical_diff(x):
    h = 1e-4  #0.0001
    #f(x+h)计算
    fxh1=function_1(x+h)
    # f(x-h)计算
    fxh2=function_1(x-h)
    return ((fxh1-fxh2)/(2*h))


# #定义f(x)计算式
def function_1(x):
     return 0.01*x**2+0.1*x


#计算该函数具体值
print(numerical_diff(5))
最佳答案
2021-8-14 15:14:24
1、f(x+h)实际上就是function_1(x+h)  而在function_1里面形参x就等于x+h
带入外面传进来的5这里就是 function_1(5+(1e-4)),所以在里面x就等于5+(1e-4)
在函数调用的时候,这里的算式结果就是实参。
2、这里numerical_diff(function_1,5)这里的function_1是不带括号的,所以传进去的是function_1这个方法,这里的处理方式相当于 f=function_1,x=5
这么说可能不好理解,看下这个例子吧:
def func(a):
    return a+1

a = func
b= func(2)

print(a)  #<function func at 0x0119A730>这里就说明了,这里的a实际上就是函数func,所以可以这样子调用 a(1),这里a就相当于func 的另一个名字而已
print(b)  #3 这里说明是b是执行了func后返回的数据。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-14 15:14:24 | 显示全部楼层    本楼为最佳答案   
1、f(x+h)实际上就是function_1(x+h)  而在function_1里面形参x就等于x+h
带入外面传进来的5这里就是 function_1(5+(1e-4)),所以在里面x就等于5+(1e-4)
在函数调用的时候,这里的算式结果就是实参。
2、这里numerical_diff(function_1,5)这里的function_1是不带括号的,所以传进去的是function_1这个方法,这里的处理方式相当于 f=function_1,x=5
这么说可能不好理解,看下这个例子吧:
def func(a):
    return a+1

a = func
b= func(2)

print(a)  #<function func at 0x0119A730>这里就说明了,这里的a实际上就是函数func,所以可以这样子调用 a(1),这里a就相当于func 的另一个名字而已
print(b)  #3 这里说明是b是执行了func后返回的数据。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-15 20:12:58 | 显示全部楼层
2012277033 发表于 2021-8-14 15:14
1、f(x+h)实际上就是function_1(x+h)  而在function_1里面形参x就等于x+h
带入外面传进来的5这里就是 func ...

理解了,这里原来是传出的方法,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-7-4 23:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表