数学建模国赛培训记录,主要使用软件为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、矩阵的输入

例如想要输入矩阵

可在命令行窗口输入:

>> [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的入门知识,但这点知识在数学建模上式明显不够用,也上不了台面的,在遇到同类问题时应该注意的是知识迁移与资料查阅引用,很多知识是可以现学现用的,但是基本操作是不可或缺的,祝备赛顺利!

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

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

  1. 安徽赛区2022数学建模国赛获奖名单

    安徽赛区2022数学建模国赛获奖名单如下: 本科生组 专科生组

  2. 【上海赛区】2022数学建模国赛获奖名单公布

    2022数学建模国赛上海赛区获奖名单新鲜出炉!

  3. 2022数学建模国赛ABC题思路

    2022年数学建模国赛ABC题思路 a题:添加链接描述 b题: 添加链接描述 c题: 基础版+进阶版 c题:进阶版 e题: 添加链接描述

  4. 2022数学建模国赛如何安排进度?川川学长精心讲解

    文章目录 时间起始时间 第一天(15号晚) 第二天(16号,任务繁重) 第三天(17号,任务繁重) 第四天(18号,20:00截至) 规划总结 禁忌(必看) 时间起始时间 2022年赛题于竞赛开始时为 ...

  5. 2022数学建模国赛B题思路分析

    分享一下,仅供参考借鉴,切勿直接使用!致谢一下全糖奶茶屋! 一.问题重述 1.1 问题背景 由于无人机集群在遂行编队飞行时, 应尽可能的避免外界干扰, 因此需要尽可能的保持电磁静默减少电磁波信号的发射 ...

  6. 2022数学建模国赛C题思路分析

    文章内容较多,大家仔细观看,所有内容仅供参考!大家不要直接照抄,切记,防止被查重!! 一.问题的重述 1.1 研究背景 玻璃的主要原料是石英砂,主要化学成分是二氧化硅(SiO2).煅烧过程中添加的助熔 ...

  7. 高教社杯2022数学建模国赛C题思路

    C 题 古代玻璃制品的成分分析与鉴别 注:题目阅读后主要告诉我们的内容见标蓝的关键词和每段后分析的内容. 丝绸之路是古代中西方文化交流的通道,其中玻璃是早期贸易往来的宝贵物证.早期的玻璃在西亚和埃及地 ...

  8. 2022数学建模国赛B题和C题高质量论文代码数据

    目录 B题论文 5.1 问题一的建模与求解 5.1.1 使用极坐标求解具体位置 C题论文 1.1 研究背景 1.2 问题的提 5.1 问题一的建模与求解 5.1.1 数据的预处理 B题论文 5.1 问 ...

  9. 2022数学建模国赛B题:无人机定位(国二分享)

    无人机集群在遂行编队飞行时,为避免外界干扰,应尽可能保持电磁静默,少向外发射电 磁波信号.为保持编队队形,拟采用纯方位无源定位的方法调整无人机的位置,即由编队中某 几架无人机发射信号.其余无人机被动接 ...

最新文章

  1. Swift学习------常量与变量
  2. 数据结构与算法(C++)– 队列(Queue)
  3. 《软件测试方法和技术》,《软件测试方法和技术》.ppt
  4. ARM中的RO、RW和ZI DATA
  5. 45-机器设计问题(深搜)
  6. axure日期选择器组件_vue干货分享,超过六种组件通信方法讲解和精髓归纳
  7. 科技公司如何占据了你的每一分钟?
  8. 在EditPlus中配置java快捷键
  9. matlab与焓湿图,excel与焓湿图的完美结合
  10. Twaver-HTML5基础学习(14)连线(Link)连线类型(直线、延伸直线、正交直线)
  11. 微信小助手插件WeChatTweak
  12. 缺省值及属性(Python)
  13. OpenCV基础应用20例
  14. 如何在Nintendo 64控制器上更换磨损的模拟棒
  15. java调用ocr识别api_Java文字识别软件-调用百度ocr实现文字识别
  16. MSFSR: 一种通过增强人脸边界精确表示人脸的多级人脸超分辨率算法(读书笔记)
  17. IDEA拉取Git代码问题
  18. 面向对象(OOP)与面向对象设计(OOD)
  19. 69个微信小程序常见问题
  20. hdu 4823 Energy Conversion(水题)

热门文章

  1. dlib 怎么安装vs2017_dlib库+vs2017详细配置流程
  2. 关于SQL优化的几点说明
  3. html制作玫瑰代码,玫瑰花小制作分享-JavaScript(七夕专属浪漫)
  4. 通过ajax刷新显示列表,使用阿贾克斯刷新列表消息
  5. 清理备用内存/关闭备用内存(备用内存占用过高且不自动释放)
  6. FP-growth算法通俗讲解
  7. Altera和Xilinx的参考设计资源
  8. 【C】二叉树--顺序结构(详解堆的实现,topK排序、堆排)、和链式结构(链式结构的遍历、链式结构常见递归操作以及练习题)
  9. Javaweb笔记之初识EasyUi框架
  10. python 用word模板自动生成报告