共轭梯度算法求最小值-scipy

本文介绍了一个使用Python的共轭梯度法求解特定形式多项式函数最小值的例子。通过定义函数f及其梯度gradf,并利用SciPy库中的optimize.fmin_cg函数进行求解。该文展示了如何设置初始参数及函数参数,最终输出最优解及其对应的函数值。

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

 1 # coding=utf-8
 2 
 3 #共轭梯度算法求最小值
 4 import numpy as np
 5 
 6 from scipy import optimize
 7 
 8 
 9 
10 
11 def f(x, *args):
12     u, v = x
13     a, b, c, d, e, f,g,h = args
14     return a*u**g+ b*u*v + c*v**h + d*u + e*v + f
15 
16 
17 def gradf(x, *args):
18     u, v = x
19     a, b, c, d, e, f,g,h = args
20     gu = g*a*u + b*v + d     # u-component of the gradient
21     gv = b*u +h*c*v + e     # v-component of the gradient
22     return np.asarray((gu, gv))
23 
24 
25 
26 
27 if __name__ == "__main__":
28     args = (2, 3, 7, 8, 9, 10, 2, 2)  # parameter values
29     x0 = np.asarray((0, 0))  # Initial guess.
30     res1 = optimize.fmin_cg(f, x0, fprime=gradf, args=args)
31     #res2 = optimize.fmin(f,x0,args)
32     print(res1)
33     #print(res2)
34     print(f(res1,*args))

 

转载于:https://www.cnblogs.com/shizhenqiang/p/8184411.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值