2022数学建模国赛备赛阶段性记录(1-1)

article/2025/9/16 16:02:14

       数学建模国赛培训记录,主要使用软件为MATLAB,主要内容为在数学建模竞赛中常用的操作、数学与模型以及部分练习题的解析。

一、常规操作

1、基本运算

MATLAB内四则运算相当于计算机的加减乘除,对应输入数字、运算符,回车即可得出结果。例如:在命令行窗口直接输入:

1+2

回车可得到结果为:3

总体为:

>> 1+2ans =3

也可以进行相关的赋值操作,再进行运算,例如:


>> a=1;b=3;
c=a+b,d=a-b,e=a*b,f=a/b,g=b^a

回车可得到结果依次为:c=4,d=-2,e=3,f=0.3333,g=3。

(注:在MATLAB中分号“;”的使用不影响运算,但不显示该行运算结果)

2、函数的运用

        MATLAB内含有很多种函数包,从基本运算到各类操作均有涵盖,此处展示部分基本运算的函数,其余函数需要使用可自行查阅使用。

>> x=pi/4i=sin(x)j=sqrt(x)

       以上为圆周率π、sin、开方的函数,回车即可得出结果,其余函数的使用大致方法相似,可自行查阅。

3、数组(向量)的输入

向量的输入可以有以下几种操作:

 k=[1,2,3]l=1:2:10  %1为首项,10为末项,公差为2(步长增长)m=linspace(1,10,20)  %首项末项之间平均生成20个数

即:直接输入、按照步长增长生成、使用均分计算函数生成

均分计算函数的用法:x=linspace(x1, x2, N)

功能:linspace(x1, x2, N)生成一个数组,首项为x1,末项为x2之间平均生成N个数

以上运算结果为:

k =1     2     3l =1     3     5     7     9m =列 1 至 81.0000    1.4737    1.9474    2.4211    2.8947    3.3684    3.8421    4.3158列 9 至 164.7895    5.2632    5.7368    6.2105    6.6842    7.1579    7.6316    8.1053列 17 至 208.5789    9.0526    9.5263   10.0000

4、矩阵的输入

例如想要输入矩阵

                                                               \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix}\quad

可在命令行窗口输入:

>> [1 2 3;4 5 6;7 8 9]
>> [1,2,3;4,5,6;7,8,9]
>> [1 2 34 5 67 8 9]

 以上为三种输入方式,均可得到相同的矩阵,按照各自喜好进行输入即可。

5、数组(向量)的相关运算

以下两数组(向量):

x=1     3     5     7     9

y=1.0000    3.2500    5.5000    7.7500   10.0000

相加:

>> x+yans =2.0000    6.2500   10.5000   14.7500   19.0000

相减:

>> x-yans =0   -0.2500   -0.5000   -0.7500   -1.0000

相加、相减即对应项相加、相减并依次输出即为最终结果。

(注:数组长度像等才可以相加减,否则会报错)

相乘:

>> x.*yans =1.0000    9.7500   27.5000   54.2500   90.0000

 此处相乘指的是点乘,对应项相乘,在传统的向量点乘中则是各项相乘再求和即:

传统向量点乘为:


>> z=x.*yz =1.0000    9.7500   27.5000   54.2500   90.0000>> sum(z)ans =182.5000

 其他操作:

>> x+2ans =3     5     7     9    11

各项分别加2,再输出即为所得结果。

>> x.^2ans =1     9    25    49    81

对应各项分别平方。

(注:^和.^是有区别的,^是以矩阵为操作数的乘方,相当于A*A,此时要求矩阵A为方阵;.^是以矩阵中的每个元素为操作数的乘方)

6、矩阵的相关运算

以矩阵A、B为例,A=[1 2 3;4 5 6;7 8 9];B=[1 1 1; 2 2 2;3 3 3],

相加:

>> A+Bans =2     3     46     7     810    11    12

相减:

>> A-Bans =0     1     22     3     44     5     6

矩阵的相加减即对应项的相加减,这就要求矩阵的维度必须相同才能进行相加减。

矩阵相乘:

点乘

>> A.*Bans =1     2     38    10    1221    24    27

星号乘

>> A*Bans =14    14    1432    32    3250    50    50

点乘为对应项相乘,星号乘即为线性代数中的矩阵相乘,对两矩阵的维度有一定的要求。

