测试函数主要是用来评估优化算法特性的,这里我用python3绘制了部分测试函数的图像。具体的测试函数可以结合维基百科来了解。想要显示某个测试函数的图片把代码结尾对应的注释去掉即可,具体代码如下:

import numpy as np

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d import Axes3D

def draw_pic(X, Y, Z, z_max, title, z_min=0):

fig = plt.figure()

ax = Axes3D(fig)

ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.cm.hot)

# ax.contourf(X, Y, Z, zdir='z', offset=-2, cmap=plt.cm.hot)

ax.set_zlim(z_min, z_max)

ax.set_title(title)

# plt.savefig("./myProject/Algorithm/pic/%s.png" % title) # 保存图片

plt.show()

def get_X_AND_Y(X_min, X_max, Y_min, Y_max):

X = np.arange(X_min, X_max, 0.1)

Y = np.arange(Y_min, Y_max, 0.1)

X, Y = np.meshgrid(X, Y)

return X, Y

# rastrigin测试函数

def Rastrigin(X_min = -5.52, X_max = 5.12, Y_min = -5.12, Y_max = 5.12):

A = 10

X, Y = get_X_AND_Y(X_min, X_max, Y_min, Y_max)

Z = 2 * A + X ** 2 - A * np.cos(2 * np.pi * X) + Y ** 2 - A * np.cos(2 * np.pi * Y)

return X, Y, Z, 100, "Rastrigin function"

# Ackley测试函数

def Ackley(X_min = -5, X_max = 5, Y_min = -5, Y_max = 5):

X, Y = get_X_AND_Y(X_min, X_max, Y_min, Y_max)

Z = -20 * np.exp(-0.2 * np.sqrt(0.5 * (X**2 + Y**2))) - \

np.exp(0.5 * (np.cos(2 * np.pi * X) + np.cos(2 * np.pi * Y))) + np.e + 20

return X, Y, Z, 15, "Ackley function"

# Sphere测试函数

def Sphere(X_min = -3, X_max = 3, Y_min = -3, Y_max = 3):

X, Y = get_X_AND_Y(X_min, X_max, Y_min, Y_max)

Z = X**2 + Y**2

return X, Y, Z, 20, "Sphere function"

# beale测试函数

def Beale(X_min = -4.5, X_max = 4.5, Y_min = -4.5, Y_max = 4.5):

X, Y = get_X_AND_Y(X_min, X_max, Y_min, Y_max)

Z = np.power(1.5 - X + X * Y, 2) + np.power(2.25 - X + X * (Y ** 2), 2) \

+ np.power(2.625 - X + X * (Y ** 3), 2)

return X, Y, Z, 150000, "Beale function"

# Booth测试函数

def Booth(X_min = -10, X_max = 10, Y_min = -10, Y_max = 10):

X, Y = get_X_AND_Y(X_min, X_max, Y_min, Y_max)

Z = np.power(X + 2*Y - 7, 2) + np.power(2 * X + Y - 5, 2)

return X, Y, Z, 2500, "Booth function"

# Bukin测试函数

def Bukin(X_min = -15, X_max = -5, Y_min = -3, Y_max = 3):

X, Y = get_X_AND_Y(X_min, X_max, Y_min, Y_max)

Z = 100 * np.sqrt(np.abs(Y - 0.01 * X**2)) + 0.01 * np.abs(X + 10)

return X, Y, Z, 200, "Bukin function"

# Three-hump camel测试函数

def three_humpCamel(X_min = -5, X_max = 5, Y_min = -5, Y_max = 5):

X, Y = get_X_AND_Y(X_min, X_max, Y_min, Y_max)

Z = 2 * X**2 - 1.05 * X**4 + (1/6) * X**6 + X*Y + Y*2

return X, Y, Z, 2000, "three-hump camel function"

# Hölder table测试函数

def Holder_table(X_min = -10, X_max = 10, Y_min = -10, Y_max = 10):

X, Y = get_X_AND_Y(X_min, X_max, Y_min, Y_max)

Z = -np.abs(np.sin(X) * np.cos(Y) * np.exp(np.abs(1 - np.sqrt(X**2 + Y**2)/np.pi)))

return X, Y, Z, 0, "Hölder table function", -20

z_min = None

# X, Y, Z, z_max, title = Rastrigin()

# X, Y, Z, z_max, title = Ackley()

# X, Y, Z, z_max, title = Sphere()

# X, Y, Z, z_max, title = Beale()

X, Y, Z, z_max, title = Booth()

# X, Y, Z, z_max, title = Bukin()

# X, Y, Z, z_max, title = three_humpCamel()

# X, Y, Z, z_max, title, z_min = Holder_table()

draw_pic(X, Y, Z, z_max, title, z_min)

以下是上述代码绘制的测试函数的图像:

感觉图像的颜色还不是很好看,等之后优化了来改

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持龙方网络。

