最优化总结

最优化

    • 引入问题
      • 例1 运输问题
      • 例2 生产计划问题
      • 例3 指派问题
      • 例4 数据拟合问题
    • 线性规划
    • 向量和矩阵范数
    • 拟合
      • 线性拟合
      • 非线性拟合
    • 无约束最优化问题的基本思想
    • 实验
      • plot函数
      • meshgrid函数
      • linprog函数

引入问题

例1 运输问题

在这里插入图片描述
在这里插入图片描述

例2 生产计划问题

在这里插入图片描述
在这里插入图片描述

例3 指派问题

在这里插入图片描述
在这里插入图片描述

例4 数据拟合问题

在这里插入图片描述
在这里插入图片描述

线性规划

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

向量和矩阵范数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

拟合

线性拟合

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

非线性拟合

在这里插入图片描述
在这里插入图片描述

无约束最优化问题的基本思想

在这里插入图片描述
在这里插入图片描述

实验

plot函数

在这里插入图片描述

meshgrid函数

  1. 用两个坐标轴上的点在平面上画格。
    用法:
      [X,Y]=meshgrid(x,y)
      [X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的
      [X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图
      
      例题1:
  x=-3:1:3;y=-2:1:2;[X,Y]= meshgrid(x,y);

这里meshigrid(x,y)的作用是产生一个以向量x为行,向量y为列的矩阵,而x是从-3开始到3,每间隔1记下一个数据,并把这些数据集成矩阵X;同理y则是从-2到2,每间隔1记下一个数据,并集成矩阵Y。即

  X=-3 -2 -1 0 1 2 3-3 -2 -1 0 1 2 3-3 -2 -1 0 1 2 3-3 -2 -1 0 1 2 3-3 -2 -1 0 1 2 3Y =-2 -2 -2 -2 -2 -2 -2-1 -1 -1 -1 -1 -1 -10 0 0 0 0 0 01 1 1 1 1 1 12 2 2 2 2 2 2

附注:例题中meshgrid(-3:1:3,-2:1:2);因为-3:1:3产生的是含有7个数字的行向量;-2:1:2产生的是含有5个数字的行向量。所以该命令的结果是产生57的矩阵(X,Y都是57的矩阵;其中X是由第一个含7个元素的行向量产生,Y是由第二个行向量产生)

  1. meshgrid是MATLAB中用于生成网格采样点的函数。在使用MATLAB进行3-D图形绘制方面有着广泛的应用。
    生成绘制3-D图形所需的网格数据。在计算机中进行绘图操作时,往往需要一些采样点,然后根据这些采样点来绘制出整个图形。在进行3-D绘图操作时,涉及到x、y、z三组数据,而x、y这两组数据可以看做是在Oxy平面内对坐标进行采样得到的坐标对(x,y)。
    语法:
      [X,Y] = meshgrid(x,y)

上面的描述,我们可以知道,meshgrid返回的两个矩阵X、Y必定是行数、列数相等的,且X、Y的行数都等

于输入参数y中元素的总个数,X、Y的列数都等于输入参数x中元素总个数(这个结论可以通过查看meshgrid的源代码得到,可以通过示例程序得到验证)。

[X,Y]=meshgrid(x)与[X,Y]=meshgrid(x,x)是等同的
[X,Y,Z]=meshgrid(x,y,z)生成三维数组,可用来计算三变量的函数和绘制三维立体图

linprog函数

min f’x
约束条件: Ax<=b
等式约束条件: Aeqx=beq
lb<=x<=ub

linprog函数的调用格式如下:
linprog中f都是求最小值,这个要记住。 A和b是不等式约束条件的参数。 Aeq和beq是等式约束条件的参数。 lb和ub为x取值的取值范围。

在这里插入图片描述

函数使用形式:

x=linprog(f,A,b)  
x=linprog(f,A,b,Aeq,beq)  
x=linprog(f,A,b,Aeq,beq,lb,ub)  
x=linprog(f,A,b,Aeq,beq,lb,ub,x0)  
x=linprog(f,A,b,Aeq,beq,lb,ub,x0,options)  
[x,fval]=linprog()  
[x, fval, exitflag]=linprog()  
[x, fval, exitflag, output]=linprog()  
[x, fval, exitflag, output, lambda]=linprog()  

一般主要用的是:

x=linprog(f,A,b,Aep,beq,lb,ub);  

设定中主要要注意的就是参数的维数是否于使用的相对应。

举个例子吧:
在这里插入图片描述

例2:
生活中最常用的:假如有三种商品,a,b,c。三种商品总的数量不能超过30;c种商品不能超过15,b种商品不能超过10。
商品的单价是10,20,30。现在求三种商品各是多少,销售额最高。

转化为数学问题:

条件:
a+b+c<30
c<15
b<10

函数:

f = 10*a+20*b+30*c

因为linprog求的是最小值,一次我们改为:

f = -10*a+20*b+30*c)

这样我们有了函数,然后根据约束条件不等式,有:

A = [1 1 1;0 0 1;0 1 0]  
b = [30 15 10]  

但这样算出来的结果大家会发现是小数,也可能是负数。

因此我们加入a b c取值的上下限

lb = [0 0 0]  
ub = [30 30 30]  

如果在计算中需要得到小数的结果,只要写成0.00或者30.00就可以了
最后带入函数计算即可。

原创内容,笔者才疏学浅,若有错误或遗漏之处,还望海涵,敬请指正,如有转载,请注明出处,谢谢!!!

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

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

相关文章

C#线程基础(线程启动和停止)

目录 一、关于线程 二、示例 三、生成效果 一、关于线程 在使用多线程前要先引用命名空间System.Threading&#xff0c;引用命名空间后就可以在需要的地方方便地创建并使用线程。 创建线程对象的构造方法中使用了ThreadStart()委托&#xff0c;当线程开始执行时&#xff0c…

每日算法打卡:递归实现指数型枚举 day 1

文章目录 原题链接题目描述输入格式输出格式数据范围输入样例&#xff1a;输出样例&#xff1a; 题目分析 原题链接 92. 递归实现指数型枚举 题目难度&#xff1a;简单 题目描述 从 1 ∼ n 1 \sim n 1∼n 这 n 个整数中随机选取任意多个&#xff0c;输出所有可能的选择方案…

理解SQL中not in 与null值的真实含义

A not in B的原理是拿A表值与B表值做是否不等的比较, 也就是a ! b. 在sql中, null是缺失未知值而不是空值。 当你判断任意值a ! null时, 官方说, “You cannot use arithmetic comparison operators such as , <, or <> to test for NULL”, 任何与null值的对比都将返…

电脑怎么设置代理IP上网?如何隐藏自己电脑的真实IP?

在现代互联网中&#xff0c;代理IP已成为许多用户保护隐私和上网安全的重要手段。通过设置代理IP&#xff0c;用户可以隐藏自己的真实IP地址&#xff0c;提高上网的安全性&#xff0c;同时保护个人信息不被泄露。本文将详细介绍如何设置代理IP上网以及如何隐藏电脑的真实IP地址…

CSS 纵向顶部往下动画

<template><div class"container" mouseenter"startAnimation" mouseleave"stopAnimation"><!-- 旋方块 --><div class"box" :class"{ scale-up-ver-top: isAnimating }"><!-- 元素内容 -->&…

如何使用Git进行代码版本管理

目录 建立仓库 分支管理 推送代码 问题 建立仓库 先在远程代码托管平台&#xff08;如GitHub、GitLab等&#xff09;上创建一个新的仓库 使用命令行或终端&#xff0c;进入你的本地项目目录 如果项目还没有使用Git进行版本控制&#xff0c;可以通过执行以下命令来初始…

光敏电阻式光控开关典型应用电路

光敏电阻一般广泛应用于各种光控电路&#xff0c;监控灯板&#xff0c;玩具控制等&#xff0c;如对灯光的控制、调节等场合&#xff0c;也可用于光控开关&#xff0c;下面给出几个典型应用电路。 1、光敏电阻调光电路 图中是一种典型的光控调光电路&#xff0c;其工作原理是&a…

Python批量读取大量nc格式文件并导出全部时间信息

本文介绍基于Python语言&#xff0c;逐一读取大量.nc格式的多时相栅格文件&#xff0c;导出其中所具有的全部时间信息的方法。 .nc是NetCDF&#xff08;Network Common Data Form&#xff09;文件的扩展名&#xff0c;表示一种常用的科学数据存储格式。NetCDF是一种自描述的、可…

算法学习系列(十四):并查集

目录 引言一、并查集概念二、并查集模板三、例题1.合并集合2.连通块中点的数量 引言 这个并查集以代码短小并且精悍的特点&#xff0c;在算法竞赛和面试中特别容易出&#xff0c;对于面试而言&#xff0c;肯定不会让你去写一两百行的代码&#xff0c;一般出的都是那种比较短的…

是否在消息上打标?

场景 用户可以创建某个虚拟形象&#xff0c;将该形象发布到聊天平台&#xff0c;然后和该形象进行聊天。 用户创建虚拟形象的时候&#xff0c;开启备份功能&#xff0c;将自己的聊天记录备份到指定位置&#xff0c;也可以关闭开关&#xff0c;停止备份功能。 聊天功能和备份…

双指针——移动零

题目 示例 算法原理 我们使用两个指针&#xff0c;cur扫描数组&#xff0c;如果nums[cur]为非0&#xff0c;dest&#xff0c;然后让nums[cur]与nums[dest]交换&#xff0c;从而实区间[0,dest]为非0,[dest1,cur]为0&#xff0c;[cur,numsSize-1]为未扫描 题目链接&#xff1a;28…

网络安全—PKI公钥基础设施

文章目录 前提知识散列函数非对称加密数字签名 PKI受信任的人RA注册CA颁发IKE数字签名认证&#xff08;交换证书&#xff09;密钥管理 前提知识 散列函数 散列也可以叫哈希函数&#xff0c;MD5、SHA-1、SHA-2、、&#xff08;不管叫啥&#xff0c;都记得是同一个东西就行&…