幂计算

>> A^2ans =30    36    4266    81    96102   126   150>> A.^2ans =1     4     916    25    3649    64    81

注意辨析^和.^,两个符号下所得的计算结果是不一样的。

(注:^和.^是有区别的,^是以矩阵为操作数的乘方,相当于A*A,此时要求矩阵A为方阵;.^是以矩阵中的每个元素为操作数的乘方)

7、矩阵、数组(向量)的相关操作

以矩阵A=[1 2 3;4 5 6;7 8 9]、数组x=1:2:10为例,进行相关操作

矩阵特定数值提取:

a1=A(2,2) %提取某一行某一列的特定数据
a2=A(2,:)  %提取某一行
a3=A(:,1)  %提取某一列
a4=A(:,1:2)  %选择两列
a5=A(:,[1,3]) %选择1、3两列
a6=A([1,3],:) %选择1、3两行
a7=A([2,3],[2,3])  %提出矩阵的一部分2、3行、2、3列

以上分别为提取单个特定数据、提取单行、提取单列、选择两个连续列、选择两个特定列、选择两个特定行、提取矩阵某一分块,较大矩阵以此类推即可。

矩阵特定数据赋值:

 A(3,2)=0  %3行2列数据赋值为0A(:,1)=0  %第1列数据赋值为0A(2,:)=0  %第2行数据赋值为0A(:,1)=[]  %清除第1列A(1,:)=[]  %清除第1行

以上分别为单个特定数据赋值、某一列赋值、某一行赋值、清除某一列、清除某一行,在进行其他较大数据时可依此类推进行操作。

相关计算:

 b1=length(x)b2=max(x)b3=min(x)b4=length(A)b5=size(A)  %针对行、列求其长度b6=max(A)  %矩阵内每一列的最大值b7=min(A)  %矩阵内每一列的最小值b8=max(max(A))  %矩阵的最大值

以上为数组、矩阵相关最值的求法,其中b8为矩阵中所有元素的最大值,在其他大型矩阵中用法相同,照例使用即可。

二、M文件的使用

M文件可以根据调用方式的不同分为两类:命令文件(Script File)和函数文件(Function File)。

命令文件(Script File)

命令文件就是脚本文件,由一系列的MATLAB指令和命令组成的纯文本格式的M文件,执行脚本文件时,文件中的指令或者命令按照出现在脚本文件中的顺序依次执行。脚本文件没有输入参数,也没有输出参数,脚本文件处理的数据或者变量必须在MATLAB的公共工作空间中。

例1:建立脚本文件计算10!

clear,clc
A=1
for i=1:10A=A*i;
end
A

输出结果为:

A =3628800

函数文件(Function File)

函数文件可以包含输入变量,并把结果传送给输出变量,函数文件是在脚本文件的基础之上多添加了一行函数定义行,常用于扩充MATLAB函数库、可以包含输入、输出变量、运算中生成的所有变量都存放在函数工作空间、包含函数声明行。

例2:建立一个函数文件,定义阶乘函数,然后在命令窗口计算10!

function A=jiecheng(n)
A=1;
for k=1:nA=A*k;
end

计算10!,结果为:

>> A=jiecheng(10)A =3628800

三、利用MATLAB作图

图像是结果的一种可视化表现,它能直观的体现你的结果,并且能体现你获得结果的准确性,在当前的大数据时代,在做数据分析的时候,将其可视化可以直观多维的展示数据,可以让人们更好的发现并且记住数据的特征,因此很多时候掌握一些绘图方法是非常重要的,而使用MATLAB可以非常简单的进行绘图,以下为简单的作图命令及代码。

直接上例题:

例3:在同一个坐标系内,做出函数y1=sinx,y2=x,y3=x-x^3/3!,y4=x-x^3/3!+x^5/5!,y5=x-x^3/3!+x^5/5!-x^7/7!的图像,并标注图像名称。

clear,clc
x=-2*pi:0.01:2*pi;
y1=sin(x);
y2=x
y3=x-(x.^3)/factorial(3);
y4=x-(x.^3)/factorial(3)+(x.^5)/factorial(5);
y5=x-(x.^3)/factorial(3)+(x.^5)/factorial(5)-(x.^7)/factorial(7);
plot(x,y1,x,y2,x,y3,x,y4,x,y5);  %plot函数绘图
title('函数图像');  %显示图像标题
text(0.2,0.8,'y1=sinx');  %在点(0.2,0.8)处标注显示y1=sinx
legend('y1','y2','y3','y4','y5');  %给出y1,y2,y3,y4,y5的图例

