MATLAB数学建模算法学习笔记

发布 2023-05-18 01:11:28 阅读 3726

关于matlab的数学建模算法学习笔记。

目录。线性规划中应用: 3

非线性规划: 3

指派问题;投资问题:(0-1问题) 3

1) 应用fmincon命令语句 3

2)应用指令函数:bintprog 5

重新整理矩阵类型 6

1)应用reshape 6

2) 应用命令:nonzeros 7

非线性的最小值得求法:含有一个变量时,应用命令:fminsearch(@fun,x0) 7

含有多个变量时用:fminunc() 7

求解非线性多变量等式应用命令fsolve 8

二次规划问题应用:quadprog 8

把有条件的问题转化成无条件问题。罚函数法:fminunc 9

在matlab中求解极值问题函数有: 9

1)fminbnd 9

1:在matlab中求解距离的函数为:dist 9

最小生成树 9

prim算法 10

find函数的应用 10

关于图论的matlab工具箱相关命令 10

这些命令基本上都用到稀疏阵,产生稀疏阵用sparse命令 10

查看网图用view 11

积分命令quadl 11

matlab插值工具箱 11

一维插值:interp1 11

二维插值: 11

插值接点为网格节点:interp2 11

插值节点为散乱节点:griddata 11

最小二乘法 11

2)应用lsqlin命令语句 12

三次样条差 12

积分函数命令 :quadl 13

同一组数据用不同插值方法效果比较线性插值、三次样条插值 13

参数估计 14

1)非线性最小拟合 14

命令:lsqcurvefit解决非线性拟合问题。 14

2)线性最小二乘法 15

解微分方程 16

1) 求解常微分、线性常微分、齐次与非齐次微分方程等问题 16

2) 初值问题的matlab数值解 16

3) 高阶微分方程 16

4)边值问题的matlab数值解 16

多目标规划问题 18

解决方案: 18

1) 加权系数法。 18

2) 优先等级法。 18

3) 序贯算法 18

4) 应用多目标规划的matlab函数fgoalattain具体见《数学建模算法与应用》p131 18

5) 多目标规划可以归结为: 18

分类问题 19

聚类分析:q型和r型 19

用于求元素之间距离的命令:mandist 19

去掉非零元命令:nonzeros 19

去掉重复的元素命令:union 19

matlab聚类分析的相关命令 19

知识点。线性规划中应用:

1)x=linprog(c,a,b,aeq,beq,zeros(x的个数,1) )用于在限制条件下的最小值;

x=linprog(-c,a,b,aeq,beq,zeros(x的个数,1) )用于在限制条件下的最大值;

非线性规划:

1)x=fmincon(fun,x0,a,b,aeq,beq,lb,ub,nonlcon,options)

指派问题;投资问题:(0-1问题)

1)应用fmincon命令语句。

matlab 中非线性规划的数学模型写成以下形式

其中 f ( x) 是标量函数, a, b, aeq, beq 是相应维数的矩阵和向量,c( x), ceq( x) 是非线性向量函数。

matlab 中的命令是。

x=fmincon(fun,x0,a,b,aeq,beq,lb,ub,nonlcon,options)

它的返回值是向量 x ,其中 fun 是用 m 文件定义的函数 f ( x) ;x0 是 x 的初始值;a,b,aeq,beq 定义了线性约束 a * x ≤ b, aeq * x beq ,如果没有线性约束,则a=b=aeq=beq=lb 和 ub 是变量 x 的下界和上界,如果上界和下界没有约束,则 lb=ub=如果 x 无下界,则 lb 的各分量都为-inf,如果 x 无上界,则 ub的各分量都为 inf;nonlcon 是用 m 文件定义的非线性向量函数 c( x), ceq( x) ;options定义了优化参数,可以使用 matlab 缺省的参数设置。

例子:2)应用指令函数:bintprog

重新整理矩阵类型。

1)应用reshape

2)应用命令:nonzeros

功能是将a=nonzeros(b)矩阵b按列逐次去值放在a中形成一个列向量。

非线性的最小值得求法:含有一个变量时,应用命令:fminsearch(@fun,x0)

含有多个变量时用:fminunc()

求解非线性多变量等式应用命令fsolve

二次规划问题应用:quadprog

把有条件的问题转化成无条件问题。罚函数法:fminunc

其中:用法[x,y]=fminunc(‘test3’,rand(1,2))与[x,y]=fminunc(@test3,rand(1,2))相同。

缺点:精度不高。

在matlab中求解极值问题函数有:

1)fminbnd

解决单变量非线性函数在区间上的极小值问题。

3)fseminf

解决多变量、含有非线性约束的极小值问题。

3)fminimax

解决多变量,满足在多个式子中极小——极大问题。

加一个负号就是解决多个式子中极大——极小值问题。

4)利用梯度求解约束优化问题。

1:在matlab中求解距离的函数为:dist

2:sin()的反函数用asind()表示。

