求解函数梯度(Python,numpy)

博客围绕Python在信息技术领域的应用展开,涉及人工智能、深度学习和数据分析等方面,还提及了numpy库。Python作为强大的编程语言,在这些领域发挥着重要作用,可用于数据处理、模型训练等工作。

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

#求函数的梯度,也就是所有偏导的组合
import numpy as np
def numberical_grandient(f, x):
    h = 1e-4                     #定义一个微小量,不能太小,太小计算机没法正确表示
    grad = np.zeros_like(x)      #生成和x形状相同的数组
    for idx in range(x.size):    #计算所有偏导
        tmp_val = x[idx]
        x[idx] = tmp_val + h            #要计算的那个自变量加h,其余不变
        fxh1 = f(x)                     #计算f(x+h)

        x[idx] = tmp_val - h           #计算f(x-h)
        fxh2 = f(x)

        grad[idx] = (fxh1 - fxh2) / (2*h)    #计算偏导
        x[idx] = tmp_val
    return grad
def function_2(x):          #定义函数:f(x) = x1^2+x2^2
    return x[0]**2 + x[1]**2
#输出三个梯度
print(numberical_grandient(function_2, np.array([3.0, 4.0])))
print(numberical_grandient(function_2, np.array([0.0, 2.0])))
print(numberical_grandient(function_2, np.array([3.0, 0.0])))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值