输出图像为:

例2:在同一个图像幕布内,按照2*3做出函数y=sinx,y1=x,y2=x-x^3/3!,y3=x-x^3/3!+x^5/5!,y4=x-x^3/3!+x^5/5!-x^7/7!,y5=x-x^3/3!+x^5/5!-x^7/7!+x^9/9!的图像,并标注图像名称。

clear,clc
x=-2*pi:0.01:2*pi;
y1=sin(x);
y2=x
y3=x-(x.^3)/factorial(3);
y4=x-(x.^3)/factorial(3)+(x.^5)/factorial(5);
y5=x-(x.^3)/factorial(3)+(x.^5)/factorial(5)-(x.^7)/factorial(7);
y6=x-(x.^3)/factorial(3)+(x.^5)/factorial(5)-(x.^7)/factorial(7)+(x.^9)/factorial(9);
subplot(2,3,1),plot(x,y1),title('y1')  %定义为2行3列中的第1幅图,标题为y1
subplot(2,3,2),plot(x,y2),title('y2')  %定义为2行3列中的第2幅图,标题为y2
subplot(2,3,3),plot(x,y3),title('y3')  %定义为2行3列中的第3幅图,标题为y3
subplot(2,3,4),plot(x,y4),title('y4')  %定义为2行3列中的第4幅图,标题为y4
subplot(2,3,5),plot(x,y4),title('y5')  %定义为2行3列中的第5幅图,标题为y5
subplot(2,3,6),plot(x,y4),title('y6')  %定义为2行3列中的第6幅图,标题为y6

 输出图像为:

       以上为(1-1)的所有内容,其中主要包含了在数学建模期间所遇到的数据处理的一些基本操作,如:数据的提取、数据赋值、数据变换,另外就是利用MATLAB进行一些基本的图像绘制,主要是图像对比上可以利用多个图像在同一画面展示从而便于比对,同时学会图表标题设置,图像标注等问题。总的来说,以上涉及的操作只需从头到尾操作一次还是比较容易掌握的,算是MATLAB的入门知识,但这点知识在数学建模上式明显不够用,也上不了台面的,在遇到同类问题时应该注意的是知识迁移与资料查阅引用,很多知识是可以现学现用的,但是基本操作是不可或缺的,祝备赛顺利!

 (才疏学浅,如有不恰当之处还请批评指正)


http://chatgpt.dhexx.cn/article/ywTVdhGs.shtml

相关文章

Matlab与数学建模

一、学习目标。 (1)了解Matlab与数学建模竞赛的关系。 (2)掌握Matlab数学建模的第一个小实例—评估股票价值与风险。 (3)掌握Matlab数学建模的回归算法。 二、实例演练。 1、谈谈你对Matlab与数学建模竞赛的了解。 Matlab在数学建模中使用广泛:MATLAB 是公认的最优秀的数…

MATLAB在数学建模中的应用

MATLAB在数学建模中的应用 一.预备知识 1.1.关于MATLAB软件 由于科学技术及计算机的飞速发展,各类数学软件不断涌现,这使在解决各类复杂的问题变得非常简单。常用的数学软件有Mathematica、MATLAB、SAS等软件。MATLAB是“Matrix Laboratory"的缩写&#xff…

数学建模——matlab基本使用