python评估函数_python绘制评估优化算法性能的测试函数相关推荐

  1. python函数测试_python绘制评估优化算法性能的测试函数

    测试函数主要是用来评估优化算法特性的,这里我用python3绘制了部分测试函数的图像.具体的测试函数可以结合维基百科来了解.想要显示某个测试函数的图片把代码结尾对应的注释去掉即可,具体代码如下: im ...

  2. python axes3d函数_Python绘制3D图形:Axes3D

    1 3D图形绘制需要(x,y,z)三组值,下面通过numpy和Axes3D函数会议3D图形.其中Axes3D是mpl_toolkits.mplot3d中的一个绘图函数,mpl_toolkits.mpl ...

  3. 【Python】函数图像绘制:二维图像、三维图像、散点图、心形图

    [Python]函数图像绘制:二维图像.三维图像.散点图.心形图 所有需要用的包 二维图像 三维图像 散点图绘制 心形图绘制 所有需要用的包 from mpl_toolkits.mplot3d imp ...

  4. python画数学函数_Python 绘制你想要的数学函数图形

    Python 非常热门,但除非工作需要没有刻意去了解更多,直到有个函数图要绘制,想起了它.结果发现,完全用不着明白什么是编程,就可以使用它完成很多数学函数图的绘制.通过以下两个步骤,就可以进行数学函数 ...

  5. python polar函数_Python可视化很简单,可是你会吗?python绘制饼图、极线图和气泡图,让我来教教你吧,一文教会!!!...

    matplotlib库作为Python数据化可视化的最经典和最常用库,掌握了它就相当于学会了Python的数据化可视化,今天呢,咱们就一起来聊聊关于Python如何去绘制饼图.极线图和气泡图吧 好啦, ...

  6. python画数学函数_Python 绘制你想要的数学函数图形 !

    Python 非常热门,但除非工作需要没有刻意去了解更多,直到有个函数图需要绘制,想起了它.结果发现,完全用不着明白什么是编程,就可以使用它完成很多数学函数图的绘制.通过以下两个步骤,就可以进行数学函 ...

  7. 【项目实战】Python实现用PSO粒子群优化算法对KMeans聚类模型进行优化项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+代码讲解),如需数据+代码+文档+代码讲解可以直接到文章最后获取. 1.项目背景 粒子群优化算法(Particle Swarm optimizat ...

  8. python 粒子群_Python实现粒子群算法的示例

    粒子群算法是一种基于鸟类觅食开发出来的优化算法,它是从随机解出发,通过迭代寻找最优解,通过适应度来评价解的品质. PSO算法的搜索性能取决于其全局探索和局部细化的平衡,这在很大程度上依赖于算法的控制参 ...

  9. python分割函数_Python应用——自定义函数:分割PDF文件函数

    案例 将一个 pdf 文件按要求分割为几个部分.比如说一个pdf有20页,分成5个pdf文件,每个pdf文件包含4页.设计函数实现? Python代码 from PyPDF2 import PdfFi ...

最新文章

  1. python教学反思_Python第3课if教学反思:准备充分承上启下,优化内容模式初显
  2. 实战:使用OpenCV+Python+dlib为人脸生成口罩
  3. 你需要知道的20个常用的Python技巧
  4. 添加mysql引擎错误
  5. java实现上传功能吗_Java实现文件上传功能
  6. 测试服务搭建之centos7下安装java
  7. 【MVC】ASP.Net MVC 4项目升级MVC 5的方法
  8. mysql group by日期_深入研究mysql中group by与order by取分类最新时间内容
  9. 头文件和库文件的区别
  10. 1024 科学计数法 (20 分)(c语言)
  11. this.$router 的三种跳转页面方法
  12. 程序员必看!Android面试10大知识点总结宝典助你通关!年薪50W
  13. 外设驱动库开发笔记13:MLX90614红外温度传感器驱动
  14. aop阻止方法运行_新型AOP高级氧化高浓度COD废水处理系统介绍
  15. 针对python矩阵运算的理解
  16. 【详细】MySQL之游标
  17. 中仪股份管道机器人_中仪股份 X5-HT 管道CCTV检测机器人
  18. ElasticSearch搜索引擎搭建笔记
  19. 进击的人工智能:从产品角度,深度解析「对话机器人」
  20. MySQL源代码的海洋中游弋 初探MySQL之SQL执行过程

热门文章

  1. 苹果电脑适合学python吗_千万别花冤枉钱!大学生买本得这么选!
  2. 计算机函数测试结果误差表IF,excel评语公式及格
  3. 男女交往技巧 男生如何赞美女生才有效
  4. 微信支付API v3 Native支付
  5. 从零开始学版图(一)——反相器版图
  6. Vue 使用iconfont
  7. 数据库-------where条件和group by.... having 过滤数据的先后顺序
  8. “飞花令”APP(简单的收索软件)
  9. java专业学校排名_计算机类专业高校排名,想进IT行业,这些学校不可错过!
  10. 使用esp32cam与stm32c8t6核心板开发的99A静改动