数学建模与matlab学习
数学建模模型以及matlab笔记
小张同学该努力了
这个作者很懒,什么都没留下…
展开
-
灰色预测模型
例题:GM(1,1)的matlab代码:y=input('请输入数据');n=length(y);yy=ones(n,1);yy(1)=y(1);for i=2:n yy(i)=yy(i-1)+y(i)endB=ones(n-1,2);for i=1:(n-1) B(i,1)=-(yy(i)+yy(i+1))/2; B(i,2)=1;endBT=B';for j=1:(n-1) YN(j)=y(j+1);endY...原创 2020-08-05 11:41:47 · 203 阅读 · 0 评论 -
层次分析模型
层次分析法的概念:层次分析法的步骤:例题:一致性检验matlab代码:%层次分析法(AHP)disp('请输入判断矩阵A(n阶)');A = input('A=');[n,n] = size(A);x = ones(n,100);y = ones(n,100);m = zeros(1,100);m(1) = max(x(:,1));y(:,1) = x(:,1);x(:,2) = A*y(:,1);m(2) = max(x(:,2));y(:原创 2020-08-05 10:52:42 · 290 阅读 · 0 评论 -
数学规划模型
线性规划模型:代码求解:lingo代码如下model: #程序的开始sets: #变量声明的开始var/1..2/:x; #声明x1,x2endsets max=4*x(1)+3*x(2); 2*x(1)+x(2)<=10;x(1)+x(2)<=8;x(2)<=7;End运行结果:x(1)取2,x(2)取6时取得最大值26lingo代码:model:sets:kar/1..3/;car/1..4/原创 2020-08-04 14:19:22 · 410 阅读 · 0 评论 -
matlab的外部操作
excel表与matlab的交换数据Spreadsheet Link程序在excel中配置好程序后截图如下Send data to MATLAB可以发送数据到matlabGet data from MATLAB可以从matlab中读取数据matlab从文件中读取数据:fopen函数用于打开文件fid = fopen(filename,peimission)其中,fid为文件标识号,filename为待操作的文件名,permission为对文件的允许使用方式,‘r’读,‘w’写,‘r+’读写原创 2020-07-27 13:55:58 · 478 阅读 · 0 评论 -
matlab进行微分运算
diff函数求向前差分dx = diff(x) 计算向量x的一阶向前差分,dx(i)=x(i+1)-x(i),i=1,2,……n-1dx = diff(x,n)计算向量x的n阶向前差分 diff(x,2)=diff(diff(x))dx = diff(A,n,dim) 计算矩阵A的n阶差分,dim=1时按列计算差分;dim=2时,按行计算差分。计算y=f(x)的导数:ans = diff(y)./ diff(x)例:数值积分:例:...原创 2020-07-27 11:25:14 · 19670 阅读 · 3 评论 -
matlab数据分析与多项式计算
计算标准差函数:std(X) 计算向量X的标准差std(A) 计算矩阵A各列的标准差std(A,flag,dim) 当flag=0时,按s1所列公式计算样本标准差,当flag=1时,按s2所列公式计算总体标准差。dim=1时计算每一列,dim=2时计算每一行例题:代码:相关系数计算函数:corrcoef() 相关系数计算函数corrcoef(A) 返回由矩阵A所形成的相关系数矩阵,其中,第i行第j列的元素表示原矩阵A中第i列和第j列的相关系数corrcoef(A,B) 求向量A,B的相原创 2020-07-26 22:35:30 · 417 阅读 · 0 评论 -
matlab绘图
plot(x,y)函数绘制2维曲线cx = x+y*i plot(cx) 也能绘制同样的曲线y=[……]时可以绘制多条曲线plot(x,y,x2,y2,x3,y3) 可以绘制多条曲线fplot(f,lim,选项)函数f是一个函数,采用函数句柄形式,lim是x轴的范围,选项于plot一样例:绘制y=sin(1/x)曲线,x取值为(0,0.2)fplot(@(x)sin(1./x),[0,0.2],‘b’);图形的修饰:title(图形标题)xlabel(x轴说明)ylabel(y轴说明原创 2020-07-25 11:58:59 · 407 阅读 · 0 评论 -
matlab基础内容总结
exp(A)求A矩阵的自然指数值sin(pi/2)=sind(90)=1abs函数求复数的模,实数的绝对值和字符ascll码的值取舍函数:round函数四舍五入取整ceil函数向上取整floor函数向下取整fix函数舍弃小数取整rem(m,10)求m除10取余的值isprime(n)判断n是否为素数例题:求1到100中的所有素数x = 1:100;k = isprime(x); k中x矩阵是素数的位置为1,不是为0k1 = find(k); 从k中找到所有为1的位置p = x原创 2020-07-25 10:33:53 · 431 阅读 · 0 评论 -
非线性规划模型案例及其编程实现
clear;clca=[1.25 8.75 0.5 5.75 3 7.25];b=[1.25 0.75 4.75 5 6.5 7.75];d=[3 5 4 7 6 11];x=[5 2];y=[1 7];e=[20 20];for i=1:6 for j=1:2 aa(i,j)=sqrt((x(j)-a(i))^2+(y(j)-b(i))^2); endend %计算各个工地到每个料场的距离CC=[aa(:,1);aa(:,2)]'; %要转化成...原创 2020-09-01 21:28:20 · 1627 阅读 · 1 评论 -
匈牙利算法求解整数规划
代码如下:clear allclcc = [3,8,2,10,3;8,7,2,9,7;6,4,2,7,5;8,4,2,3,5;9,10,6,9,10];c = c(:); %将矩阵c转化为向量a = zeros(10,25);for i=1:5 a(i,(i-1)*5+1:5*i)=1; a(5+i,i:5:25)=1;end %此循环把指派问题转化为线性规划问题b=ones(10,1);[x,y]=linprog(c,[],[],a,b,zeros(25...原创 2020-09-01 19:38:57 · 1233 阅读 · 0 评论 -
Matlab常用求解数学规划模型代码
Matlab求解线性规划问题——linprog函数:引用博客链接侵删[x,fval,exitflag,output,lambda] = linprog(c,A,b,Aeq,beq,LB,UB,X0,OPTIONS)其中,fval返回目标函数的值,exitflag是收敛标志,取1则问题收敛,output可以显示迭代总次数和使用的算法等,ambda是问题求解中用到的拉格朗日乘子。A和b矩阵对应不等式方程组,Aeq和beq矩阵对应等式方程组,LB和UB分别对应变量x的下界和上界,X0是x的初始值,OPTIO原创 2020-08-13 14:13:00 · 3392 阅读 · 0 评论 -
遗传算法
遗传算法:一种仿生全局优化算法模拟生物的遗传进化原理,通过选择、交叉与变异等操作机制,使种群中个体的适应性不断提高。matlab代码:参考博客链接如下(侵删):添加链接描述主函数:function main()clear;clc;%种群大小popsize=100;%二进制编码长度chromlength=10;%交叉概率pc = 0.6;%变异概率pm = 0.001;%初始种群pop = initpop(popsize,chromleng原创 2020-08-11 10:05:30 · 116 阅读 · 0 评论 -
粒子群算法
算法示例:粒子一开始调整的幅度大,越往后调整的幅度越小,来提高精度。原创 2020-08-10 11:49:47 · 462 阅读 · 0 评论 -
BP神经网络数据预测实例代码
clear allclc%%清空环境变量%1.导入数据load data%2.随机产生训练集和测试集temp = randperm(size(DATA,1));%打乱60个样本的顺序%训练集——50个样本P_train = DATA(temp(1:50),:)';T_train = DATA2(temp(1:50),:)';%测试集——10个样本P_test = DATA(temp(51:end),:)';T_test = DATA2(temp(51:end),:)';N=.原创 2020-08-08 18:37:59 · 4287 阅读 · 1 评论 -
BP神经网络算法
建立和应用神经网络的步骤:(1)网络结构的确定包括网络的拓扑结构和每个神经元相应函数的选取(2)权值和阈值的确定通过学习得到,为有指导的学习,也就是利用已知的一组正确的输入、输出数据,调整权和阈值使得网络输出与理想输出偏差尽量小(3)工作阶段用带有确定权重和阈值的神经网络解决实际问题的过程,也叫模拟人工神经元的模型:各输入信号达到阈值之后才会对其进行处理,处理是带入激活函数后输出。归一化算法:S型:(y-min)/(max-min)双S型:2*(y-min)/(max-min)原创 2020-08-08 16:55:53 · 248 阅读 · 0 评论 -
蒙特卡罗方法
概念:蒙特卡罗方法又称统计模拟法、随机抽样技术、是一种随机模拟方法,以概率和统计理论方法为基础的一种计算方法,是使用随机数来解决很多计算问题的方法。将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解。为象征性地表明这一方法地概率统计特征,故借用赌城蒙特卡罗命名。蒙特卡罗方法求定积分的值:matlab代码:N=500;x = unifrnd(0,2,N,1);mean(2*exp(x))另外计算定积分的方法回顾:1.F=quad(‘fname’原创 2020-08-06 10:23:13 · 337 阅读 · 0 评论 -
模拟退火算法
模拟退火算法求最大值:clear,close all;clc;y=@(x)10*(x-2*(sin(x)).^2).^2 %目标函数%……初始参数表……%t1=100; %初始温度t0=1; %终止温度w=0.9 %衰减系数(经验在0.9-0.99之间,w越大搜索次数越多)xmax=13,xmin=-13;%搜索范围在[-13,13]之间xcurrent=0 %当前解xnew=0 %新解xbest=0%最优解%……初始参数表……%[hp,hn,hb]=sho原创 2020-09-02 17:08:46 · 182 阅读 · 0 评论