一:命令窗口两个常用基本命令 清除工作区:clear。清屏:clc。 二:变量与基本运算 圆周率表示:pi。lnx代码化:log(x)。e^x代码化:exp(x) x代表次数。sin(x):sin(x);cos(x):cos(x);tan(x):tan(x…

MATLAB数学建模-规划模型总结| MATLAB求解

目录 1 线性规划问题(LP) 风格1 风格2 2 非线性规划 3 动态规划 A星算法 基于dijkstra的概率路线图 4 多目标规划 帕累托最优 支配(Dominace) 不可支配解集 帕累托最优解集 帕累托最优前沿面 线性加权法 约束转化法…

MATLAB--数学建模作图大全及代码说明

目录 1、二维曲线 2、二维渐变图 3、二维散点图 4、条形图 5、填充图 6、多Y轴图 7、三维曲线图 8、三维散点图 9、三维伪彩图 10、裁剪伪彩图 11、等高线图 12、三维等高线图 13、等高线填充图 14、三维矢量场图 15、伪彩图投影图 16、热图 17、分子模型图 1…

如何查询Opencv的版本

环境:Win10 方法: 参考文章上写的很详细,在这里重新编辑一下,保存下来: 1、找到OpenCV的安装主文件夹,在主文件夹中找到“build”文件夹。 2、进入build文件夹以后,在文件夹中找到名为“Ope…

Linux查看opencv 版本

命令如下: [plain] view plain copy print ? pkg-config --modversion opencv 库文件一般放在: /usr/local/lib (PS,系统装的OpenCV版本太多,查找也让人头疼) 头文件一般在: /usr/local/inc…

ubuntu系统下如何查看opencv版本

打开终端,在终端输入: pkg-config --modversion opencv 可以看出,我安装的是opencv 2.4.13版本的。

在pycharm中查看opencv版本

import cv2 print(cv2.__version__)运行后如下图为自己各自安装的版本:

linux下查看opencv版本

直接使用命令 pkg-config --modversion opencv

opencv查看版本路径

1、查看ubuntu下的OpenCV安装版本: pkg-config opencv --modversion 2、查看ubuntu的opencv安装路径: sudo find / -iname "*opencv*" 在全盘上不区分大小写,搜索带有关键字opencv的所有文件及文件夹都会输出到终端,如…

Windows查看OpenCV版本

打开命令提示符 winr 键打开运行窗口,输入cmd,即可看到弹出的命令提示符窗口输入指令 python import cv2 cv2.__version__得到结果

http 请求 返回状态码 405 的问题

状态码为405表示请求的方式不对, 请求的方式有get、post、head、put…… 常用的为post和get。 代码里面我刚刚开始的时候使用的是HttpPost发的请求,另外一边呢,刚刚开始的时候只有一个get请求在那等着呢。 等我看到405之后,哦&…

HTTP状态 405 - 方法不允许

错误描述: HTTP状态 405 - 方法不允许 类型 状态报告 消息 Request method ‘GET’ not supported 描述 请求行中接收的方法由源服务器知道,但目标资源不支持 此时的原因是请求类型错误,网页是get请求,但是实际上是post请求 解…

HTTP 405 Method Not Allowed问题的解决

项目中在提交表单时,提示“HTTP 405”错误——“Method Not Allowed” 这里显示的是,方法不被允许。也许经验丰富的开发人员一眼就明了当前的问题。 从字面上的意思理解,很显然是提交方法的类型错误,要么是以GET方式向POST接口提…

http请求返回405 (Method Not Allowed)

一、问题描述 使用post请求json文件中的数据时,返回报错405(Method Not Allowed) 二、解决方法 由post请求改为get请求,请求静态资源时用get请求; 原因: 使用post请求并且发送的URL是一个具体的资源的时候例如JSON文件, 网站解…

http 301、302、304、400、405、415状态码解释

301 moved permanently、302 found、303 see other 301/302/303都表示重定向,所以放在一起讲解。 301表示永久重定向(301 moved permanently),表示请求的资源分配了新url,以后应使用新url。 302表示临时性重定向&am…

http 请求405 错误

问题 postman模拟请求springboot项目,显示台报错 详细问题 解决 由于springboot接口要求以post方式发送请求 对于postman模拟请求应当以post方式发送 原因 405错误表示方法不允许, 多数情况下, 405错误是由于GET,POST,DELETE,PUT等方法…

页面http 405错误排查

问题: 这两天pre环境前端发版后,pre就访问不到了,页面会报405错误 分析 HTTP 错误 405 405 不允许此方法 一般是方法是GET你用POST请求了 对于请求所标识的资源,不允许使用请求行中所指定的方法。请确保为所请求的资源设置了正确的…

Http405错误,方法类型也没有错,解决办法

405错误不一定是GET,POST,DELETE,PUT等方法类型不一致才可能导致的,也可能是URL的问题。 比如我的URL为http://localhost:8080/authority/list.action 由于web.xml设置了*.action的后缀过滤,这时如果我用SpringMVC的RequestMapping再去匹配这个action后缀…