电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python使用梯度下降和牛頓法尋找Rosenbrock函數(shù)最小值實例

瀏覽:44日期:2022-07-31 11:49:09

Rosenbrock函數(shù)的定義如下:

python使用梯度下降和牛頓法尋找Rosenbrock函數(shù)最小值實例

其函數(shù)圖像如下:

python使用梯度下降和牛頓法尋找Rosenbrock函數(shù)最小值實例

我分別使用梯度下降法和牛頓法做了尋找Rosenbrock函數(shù)的實驗。

梯度下降

梯度下降的更新公式:

python使用梯度下降和牛頓法尋找Rosenbrock函數(shù)最小值實例

python使用梯度下降和牛頓法尋找Rosenbrock函數(shù)最小值實例

圖中藍色的點為起點,橙色的曲線(實際上是折線)是尋找最小值點的軌跡,終點(最小值點)為 (1,1)(1,1)。

梯度下降用了約5000次才找到最小值點。

我選擇的迭代步長 α=0.002α=0.002,αα 沒有辦法取的太大,當為0.003時就會發(fā)生振蕩:

python使用梯度下降和牛頓法尋找Rosenbrock函數(shù)最小值實例

牛頓法

牛頓法的更新公式:

python使用梯度下降和牛頓法尋找Rosenbrock函數(shù)最小值實例

Hessian矩陣中的每一個二階偏導我是用手算算出來的。

python使用梯度下降和牛頓法尋找Rosenbrock函數(shù)最小值實例

牛頓法只迭代了約5次就找到了函數(shù)的最小值點。

下面貼出兩個實驗的代碼。

梯度下降:

import numpy as npimport matplotlib.pyplot as pltfrom matplotlib import tickerdef f(x, y): return (1 - x) ** 2 + 100 * (y - x * x) ** 2def H(x, y): return np.matrix([[1200 * x * x - 400 * y + 2, -400 * x], [-400 * x, 200]])def grad(x, y): return np.matrix([[2 * x - 2 + 400 * x * (x * x - y)], [200 * (y - x * x)]])def delta_grad(x, y): g = grad(x, y) alpha = 0.002 delta = alpha * g return delta# ----- 繪制等高線 -----# 數(shù)據(jù)數(shù)目n = 256# 定義x, yx = np.linspace(-1, 1.1, n)y = np.linspace(-0.1, 1.1, n)# 生成網(wǎng)格數(shù)據(jù)X, Y = np.meshgrid(x, y)plt.figure()# 填充等高線的顏色, 8是等高線分為幾部分plt.contourf(X, Y, f(X, Y), 5, alpha=0, cmap=plt.cm.hot)# 繪制等高線C = plt.contour(X, Y, f(X, Y), 8, locator=ticker.LogLocator(), colors=’black’, linewidth=0.01)# 繪制等高線數(shù)據(jù)plt.clabel(C, inline=True, fontsize=10)# ---------------------x = np.matrix([[-0.2], [0.4]])tol = 0.00001xv = [x[0, 0]]yv = [x[1, 0]]plt.plot(x[0, 0], x[1, 0], marker=’o’)for t in range(6000): delta = delta_grad(x[0, 0], x[1, 0]) if abs(delta[0, 0]) < tol and abs(delta[1, 0]) < tol: break x = x - delta xv.append(x[0, 0]) yv.append(x[1, 0])plt.plot(xv, yv, label=’track’)# plt.plot(xv, yv, label=’track’, marker=’o’)plt.xlabel(’x’)plt.ylabel(’y’)plt.title(’Gradient for Rosenbrock Function’)plt.legend()plt.show()

牛頓法:

import numpy as npimport matplotlib.pyplot as pltfrom matplotlib import tickerdef f(x, y): return (1 - x) ** 2 + 100 * (y - x * x) ** 2def H(x, y): return np.matrix([[1200 * x * x - 400 * y + 2, -400 * x], [-400 * x, 200]])def grad(x, y): return np.matrix([[2 * x - 2 + 400 * x * (x * x - y)], [200 * (y - x * x)]])def delta_newton(x, y): alpha = 1.0 delta = alpha * H(x, y).I * grad(x, y) return delta# ----- 繪制等高線 -----# 數(shù)據(jù)數(shù)目n = 256# 定義x, yx = np.linspace(-1, 1.1, n)y = np.linspace(-1, 1.1, n)# 生成網(wǎng)格數(shù)據(jù)X, Y = np.meshgrid(x, y)plt.figure()# 填充等高線的顏色, 8是等高線分為幾部分plt.contourf(X, Y, f(X, Y), 5, alpha=0, cmap=plt.cm.hot)# 繪制等高線C = plt.contour(X, Y, f(X, Y), 8, locator=ticker.LogLocator(), colors=’black’, linewidth=0.01)# 繪制等高線數(shù)據(jù)plt.clabel(C, inline=True, fontsize=10)# ---------------------x = np.matrix([[-0.3], [0.4]])tol = 0.00001xv = [x[0, 0]]yv = [x[1, 0]]plt.plot(x[0, 0], x[1, 0], marker=’o’)for t in range(100): delta = delta_newton(x[0, 0], x[1, 0]) if abs(delta[0, 0]) < tol and abs(delta[1, 0]) < tol: break x = x - delta xv.append(x[0, 0]) yv.append(x[1, 0])plt.plot(xv, yv, label=’track’)# plt.plot(xv, yv, label=’track’, marker=’o’)plt.xlabel(’x’)plt.ylabel(’y’)plt.title(’Newton’s Method for Rosenbrock Function’)plt.legend()plt.show()

