import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import math
from mpl_toolkits.mplot3d import Axes3D
# 设置在jupyter中matplotlib的显示情况(表示不是嵌入显示)
%matplotlib tk
# 解决中文显示问题
mpl.rcParams['font.sans-serif'] = [u'SimHei']
mpl.rcParams['axes.unicode_minus'] = False
#一维原始图像
def f1(x):
return 0.5 * (x - 0.25) ** 2
#构建数据
X = np.arange(-4,4.55,0.05)
Y = np.array(list(map(lambda x: f1(x),X))) #X[0],X[1],X[2]
#画图
plt.figure(facecolor='w') #也是原地操作,操作结果返回给原有画笔plt
plt.plot(X,Y,'r-',linewidth=2)
plt.title(u'函数$y=0.5 * (x - 0.25)^2$') #原地操作,画笔画的保存在原画笔对象
plt.xlabel("X")
plt.ylabel("Y")
plt.show()
# 二维原始图像
def f2(x,y): # f2 => z = 0.6 * (x + y) ** 2 - x * y
return 0.6 * (x + y) ** 2 - x * y
#构建数据
X = np.arange(-4,4.5,0.2)
Y = np.arange(-4,4.5,0.2)
X, Y = np.meshgrid(X,Y) #从坐标向量返回坐标矩阵
X1 = X.flatten()
Y1 = Y.flatten()
Z = np.array(list(map(lambda t:f2(t[0],t[1]),zip(X1,Y1))))
Z.shape = X.shape
#画图
fig = plt.figure(facecolor="w") ##fig是画笔绘出的一个颜色为白色的画板
ax = Axes3D(fig) #将画板转化为一个Axes3D的画板对象
# rstride:行之间的跨度row_stride cstride:列之间的跨度column_cstride
# rcount:设置间隔个数,默认50个,ccount:列的间隔个数 不能与上面两个参数同时出现
# cmap是颜色映射表
ax.plot_surface(X,Y,Z,rstride=1,cstride=1,cmap=plt.cm.jet)
ax.set_title(u'函数$y=0.6 * (θ1 + θ2)^2 - θ1 * θ2$')
plt.show()
梯度下降法_一维图像和二维图像
最新推荐文章于 2024-06-11 00:23:00 发布
本文深入探讨了梯度下降法在一维和二维图像中的应用,详细解释了如何利用该方法进行优化求解,并提供了相关实例分析。
摘要由CSDN通过智能技术生成