3:将数据生成txt文本:dlmwrite

最小生成树

prim算法。

find函数的应用。

1)i=find(a)找出a内的非零元素位置,按列查找。一次写在i 中。

2)[i,j,k]=find(a)找出a中非零元素的位置,将行标放入i中,将列表放入j中,将数值放入k中,按理寻找。

关于图论的matlab工具箱相关命令。

这些命令基本上都用到稀疏阵,产生稀疏阵用sparse命令。

1)graphallshortestpaths 求图中所有顶点之间的最短距离。

2)graphconncomp 找无向图的连通分支,或有向图的强(弱)连通分支。

3)graphisdag测试所有有向图是否含有圈,不含圈返回1,含圈返回0

4)graphisomorphism确定连个图是否同构,同构返回1,否则返回0

5)graphisspantree 确定一个图是否是生成树,是返回1,否则返回0

6) graphmaxflow计算有向图的最大流。

7)graphminspantree在图中找最小生成树。

8)graphpred2path把前驱顶点的一对顶点间的最短距离和嘴短路径。

9)graphtopoorder执行有向无圈图的拓扑排序。

10)graphtr**erse求从一顶点出发,所能遍历图中的顶点。

查看网图用view

用法: view(biograph(st,showarrows','off','showweights','on'))其中st为树。

积分命令quadl

matlab插值工具箱。

一维插值:interp1

二维插值:插值接点为网格节点:interp2

插值节点为散乱节点:griddata

最小二乘法。

2)应用lsqlin命令语句。

三次样条差。

积分函数命令 :quadl

同一组数据用不同插值方法效果比较线性插值、三次样条插值。

例子clc;clear;

x0=[0 3 5 7 9 11 12 13 14 15];

y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6];

x=0:0.1:15;

y1=interp1(x0,y0,x);%线性插值。

y2=interp1(x0,y0,x,'spline');立方样条插值。

pp1=csape(x0,y0);

y3=ppval(pp1,x);%边界为一阶导插值。

pp2=csape(x0,y0,'second');

y4=ppval(pp2,x);%边界为二阶导插值。

x',y1',y2',y3',y4'];

subplot(1,3,1)

plot(x0,y0,'+x,y1)

title('piecewise linear')

subplot(1,3,2)

plot(x0,y0,'+x,y2)

title('spline1')

subplot(1,3,3)

plot(x0,y0,'+x,y3)

title('spline2')

dx=diff(x);%diff为一阶微分。

dy=diff(y3);

dy_dx=dy./dx;

dy_dx0=dy_dx(1)

% 求13<=x<=15内y的最小值。

ytemp=y3(131:151);

ymin=min(ytemp);

index=find(y3==ymin);

xmin=x(index);

xmin,ymin]

hold on

plot(xmin,ymin,'ro')

参数估计。1)非线性最小拟合。

命令:lsqcurvefit解决非线性拟合问题。

人口数学模型的应用:

例子:数学建模算法与应用的的6章人口预报模型。

clc, clear

a=textread(''把原始数据保存在纯文本文件中。

x=a([2:2:6提出人口数据。

x=nonzeros(x); 去掉后面的零,并变成列向量。

t=[1790:10:2000]';

t0=t(1); x0=x(1);

fun=@(cs,td)cs(1)./1+(cs(1)/x0-1)*exp(-cs(2)*(td-t0)))cs(1)=xm,cs(2)=r

cs=lsqcurvefit(fun,rand(2,1),t(2:end),x(2:end),zeros(2,1))%拟合,满足使最小二乘最小的参数cs

xhat=fun(cs,[t;2010]) **已知年代和2023年的人口。

2)线性最小二乘法。

人口数学模型的应用,例子:1)利用后项查分。

clc, clear

a=textread(''把原始数据保存在纯文本文件中。

x=a([2:2:6],:

x=nonzeros(x);

t=[1790:10:2000]';

a=[ones(21,1), x(2:end)];

数学建模matlab学习

第六章复数数据 字符数据和附加画图类型 3 6.1 复数数据 3 6.1.1 复变量 complex variables 4 6.1.2 带有关系运算符的复数的应用 4 6.1.3 复函数 complex function 5 1.类型转换函数 5 2.绝对值和幅角函数 5 3.数学函数 5 例6....

数学建模matlab作业

数统应数 20121323003 王妍。数统应数 20121323022 胡可旺。1 生成5阶矩阵,使其元素满足均值为1,方差为4的正态分布 y 1 sqrt 4 randn 5 结果 2,生成一个20行5列矩阵a,其元素分别以概率 2取自 这三个整数,然后将 删除a的全零行 之后的结果赋给矩阵b ...

数学建模Matlab练习

matlab练习四。1.绘制两个一元函数的曲线图 例如y sin x y cos x 加上标注说明,包括坐标 抬头 曲线说明等。x 0 pi 30 2 pi y sin x plot x,y,ob markersize 10 hold on y1 cos x plot x,y1,markersize...