建筑局网站,深圳商城手机网站建设,淮南网云小镇最新动态,莆田网站建设开发如题#xff0c;利用pytorch#xff0c;通过代码实现机器学习中的梯度下降算法#xff0c;求解如下方程#xff1a; f ′ ( x , y ) x 2 20 y 2 {f}(x,y) x^2 20 y^2 f′(x,y)x220y2 的最小值。
Latex语法参考#xff1a;https://blog.csdn.net/ViatorSun/article/d…如题利用pytorch通过代码实现机器学习中的梯度下降算法求解如下方程 f ′ ( x , y ) x 2 20 y 2 {f}(x,y) x^2 20 y^2 f′(x,y)x220y2 的最小值。
Latex语法参考https://blog.csdn.net/ViatorSun/article/details/82826664 import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
import math
from mpl_toolkits.mplot3d import Axes3D
import warnings
import decimal# 原函数
def Z(x,y):return x**2 20*(y**2)# x方向上的梯度
def dx(x):return 2*x# y方向上的梯度
def dy(y):return 40*y# 初始值
X x_0 np.float64(3000.0)
Y y_0 np.float64(300.0)# 学习率
alpha 0.01# 保存梯度下降所经过的点
globalX [x_0]
globalY [y_0]
globalZ [Z(x_0,y_0)]cnt 0# 迭代30次
while True:lastZ Z(X,Y)temX X - alpha * dx(X)temY Y - alpha * dy(Y)temZ Z(temX, temY)if(lastZ - temZ 0.00001):break;if(cnt 1000000):break;# X,Y 重新赋值X temXY temY# 将新值存储起来globalX.append(temX)globalY.append(temY)globalZ.append(temZ)cnt cnt 1plt.figure(figsize(8,3))
plt.subplot(111)plt.ylabel(Y)
plt.xlabel(X)plt.plot(globalZ)
plt.show()
# 打印结果
print(u最终结果为:(x,y,z)(%.5f, %.5f, %.5f),迭代次数%d % (X, Y, Z(X,Y),cnt))
print(u迭代过程中取值)
num len(globalX)
for i in range(num):print(u第%d次迭代%.5f, y%d%.5f, z%d%.5f % (i,globalX[i],i,globalY[i],i,globalZ[i]))
输出结果 最终结果为:(x,y,z)(397.85867, 0.00000, 158291.51945),迭代次数100 迭代过程中取值 第0次迭代3000.00000, y0300.00000, z010800000.00000 第1次迭代2940.00000, y1180.00000, z19291600.00000 第2次迭代2881.20000, y2108.00000, z28534593.44000 第3次迭代2823.57600, y364.80000, z38056562.22778 第4次迭代2767.10448, y438.88000, z47687100.29124 第5次迭代2711.76239, y523.32800, z57364539.17367 第6次迭代2657.52714, y613.99680, z67066368.72182 第7次迭代2604.37660, y78.39808, z76784188.02823 第8次迭代2552.28907, y85.03885, z86514687.28512 第9次迭代2501.24329, y93.02331, z96256400.78564 第10次迭代2451.21842, y101.81399, z106008537.55665 第11次迭代2402.19405, y111.08839, z115770559.95657 第12次迭代2354.15017, y120.65303, z125542031.55767 第13次迭代2307.06717, y130.39182, z135322561.98712 第14次迭代2260.92582, y140.23509, z145111786.68892 第15次迭代2215.70731, y150.14106, z154909359.27237 第16次迭代2171.39316, y160.08463, z164714948.40627 第17次迭代2127.96530, y170.05078, z174528236.36337 第18次迭代2085.40599, y180.03047, z184348918.17242 第19次迭代2043.69787, y190.01828, z194176701.00164 第20次迭代2002.82392, y200.01097, z204011303.63796 第21次迭代1962.76744, y210.00658, z213852456.01246 第22次迭代1923.51209, y220.00395, z223699898.75384 第23次迭代1885.04185, y230.00237, z233553382.76300 第24次迭代1847.34101, y240.00142, z243412668.80552 第25次迭代1810.39419, y250.00085, z253277527.12080 第26次迭代1774.18631, y260.00051, z263147737.04681 第27次迭代1738.70258, y270.00031, z273023086.65975 第28次迭代1703.92853, y280.00018, z282903372.42802 第29次迭代1669.84996, y290.00011, z292788398.87987 第30次迭代1636.45296, y300.00007, z302677978.28423 第31次迭代1603.72390, y310.00004, z312571930.34417 第32次迭代1571.64942, y320.00002, z322470081.90254 第33次迭代1540.21643, y330.00001, z332372266.65920 第34次迭代1509.41210, y340.00001, z342278324.89950 第35次迭代1479.22386, y350.00001, z352188103.23348 第36次迭代1449.63938, y360.00000, z362101454.34543 第37次迭代1420.64660, y370.00000, z372018236.75335 第38次迭代1392.23366, y380.00000, z381938314.57792 第39次迭代1364.38899, y390.00000, z391861557.32064 第40次迭代1337.10121, y400.00000, z401787839.65074 第41次迭代1310.35919, y410.00000, z411717041.20057 第42次迭代1284.15200, y420.00000, z421649046.36903 第43次迭代1258.46896, y430.00000, z431583744.13281 第44次迭代1233.29958, y440.00000, z441521027.86515 第45次迭代1208.63359, y450.00000, z451460795.16169 第46次迭代1184.46092, y460.00000, z461402947.67329 第47次迭代1160.77170, y470.00000, z471347390.94543 第48次迭代1137.55627, y480.00000, z481294034.26399 第49次迭代1114.80514, y490.00000, z491242790.50714 第50次迭代1092.50904, y500.00000, z501193576.00305 第51次迭代1070.65886, y510.00000, z511146310.39333 第52次迭代1049.24568, y520.00000, z521100916.50176 第53次迭代1028.26077, y530.00000, z531057320.20829 第54次迭代1007.69555, y540.00000, z541015450.32804 第55次迭代987.54164, y550.00000, z55975238.49505 第56次迭代967.79081, y560.00000, z56936619.05064 第57次迭代948.43499, y570.00000, z57899528.93624 第58次迭代929.46629, y580.00000, z58863907.59036 第59次迭代910.87697, y590.00000, z59829696.84979 第60次迭代892.65943, y600.00000, z60796840.85453 第61次迭代874.80624, y610.00000, z61765285.95669 第62次迭代857.31011, y620.00000, z62734980.63281 第63次迭代840.16391, y630.00000, z63705875.39975 第64次迭代823.36063, y640.00000, z64677922.73392 第65次迭代806.89342, y650.00000, z65651076.99366 第66次迭代790.75555, y660.00000, z66625294.34471 第67次迭代774.94044, y670.00000, z67600532.68866 第68次迭代759.44163, y680.00000, z68576751.59419 第69次迭代744.25280, y690.00000, z69553912.23106 第70次迭代729.36774, y700.00000, z70531977.30671 第71次迭代714.78039, y710.00000, z71510911.00536 第72次迭代700.48478, y720.00000, z72490678.92955 第73次迭代686.47509, y730.00000, z73471248.04394 第74次迭代672.74558, y740.00000, z74452586.62140 第75次迭代659.29067, y750.00000, z75434664.19119 第76次迭代646.10486, y760.00000, z76417451.48922 第77次迭代633.18276, y770.00000, z77400920.41025 第78次迭代620.51911, y780.00000, z78385043.96200 第79次迭代608.10872, y790.00000, z79369796.22111 第80次迭代595.94655, y800.00000, z80355152.29075 第81次迭代584.02762, y810.00000, z81341088.26004 第82次迭代572.34707, y820.00000, z82327581.16494 第83次迭代560.90013, y830.00000, z83314608.95081 第84次迭代549.68212, y840.00000, z84302150.43636 第85次迭代538.68848, y850.00000, z85290185.27908 第86次迭代527.91471, y860.00000, z86278693.94202 第87次迭代517.35642, y870.00000, z87267657.66192 第88次迭代507.00929, y880.00000, z88257058.41851 第89次迭代496.86910, y890.00000, z89246878.90514 第90次迭代486.93172, y900.00000, z90237102.50049 第91次迭代477.19309, y910.00000, z91227713.24147 第92次迭代467.64922, y920.00000, z92218695.79711 第93次迭代458.29624, y930.00000, z93210035.44354 第94次迭代449.13032, y940.00000, z94201718.03998 第95次迭代440.14771, y950.00000, z95193730.00560 第96次迭代431.34475, y960.00000, z96186058.29738 第97次迭代422.71786, y970.00000, z97178690.38880 第98次迭代414.26350, y980.00000, z98171614.24940 第99次迭代405.97823, y990.00000, z99164818.32513 第100次迭代397.85867, y1000.00000, z100158291.51945