【Python】【matLab】模拟退火算法求二元高次函数最小值

一、目标函数

求二元高次函数的最小值。目标函数选择:
在这里插入图片描述
用于测试算法的简单的目标函数:

在这里插入图片描述

二、Python代码实现

import numpy as np# 目标函数(2变量)
def objective_function(x):return x[0] ** 2 + 2 * x[0] - 15 + 4 * 4 * 2 * x[1] + 4 * x[1] ** 2# 测试:return x[0] ** 2 + x[1] ** 2# 模拟退火
def simulated_annealing(objective_func,  # 目标函数initial_solution=np.array([0, 0]),  # 初始解temperature=100,  # 初始温度min_temperature=0.1,  # 最小温度值cooling_rate=0.90,  # 冷却率(乘法系数)iter_max=100,  # 最大迭代次数seed=0  # 随机种子):np.random.seed(seed)current_solution = initial_solutionbest_solution = current_solutionwhile temperature > min_temperature:for j in range(iter_max):# 生成新的解new_solution = current_solution + np.random.uniform(-1, 1, len(current_solution))# 计算新解与当前解之间的目标函数值差异current_cost = objective_func(current_solution)new_cost = objective_func(new_solution)cost_diff = new_cost - current_cost# 判断是否接受新解if cost_diff < 0 or np.exp(-cost_diff / temperature) > np.random.random():current_solution = new_solution# 更新最优解if objective_func(current_solution) < objective_func(best_solution):best_solution = current_solution# 降低温度temperature *= cooling_ratereturn best_solution# 调用退火算法求解最小值
best_solution = simulated_annealing(objective_function)print(f"函数最小值: {objective_function(best_solution)} 自变量取值:{best_solution}")

代码参考博客:利用Python 实现 模拟退火算法

三、程序输出

测试函数输出:
在这里插入图片描述

目标函数输出:

在这里插入图片描述

四、MatLab验证程序

参考博客:MATLAB求解二元(多元)函数极值

先定义目标函数(位于fun2_3.m中):

function f = fun2_3(x)
f = x(1) ^ 2 + 2 * x(1) - 15 + 32 * x(2) + 4 * x(2) ^ 2;

模拟退火算法求极值:

clc, clear
[x, y]=meshgrid(-10:0.3:10,-10:0.3:10);
z = x.^2 + 2 * x -15 + 32 * y + 4 * y.^2;
figure(1)
surf(x,y,z)
xlabel('X');
ylabel('Y');
zlabel('Z');figure(2)
contour(x,y,z)
xlabel('X');
ylabel('Y');
grid on;x0=[-3,-3];
% [x,fmin]=fminsearch(@fun2_3,x0)
[x,fmin] = fminunc(@fun2_3,x0)

程序输出:
在这里插入图片描述

在这里插入图片描述在这里插入图片描述可见,两种方法的求解结果基本相同。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/23376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

各家AI大胆帮我预测一下2024年全国高考语文作文 并模拟出题 坐看AI算的准不准

chatgpt-4o 抱歉&#xff0c;我无法预测具体的高考题目。不过&#xff0c;我可以根据近年的趋势和主题为你模拟一个可能的作文题目&#xff1a; 2024年全国高考语文作文模拟题目&#xff1a; 题目&#xff1a;《共同的家园》 要求&#xff1a; 以“共同的家园”为主题&…

【Vue】项目目录介绍和运行流程

文章目录 一、项目目录介绍二、public/index.html三、src/main.js四、运行流程 一、项目目录介绍 虽然脚手架中的文件有很多&#xff0c;目前咱们只需认识三个文件即可&#xff0c;这三个文件就决定了我们项目的运行 main.js 入口文件App.vue App根组件index.html 模板文件 我…

Higg FEM 验证 - 模块状态变更常见问题解答

最近的Higg FEM 2023评估适用性逻辑更新导致了自我评估完成率的变化。一些关乎工厂和品牌的常见问题&#xff0c;也许能让您更加容易理解这些变更对您或您企业的影响。 Q为什么在我的Higg FEM模块中有未回答的问题? AHigg FEM 2023模块更新了一个补丁&#xff0c;以确保模块内…

富格林:具备可信方案畅顺出金

富格林认为&#xff0c;对于想要投资黄金的新手来说&#xff0c;在进入市场之前&#xff0c;应该具备可信的操作方案。只有这样&#xff0c;才能够在黄金市场中游刃有余畅顺出金。那么有什么可信操作方案可以帮助我们实现畅顺出金呢&#xff1f;接下来&#xff0c;富格林就给大…

递归在多级数据结构中的简单应用

哈喽&#xff0c;我是小码&#xff0c;半年多没更新了&#xff0c;这段时间换了新工作&#xff0c;工作也很忙。后续会尽量多写点&#xff0c;坚持确实是一件很难&#xff0c;很酷的事情。最近在公司负责开发商品有关的开发&#xff0c;商品包含类型、款式等属性&#xff0c;而…

二十分wgeqw

/*模拟某单位的人事管理。 人事信息主要包括&#xff1a;员工编号、所在部门、职务、薪资等级、薪资、联系方式等内容&#xff1b;部门信息主要包括&#xff1a; 部门编号、部门名称等内容。完成以下操作&#xff1a;实现员工信息、部门信息的添加、修改、删除和查询。*/ #incl…

Windows下 CLion中,配置 OpenVINO,运行Yolov8

之前我们完成了Windows下 CLion中&#xff0c;配置 OpenCV、LibTorch&#xff0c;下面我们来装OpenVINO OpenVINO下载与安装 下载并解压OpenVINO Archives (当前测试了2024.1版本)&#xff0c;记住路径&#xff0c;我的是&#xff1a;C:\Libraries\Intel\openvino_2024.1.0 …

视频推广短信:新时代的营销利器(视频短信XML接口示例)

随着移动互联网的普及&#xff0c;短信已经不再是简单的文字信息传递工具&#xff0c;而是逐渐演变为一种有效的推广手段。特别是当视频与短信结合时&#xff0c;它所带来的营销效率更是令人瞩目。 一、视频推广短信的特点 1.直观性&#xff1a;与传统的文字短信相比&#xf…

游戏盾之应用加速,何为应用加速

在数字化时代&#xff0c;用户对于应用程序的防护要求以及速度和性能要求越来越高。为了满足用户的期望并提高业务效率&#xff0c;应用加速成为了不可忽视的关键。 应用加速是新一代的智能分布式云接入系统&#xff0c;采用创新级SD-WAN跨域技术&#xff0c;针对高防机房痛点进…

令人瞠目结舌的8个ChatGPT-4o提示词

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

【python】OpenCV—Bitplane

学习来自&#xff1a; 位平面分割&#xff08;Bit-Plane Slicing&#xff09;使用OpenCVPython进行图像处理的初学者指南 位平面 位平面&#xff08;bitplane&#xff09;是一个在计算机科学中用于描述图像数据的概念&#xff0c;具体定义如下&#xff1a; 【定义】&#x…

《手把手教你》系列练习篇之10-python+ selenium自动化测试(详细教程)

1. 简介 今天我们继续前边的练习&#xff0c;学习和练习一下&#xff1a;如何使用webdriver方法获取当前测试页面的URL、如何获取当前页面的title、如何打开浏览器的一个新建页面、如何操作单选按钮等等&#xff0c;这些小练习&#xff0c;来巩固基础。 2. webdriver方法获取…

​谁用谁知道,教师实用工具分享​

老师们面临着日益增长的教学和管理任务。为了有效提升工作效率&#xff0c;一些实用的工具成为了老师们不可或缺的助手。给大家分享几款教师必备的工具&#xff0c;帮助教师们在教学和管理工作中更加得心应手。 1. 知乎&#xff1a;知识的海洋 知乎是一个中文问答社区&#xf…

Docker-compose安装、使用,容器化部署springboot项目

一、docker-compose的安装 1、按官网的方式去安装 1&#xff09;下载docker-compose curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 若…

【微机原理及接口技术】中断系统

【微机原理及接口技术】中断系统 文章目录 【微机原理及接口技术】中断系统前言一、中断概述中断的基本概念中断处理过程 二、8086/8088中断系统中断类型中断响应过程中断向量表内部中断服务程序 总结 前言 本篇文章我们会讲到中断的概述&#xff0c;8086/8088中断系统。 一、…

bootstrap5-学习笔记3-文字格式+表格+徽章

参考&#xff1a; Bootstrap5 教程 | 菜鸟教程 https://www.runoob.com/bootstrap5/bootstrap5-tutorial.html Bootstrap 入门 Bootstrap v5 中文文档 v5.3 | Bootstrap 中文网 https://v5.bootcss.com/docs/getting-started/introduction/ 之前用bootstrap2和3比较多&#x…

微软云计算Windows Azure(三)

目录 五、Windows Azure Marketplace六、Windows Azure服务平台&#xff08;一&#xff09;网站&#xff08;二&#xff09;虚拟机&#xff08;三&#xff09;云服务&#xff08;四&#xff09;移动服务&#xff08;五&#xff09;大数据处理&#xff08;六&#xff09;媒体支持…

点赋科技:在招聘会上绽放光彩,助力青春梦想起航

在近日举行的青年企业家协会招聘会暨长江大学就业实习双选会上&#xff0c;点赋科技以其独特的魅力和强大的实力吸引了众多求职者的关注。 点赋科技的展位前人头攒动&#xff0c;公司的招聘团队热情地与每一位求职者交流。他们详细介绍了公司的发展历程、业务范围、企业文化以及…

Linux 命令 `chown`:改变文件或目录的所有者

Linux 命令 chown&#xff1a;改变文件或目录的所有者 在 Linux 系统中&#xff0c;文件和目录的所有者&#xff08;owner&#xff09;是一个非常重要的属性。这个属性决定了哪些用户可以访问、修改或删除这些文件或目录。当你需要更改文件或目录的所有者时&#xff0c;chown …

关于跨平台UI开发的几个问题确认

1.托管的c程序可以在windows环境下编译&#xff0c;然后放到linux环境下执行吗 一般来说&#xff0c;直接在Windows环境下编译的C程序&#xff08;除非使用了特定的跨平台编译工具链和设置&#xff09;是不能直接在Linux环境下执行的&#xff0c;因为这两种操作系统使用不同的…