目 录
- matlab版本:2014a(建议下载。)
- matlab版本:2018b(部分程序,运行有误,不建议下载!)
第一章-数学模型与数学建模概述
三大公共基础课:高等数学、线性代数、概率论与数理统计
一次参赛、一次历练、收获多多
相信自己、坚持自己、受益无穷
1、数学与数学模型
1.1、参考书籍
![]()
数学模型(第4版):https://max.book118.com/html/2018/1210/6140024225001234.shtm
数学建模方法及其应用(第2版):https://max.book118.com/html/2017/1016/137252739.shtm
数学建模-书籍【链接:https://pan.baidu.com/s/1-8_6m7Ff--ScMkfT0gCLEA 提取码:zjxs】
2、什么是数学建模?
3、数学建模竞赛介绍
3.1、美国大学生数学建模竞赛
3.2、中国大学生数学建模竞赛
3.3、大学生数学建模竞赛的形式
3.4、数学竞赛准备
3.5、大学生数学建模竞赛赛事(其它竞赛)
- 全国(中国)大学生数学建模竞赛(CUMCM)http://mcm.edu.cn/
- “深圳杯”数学建模挑战赛深圳杯 题目庞大、比赛时间长 :4月中旬-6月
- 华中地区数学建模邀请赛
- 五一数学建模联赛:五一期间
- “泰迪杯”全国数据挖掘挑战赛:4月份
- 美国大学生数学建模竞赛(MCM / ICM):每年1-2月份【中国参赛队 居多!!!】
- ...
第二章-软件介绍
2.1-Matlab介绍
Matlab软件界面
用于命令行编辑的控制键和方向键
变量命名规则
工作区
新建文件、保存文件
帮助系统
2.2-Matlab数组与函数
矩阵的创建
矩阵的剪裁与拼接
数组的运算
矩阵的运算
函数
矩阵函数
2.3-Matlab绘图
平面图形:plot;空间三维曲线:plot3;空间曲面:mesh
基本绘图命令【plot()】
显示绘图工具和停靠图形
x = -30:0.5:30; %步长 0.5
y = x;
[X,Y] = meshgrid(x,y); %网格 画布
R=sqrt(X.^2+Y.^2)+eps;
Z=sin(R) ./R;
mesh(X, Y, Z);
figure;
contour(X,Y,Z,10)
数组运算
图形标题【title()】
坐标轴控制
在一个图上画几条曲线
x = 1:0.1:20;
y = sin(x);
plot(x,y,'r-.');
figure;
x = -10:0.5:10;
y = x.^2 + 3*x + 5;
plot(x,y,'b-*');
在同一页面中画多个图形
⌨上下左右键,移动位置;🖱鼠标拖拽,改变形状。
极坐标图形
参数方程图形
隐函数
% 12,隐函数作图命令:ezplot,使用方法:
% ezplot(fun,[xmin xmax],[ymin ymax]); %【fun是函数具体表达式;[xmin xmax],[ymin ymax] x、y的取值范围。】
fh=@(x,y) sqrt(x.^2+y.^2-16);
ezplot(fh); % ezplot(fh,[-2,2],[-2,2]);【没有指定x、y范围,会根据x、y的实际满足的范围---默认范围】
axis equal% 默认 绿色线条
空间曲线绘制
空间曲面绘制
画出z=xy图形
等高线图
不同的颜色 代表 不同的高度。
% x = -30:0.5:30; y = x;
% [X, Y] = meshgrid(x,y);
% R = sqrt(X.^2*Y.^2)*eps;
% Z = sin(R)/R;
% mesh(X,Y,Z);
% figure;
% contour(X,Y,Z,10);
%
% 文件名example.m
% x=4;y=6;z=2;
% items=x+y+z
% cost=x*25+y*22+z*99
% average_cost=cost/items
%
% 矩阵的创建
% A = [1 2 3; 4 5 6]
% x=-10:0.1:10;
% y= x.^2+3*x+5; %x是向量,点乘
% plot(x,y,'b--*'); %b:蓝色、--:虚线、*:星号标记
% 例1:我们想画一个y=sinx的图像。
% x=1:0.1:20;
% y=sin(x);
% plot(x,y,'r-o');
% 例2:我们画一个y=x^2+3x+5的图像。
% x=-10:0.1:10;
% y= x.^2+3*x+5;
% plot(x,y,'b--*');
% 例3:我们画一个y=(3x+2)/(x^2+3x+5)的图像。
% x=-10:0.1:10;
% y=(3*x+2)./(x.^2+3*x+5);
% plot(x,y, 'g--+');
% 例4:我们画一个y=tan(x)的图像。
% x=0:0.01:pi/2;
% y= tan(x);
% plot(x,y,'g-');
% 4.给图形一个标题给每个图形指定一个合适的标题以利于阅读,这时可以使用命令
% title('图形名’)
% x=-10:0.1:10;
% y=(3*x+2)./(x.^2+3*x+5);
% plot(x,y, 'g--+ ');
% title('(3x+2)/(x^2+3x+5)的图形')
% 9.在同一页面中画多个图形
% 例子6,
% x=linspace(0,2*pi,30);y=sin(x);z=cos(x);
% u=2*sin(x).*cos(x);v=sin(x)./cos(x);
% subplot(2,2,1),plot(x,y),title('sin(x)') %两行两列,第1个位置
% subplot(2,2,2),plot(x,z),title('cos(x)') %两行两列,第2个位置
% subplot(2,2,3),plot(x,u),title('2sin(x)cos(x)')
% subplot(2,2,4),plot(x,v),title('sin(x)/cos(x)')
% 10.极坐标图形
% 例:画出=sin的图形。
% theta = 0:0.01*pi:2*pi %从0到2*pi,等分
% rho = sin(theta) %rho、theta两个向量
% polar(theta,rho,'*') %极坐标作图 自变量、因变量;*表示 默认蓝色
% xlabel('\theta') %横坐标
% ylabel('\rho') %纵坐标
% 11,参数方程的图形
% 例:画出x=2*t, y=t^3-1/(1+t^2)的图形。
% t=-4:0.1:4
% x=2*t
% y=t.^3-1./(1+t.^2)
% plot(x,y,'-*')
% 12,隐函数作图命令:ezplot,使用方法:ezplot(fun,[xmin xmax],[ymin ymax]);
% fun:函数主体;自变量取值范围;因变量取值范围
% fh=@(x,y) sqrt(x.^2+y.^2-16) %定义函数fh,自变量x,因变量y
%函数名为fh,函数为(x^2+y^2-16)^(1/2)=0,这个是隐函数形式,通俗点说就是x,y在同一边,另一边为0 y,x在两边的是显函数
% ezplot(fh) %隐函数作图命令
% axis equal %axis square 当前坐标系图形设置为方形,axis equal 将横轴纵轴的定标系数设成相同值 ,即单位长度相同
% 1,空间曲线的绘制
% 基本命令:
% plot3(x,y,z,'color-linestylemarker');%三个向量,构成一个点;颜色---(实线、虚线、点画线)---标记
% 其用法和plot一致。
% 例7:作螺旋线x=sint,y=cost,z=t;
% t=0:pi/50:10*pi
% plot3(sin(t),cos(t),t);
% 注意:曲线的参数方程比较容易实现。
% 2,绘制空间曲面
% 基本命令:mesh(X,Y,Z);
% 例8:作出下面的曲面
% x=-30:0.5:30; y=x;
% [X,Y]=meshgrid(x,y); %给x、y画布做一个画布,画布范围:从左到右、从上到下[-30,30]
% R=sqrt(X.^2+Y.^2)+eps;
% Z=sin(R) ./ R;
% mesh(X, Y, Z);
% 例子9,画出z=xy的图形。
% x=-4:0.1:4;
% y=x;
% [X,Y]=meshgrid(x,y); %画布 [-4, 4]
% Z=X.*Y;
% mesh(X,Y,Z);
% 3,产生等高线图
% 空间图形看起来有时不是很直观,等高线图是比较常用的一种。等
% 高线图的命令是
% contour(X,Y,Z,n);
% 其中,n表示等高线的条数。
% x=linspace(-2*pi,2*pi)
% y=linspace(0,4*pi)
% [X,Y]=meshgrid(x,y) %将x、y固定到画布上
% Z=sin(X)+cos(Y);
% mesh(X,Y,Z); %绘制空间曲面
% figure %建立图形 系统自动从1,2,3,4...来建立图形,数字代表第几幅图形
% contour(X,Y,Z) %产生等高线图,n未取值,默认值,不同颜色代表不同高度
% 2.4
% 调用格式如下:一个这样的例子。定义一个函数f=100(y-x2)
% 2-(1-x)2
% function f=fun(x) x是二维向量,第一个分量是x(1)、第二个分量是x(2)
% f=100*(x(2)-x(1)^2)^2-(1-x(1))^2;
% 调用格式:
% x=[2 3]; f=fun(x)
% function [m,s]=f2(x) %输出的是2个or2个以上函数体,需要用[]括起来
% n=length(x);
% m=sum(x)/n;
% s=sqrt(sum((x-m).^2/n));
% end
% 调用格式:
% values=[12.7,45.4,98.9,26,6,53.1]; [ave,stdev]=f2(values)
% y=zeros(100,1); % 100行1列的空数组 所有元素取0
% for i=1:100
% y(i)=fun(i);
% end
% 例:求 的newton迭代公式
% function ff=mysqrt(x)
% y0=1; %从1开始迭代
% y1=0.5*(y0+x/y0);
% while abs(y1-y0)>0.00001 %大于误差限
% y0=y1; %赋值运算
% y1=0.5*(y0+x/y0);
% end
2.4-Matlab编程
迭代公式
% 2.4
% 调用格式如下:一个这样的例子。定义一个函数f=100(y-x2)
% 2-(1-x)2
% function f=fun(x) x是二维向量,第一个分量是x(1)、第二个分量是x(2)
% f=100*(x(2)-x(1)^2)^2-(1-x(1))^2;
% 调用格式:
% x=[2 3]; f=fun(x)
% function [m,s]=f2(x) %输出的是2个or2个以上函数体,需要用[]括起来
% n=length(x);
% m=sum(x)/n;
% s=sqrt(sum((x-m).^2/n));
% end
% 调用格式:
% values=[12.7,45.4,98.9,26,6,53.1]; [ave,stdev]=f2(values)
% y=zeros(100,1); % 100行1列的空数组 所有元素取0
% for i=1:100
% y(i)=fun(i);
% end
% 例:求 的newton迭代公式
% function ff=mysqrt(x)
% y0=1; %从1开始迭代
% y1=0.5*(y0+x/y0);
% while abs(y1-y0)>0.00001 %大于误差限
% y0=y1; %赋值运算
% y1=0.5*(y0+x/y0);
% end
2.5-Lingo介绍(附:百度网盘链接)
Lingo11软件压缩包【链接:https://pan.baidu.com/s/192fs8vMTYX-DH2_ESr6qJA 提取码:zjxs】
本文使用的Lingo,是绿色软件,直接解压就可以使用了,不需要安装。
绿色软件,不需要注册,点击“Cancel”即可。
每次做灵敏度分析,都需要重新设定。
注册流程(绿色软件,不需要注册)
不需要注册,点击“Cancel”即可。
灵敏度分析(每次做灵敏度分析,都需要重新设定!)
model:
max=72*x1+64*x2;
[milk] x1+x2<60;
[time] 12*x1+8*x2<480;
[cpot] 3*x1<100;
end