![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Matlab
文章平均质量分 71
比奇堡咻飞兜
我很丰富,无法简介
展开
-
【MATLAB】遗传算法(GA)求解TSP问题
1. 概述∙\bullet∙ 产生:1975念,Holland提出GA∙\bullet∙ 来源:生物的进化:自然选择、适者生存;生物的遗传变异。∙\bullet∙ 基本思想:▹\triangleright▹ 根据问题目标函数构造适应度函数(fitness function)▹\triangleright▹ 产生一个初始种群(100-1000)▹\triangleright▹ 根据适应度函数的好坏,不断的进行选择、交叉、变异、繁衍▹\triangleright▹ 若干代后得到适应度函数最好的个体原创 2021-08-07 19:04:31 · 2915 阅读 · 10 评论 -
【MATLAB】禁忌算法(TS)求解TSP问题
目录1.TS概述1.1 TS介绍1.2 TS流程1.3 TS流程特点2.基于TS求解TSP问题2.1 tsp.m2.2 CalDist.m2.3 drawTSP.m2.4 tabu_search.m2.5 结果1.TS概述1.1 TS介绍∙\bullet∙ 概念:禁忌搜索算法(Tabu Serach,简称TS)是一种全局性邻域搜索算法,模拟人类具有记忆功能的寻优特性。它通过领域搜索机制和相应的禁忌准则来避免迂回搜索,并通过破禁水平来释放一些被禁忌的优良状态,从而保证多样化,实现全局最优。∙\bull原创 2021-08-05 12:53:44 · 3762 阅读 · 0 评论 -
【MATLAB】模拟退火算法(SA)求解TSP问题
目录1. SA概述1.1 SA介绍1.2 SA核心1.2.1 三个函数1.2.2 两个准则1.3 SA优缺点1.3.1 优点1.3.2 缺点2. 基于SA解决TSP问题2.1 tsp.m2.2 CalDist.m2.3 drawTSP.m2.4 simulated_annealing.m2.5 结果1. SA概述1.1 SA介绍SA的提出:模拟退火算法最早的思想由Metropolies等(1953)提出,1983年Kirkpatrick等将其应用于组合优化。SA的目的:∙\bullet∙ 解决N原创 2021-08-03 13:08:17 · 2573 阅读 · 0 评论 -
【MATLAB】粒子群优化算法(PSO)求函数极值
目录1.PSO概述1.1基本思想1.2特点1.3算法介绍1.PSO概述1.1基本思想∙\bullet∙ 群体迭代,粒子在解空间(n维)追随最优的粒子进行搜索。∙\bullet∙ 粒子群算法的思想源于对鸟群捕食行为的研究。∙\bullet∙模拟鸟集群飞行觅食的行为,鸟之间通过集体的协作使群体达到最优目的。PSO基础:信息的社会共享1.2特点∙\bullet∙ 简单易行∙\bullet∙ 收敛速度快∙\bullet∙ 设置参数少1.3算法介绍主要思路:∙\bullet∙ 每个寻优问原创 2021-08-02 10:21:46 · 3587 阅读 · 5 评论 -
【MATLAB】最短路径Floyd算法
目录1.Floyed算法1.1适用范围1.2算法思想1.3实例2.代码2.1floyd函数2.2调用函数1.Floyed算法1.1适用范围∙\bullet∙ 求每队顶点的最短路径∙\bullet∙ 有向图、无向图和混合图1.2算法思想直接在图的带权邻接矩阵中用插入顶点的方法依次递推地构造出n个矩阵D(1),D(2)…D(n)(每次加入一个点然后更新最短路径矩阵D),D(n)是图的最短距离矩阵,同时引入一个后继点矩阵path记录两点间的最短路径。1.3实例对于如下无向图:我们可以得如下原创 2021-07-31 12:01:06 · 17013 阅读 · 23 评论 -
【MATLAB】最短路径Dijkstra算法
目录1.Dijkstra算法1.1使用范围1.2算法思路1.3实例2.代码2.1dijstra函数2.2调用函数1.Dijkstra算法1.1使用范围∙\bullet∙ 寻求从一固定顶点到其余各点的最短路径∙\bullet∙ 有向图、无向图和混合图∙\bullet∙ 权非负1.2算法思路每一次迭代产生一个永久标号,把它接入到以起始点为v0根的树中,在这棵树上每一个顶点与根结点之间的路径皆为最短路径。1.3实例寻找从顶点1到顶点5的最短路径:一共有六个顶点,生成的带权邻接矩阵为:[原创 2021-07-30 20:00:08 · 25351 阅读 · 55 评论 -
【MATLAB】最小生成树Kruskal算法
目录1.Kruskal算法1.1 基本思想1.2 步骤2.算法实现2.1 存储结构2.2 MATLAB代码1.Kruskal算法1.1 基本思想将图的n个顶点看作n个分离的部分树,每个树具有一个顶点,算法的每一步就是选择连接两个分离树的具有最小权值的边,将两个树合二为一,直到只有一个树为止(进行n-1步)得到最小生成树。1.2 步骤∙\bullet∙ 选择边e1,使得w(e1)尽可能小。∙\bullet∙ 再次选择最小边,必须满足不构成圈且边权尽可能小。∙\bullet∙ 直到不能满足则停止原创 2021-07-29 09:20:13 · 10063 阅读 · 4 评论 -
曲线拟合(多项式函数+MATLAB实例)
一.拟合所需函数这里我们主要考虑用多项式函数去进行曲线拟合(1)polyfit 函数功能: 求得结果为最小二乘法拟合的多项式系数。格式:p = polyfit(X,Y,n);X,Y为进行拟合的样本数据,类型为矩阵。n为拟合的多项式次数,看散点图判断拟合次数。p为拟合后返回的多项式系数矩阵。[p,s] = polyfit(X,Y,n);返回两个结果,s为采样点的误差数据[p,s,mu] = polyfit(X,Y,n);返回三个结果,mu是一个二元向量,其中mu(1)是原创 2021-05-09 17:16:23 · 16780 阅读 · 11 评论 -
人口模型(Malthus+Logistic)附Matlab代码
目录一.Malthus模型(指数模型)(1)提出以及假设(2)影响人口增长的因素(3)建立模型(4)结论二.Logistic模型(阻滞增长模型)(1)背景(2)建立 r 的关系式(3)模型建立(4)结论一.Malthus模型(指数模型)(1)提出以及假设指数增长模型,由马尔萨斯在1798年提出基本假设:人口(相对)增长率r是常数(r很小)相对增长率 = 出生率 - 死亡率(2)影响人口增长的因素人口的基数出生率和死亡率年龄结构性别比例工农业生产水平医疗水平政府出台的政策原创 2021-04-12 21:43:10 · 100635 阅读 · 181 评论 -
MATLAB(linprog)求解线性规划问题
如果相应位置无等式约束,那么需要输入[] 空矩阵进行占位,如果最后的输入项没有,那么可以直接忽略。Matlab中求解线性规划的命令为:linprog,解决的线性规划问题也需要转换为标准格式。因为标准格式为约束条件为≤,所以在所有约束条件其前面加一个负号,同时改变符号。A,Aeq为矩阵,A为不等式约束的系数矩阵,Aeq为等式约束的系数矩阵。规划问题三大要素:约束条件、目标函数、决策变量。b,c,x,beq,LB,UB均为列矩阵。原创 2021-04-11 17:28:07 · 7554 阅读 · 3 评论 -
MATLAB求解方程与方程组
一.solve()方法(1)单变量方程 f(x)=0solve()方法可以求解较为简单的方程和方程组。1)符号方程所谓符号方程就是求得方程的解的解析式而不是具体的数值解,比如当参数未知时求得的解。eg:ax2 + bx + c = 0syms a b c x;f = a*x^2+b*x+c; solve(f,x) %求解结果如下ans =-(b + (b^2 - 4ac)^(1/2))/(2a)-(b - (b^2 - 4ac)^(1/2))/(2a)注意: 将solve(原创 2021-04-11 14:14:40 · 51892 阅读 · 8 评论 -
Matlab三维图形的绘制
一.三维曲线三维曲线的绘制非常的简单,我们只需要使用plot3(x,y,z)函数即可。话不多说,直接上例子:z = 0:0.1:8*pi;y = sin(z);x = cos(z);plot3(x,y,z);grid on二.三维曲面(1)mesh 函数生成网格状的曲面[X,Y] = meshgrid(-5:0.1:5); %生成X,Y的矩阵Z = sin(sqrt(X.*X+Y.*Y));mesh(Z)(2)surf 函数生成带颜色的网格状曲面,加上了颜色原创 2021-03-16 20:24:54 · 290 阅读 · 0 评论 -
Matlab迭代法求解 x = sqrt(a) 的值
一.代码%使用了函数sq.m文件function x = sq(a)%使用牛顿迭代法计算 x = sart(a) 的结果if a<0 warning('负数无实平方根');endx = a/2; %初始时的x值while 1 x1 = (x+a/x)/2; x2 = x-x1; %前后两次结果之差处于精度范围内则输出 if abs(x2)<1e-5 break; end x = x1; %最后输出的是x1的值原创 2021-03-11 18:09:21 · 4640 阅读 · 0 评论 -
Matlab特殊二维图形函数
一.极坐标图:polar(theta,rho,s)theta为极坐标图形的角度,rho为极半径,s为图形的形状theta = 0:pi/20:4*pi;rho = 1 + theta*2;polar(theta,rho,'g');title('Polar plot of 1+theta*2 ');玫瑰线绘制:theta = 0:0.001:2*pi;rho = cos(3*theta);polar(theta,rho,'k');title('Polar plot of cos(3原创 2021-03-08 16:56:12 · 1792 阅读 · 0 评论 -
Matlab一元函数绘图方法
一.基本绘图方法plotplot是绘制一元曲线的基本函数,它利用自变量的一系列数据和应变量的值进行绘图。1)举例画一条正弦曲线:x = linspace(0,2*pi,100);y = sin(x);plot(x,y);2)若要画多条曲线只需要将对应坐标依次放入plot函数即可:x = linspace(0,2*pi,100);y = sin(x);plot(x,y,x,cos(x));3)在每对坐标后面加入相应字符串,可以改变线条的形状以及颜色x = linspace(0原创 2021-03-08 09:12:16 · 8870 阅读 · 2 评论 -
Matlab变量
一.Matlab特殊常量符号含义符号圆周率πpi机器的浮点运算误差限,2.2204e-016eps虚数单位i或j无穷大量inf非数NaN默认存储变量(临时变量)ans注意: 可以直接使用这些符号来表示,注意都是小写字母。二.变量命名规则1)变量名可以由大小写英文字母、数字和下划线组成,但是注意首字母必须是英文字母。2)变量名区分大小写。3)变量名不可以是MATLAB的命令、函数、M文件名,以免引起逻辑运算错误。4)变量名长度不原创 2021-03-07 17:50:16 · 1705 阅读 · 0 评论 -
Matlab常用函数
一.常用函数1)mod函数取模函数,mod(x,y),返回x除y的模>> ans1 = mod(123,10);>> ans2 = mod(7,2);>> ans1,ans2ans1 = 3ans2 = 1注意: 特殊情况mod(X,0):结果为Xmod(X,X):结果为02)fix函数取整函数、截断函数,向最靠近0取整可以配合除法取到合适位置的数字>> ans1 = fix(12/10);原创 2021-03-05 23:00:31 · 1224 阅读 · 0 评论 -
Matlab矩阵基础(数组)
一.创建矩阵(数组)1)直接生成一维数组:>> a = [1 2 3 4 5]a = 1 2 3 4 5>> a = [1,2,3,4,5]a = 1 2 3 4 5可以用逗号或者空格隔开,表示单个的元素;2)直接生成二维数组:>> a = [1 2 3;4 5 6]a = 1 2 3 4 5 6原创 2021-03-04 22:47:22 · 2447 阅读 · 2 评论