以上這篇python使用梯度下降和牛頓法尋找Rosenbrock函數(shù)最小值實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 鑫达滑石-辽宁鑫达滑石集团 | 粉末冶金注射成型厂家|MIM厂家|粉末冶金齿轮|MIM零件-深圳市新泰兴精密科技 | 长沙中央空调维修,中央空调清洗维保,空气能热水工程,价格,公司就找维小保-湖南维小保环保科技有限公司 | 内六角扳手「厂家」-温州市威豪五金工具有限公司 | CE认证_产品欧盟ROHS-REACH检测机构-商通检测 | 仓储笼_仓储货架_南京货架_仓储货架厂家_南京货架价格低-南京一品仓储设备制造公司 | 办公室装修_上海办公室设计装修_时尚办公新主张-后街印象 | 杭州实验室尾气处理_实验台_实验室家具_杭州秋叶实验设备有限公司 | 上海深蓝_缠绕机_缠膜机-上海深蓝机械装备有限公司 | PU树脂_水性聚氨酯树脂_聚氨酯固化剂_聚氨酯树脂厂家_宝景化工 | 超声波_清洗机_超声波清洗机专业生产厂家-深圳市好顺超声设备有限公司 | 生产加气砖设备厂家很多,杜甫机械加气砖设备价格公道 | 亳州网络公司 - 亳州网站制作 - 亳州网站建设 - 亳州易天科技 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 无菌检查集菌仪,微生物限度仪器-苏州长留仪器百科 | 二手色谱仪器,十万分之一分析天平,蒸发光检测器,电位滴定仪-湖北捷岛科学仪器有限公司 | 激光内雕_led玻璃_发光玻璃_内雕玻璃_导光玻璃-石家庄明晨三维科技有限公司 激光内雕-内雕玻璃-发光玻璃 | WF2户外三防照明配电箱-BXD8050防爆防腐配电箱-浙江沃川防爆电气有限公司 | 扒渣机厂家_扒渣机价格_矿用扒渣机_铣挖机_撬毛台车_襄阳永力通扒渣机公司 | 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 上海电子秤厂家,电子秤厂家价格,上海吊秤厂家,吊秤供应价格-上海佳宜电子科技有限公司 | 机构创新组合设计实验台_液压实验台_气动实训台-戴育教仪厂 | 酒店品牌设计-酒店vi设计-酒店标识设计【国际级】VI策划公司 | 层流手术室净化装修-检验科ICU改造施工-华锐净化工程-特殊科室建设厂家 | 舞台木地板厂家_体育运动木地板_室内篮球馆木地板_实木运动地板厂家_欧氏篮球地板推荐 | 智能型高压核相仪-自动开口闪点测试仪-QJ41A电雷管测试仪|上海妙定 | 外观设计_设备外观设计_外观设计公司_产品外观设计_机械设备外观设计_东莞工业设计公司-意品深蓝 | 酸度计_PH计_特斯拉计-西安云仪| 北京律师事务所_房屋拆迁律师_24小时免费法律咨询_云合专业律师网 | 南方珠江-南方一线电缆-南方珠江科技电缆-南方珠江科技有限公司 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | 儿童语言障碍训练-武汉优佳加感统文化发展有限公司 | IIS7站长之家-站长工具-爱网站请使用IIS7站长综合查询工具,中国站长【WWW.IIS7.COM】 | 高楼航空障碍灯厂家哪家好_航空障碍灯厂家_广州北斗星障碍灯有限公司 | nalgene洗瓶,nalgene量筒,nalgene窄口瓶,nalgene放水口大瓶,浙江省nalgene代理-杭州雷琪实验器材有限公司 | 刮板输送机,粉尘加湿搅拌机,螺旋输送机,布袋除尘器 | 杭州火蝠电商_京东代运营_拼多多全托管代运营【天猫代运营】 | 减速机_上海宜嘉减速机| 杭州荣奥家具有限公司-浙江办公家具,杭州办公家具厂 | 垃圾清运公司_环卫保洁公司_市政道路保洁公司-华富环境 | 合肥仿石砖_合肥pc砖厂家_合肥PC仿石砖_安徽旭坤建材有限公司 | 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 |