数学建模基础(Ⅰ)

MATLAB(矩阵实验室)是MATrix LABoratory的缩写,是一款由美国The
MathWorks公司出品的商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C、C++、Java、Python和FORTRAN)编写的程序。
尽管MATLAB主要用于数值运算,但利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和分析等。另外还有一个配套软件包Simulink,提供一个可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。

From Wikipedia

另外,Matlab在上世纪七十年代前由Fortran编写,后来用C改写。


根据所用参考书将学习分为三部分,数值计算、符号计算、图形可视化。

向量与矩阵运算
符号计算
MATLAB绘图


向量与矩阵运算

MATLAB的是主要数据对象是矩阵,标量、行向量、列向量都是它的特例,最基本的功能是矩阵运算。

一、向量及其运算

向量生成有直接输入向量、冒号生成向量、线性等分生成向量等方法。
直接输入向量,使用逗号或空格分割元素生成行向量,使用分号或回车分割向量元素生成列向量,这里注意行向量维度需要一致,列向量维度需要一致,否则报错。

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

ans =
     1     2     3
     4     5     6
     7     8     9

冒号生成向量,格式为x1:x2:x3,x1为初始值,x2为步长、x3为终止值,x2缺省为1。

>> [3:-1:1;6:-2:2;9:-3:3]

ans =
     3     2     1
     6     4     2
     9     6     3

线性等分生成向量,使用线性等分函数linspace,格式为y=linspace(x1,x2,n),x1表示起始值,x2表示终止值,n表示产生n维向量。与上方法相同,生成的向量都是行向量,如需列向量使用’转置即可。

>> [linspace(1,3,3)' linspace(1,3,3)' linspace(1,3,3)']

ans =
     1     1     1
     2     2     2
     3     3     3

向量运算这里介绍向量的代数运算、群运算、点积叉积混合积等运算。
向量的代数运算包括和差、数乘、平移,设x=[x1 x2 x3],y=[y1 y2 y3],a,b。
和差x±y=[x1±y1 x2±y2 x3±y3],数乘a*x=[a*x1 a*x2 a*x3],平移x+b=[x1+b x2+b x3+b]。

>> x=[1 3 5];y=[2 4 6];
>> x+y,x-y,2*x,x+3

ans =
     3     7    11

ans =
    -1    -1    -1

ans =
     2     6    10

ans =
     4     6     8

群运算,包括向量间的乘法、除法、乘幂等运算。设x=[x1 x2 x3],y=[y1 y2 y3]。
元素群乘法x.*y=[x1*y1 x2*y2 x3*y3],元素群右除x./y=[x1/y1 x2/y2 x3/y3],元素群左除x.\y=[y1/x1 y2/x2 y3/x3],
元素群乘幂x.^5=[x1^5 x2^5 x3^5],元素群乘幂7.^x=[7^x1 7^x2 7^x3],元素群乘幂x.^y=[x1^y1 x2^y2 x3^y3]。

>> x=[1 2 3];y=[4 5 6];
>> x.*y,x./y,x.\y,x.^5,7.^x,x.^y

ans =
     4    10    18

ans =
    0.2500    0.4000    0.5000

ans =
    4.0000    2.5000    2.0000

ans =
     1    32   243

ans =
     7    49   343

ans =
     1    32   729

点积叉积混合积运算,点积(内积)MATLAB中有函数dot(a,b),叉积(外积)MATLAB中则有函数cross(a,b),混合积即可由两个函数共同实现,这里对点乘和叉乘运算进行简要解释扩展。

向量的点乘,也叫向量的数量积、内积、点积、无向积等,对两个向量执行点乘运算,就是对这两个向量对应位一一相乘之后求和的操作,点乘的结果是一个标量。
数量积的几何意义是表示在b向量在a向量方向上的投影与a模长的乘积,也可以用来计算两向量夹角等。a·b = |a|*|b|*cosθ
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
向量的叉乘,又叫向量的向量积、外积、叉积、有向积等,叉乘的运算结果是一个向量。并且两个向量的向量积与这两个向量组成的坐标平面垂直。
在三维几何中,向量a和向量b的向量积结果是法向量,则可以通过两个向量的向量积,生成第三维,从而构建XYZ坐标系。在二维空间中,向量积的几何意义是:axb等于由向量a和向量b构成的平行四边形的面积。a∧b = |a|*|b|*sinθ
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
From -牧野-
原文中不准确和冗余之处已纠正。

向量的内外积是线性代数的内容,不过已经全部忘光了,身为计算机科学系的学生十分惭愧,这里再做一点补充。
数量积在物理中可以通过W=F·s=|F||s|cosθ理解,力对物体做的功=力在运动方向上的分量对物体做的功。
向量积在物理中可以通过M=r×F=|r||F|sinθ理解,也就是一个力对一个定点的矩,当F与向径r不垂直时,二者有个夹角θ。
另外a∧b的方向:与这两个向量所在平面垂直,且遵守右手定则。(若坐标系是满足右手定则的,当右手的四指从a以不超过180度的转角转向b时,竖起的大拇指指向是c的方向。c=a∧b)
下面是计算演示。

>> x=[1 2 3];y=[3 4 5];
>> dot(x,y), cross(x,y), dot(x,cross(y,cross(x,y)))

ans =
    26

ans =
    -2     4    -2

ans =
    24
二、矩阵及其运算

矩阵生成有直接输入矩阵、M文件输入矩阵、函数生成矩阵等方法。
直接输入矩阵,规模小时非常实用,矩阵用[]标识,行内用逗号或空格分割元素,行与行之间用分号或回车分割,矩阵元素也可以写为运算表达式。

>> [1,2,3;exp(1),7/6,abs(-2.8)]

ans =
    1.0000    2.0000    3.0000
    2.7183    1.1667    2.8000

M文件输入矩阵,M文件是一种可以在MATLAB系统中运行的文本文件,它可以分为命令式文件和函数式文件,主要使用命令式的M文件创建矩阵。
这里对M文件也进行补充扩展。
MATLAB涉及的文件类型有.m .mat .asv .fig .xml .sxl等许多种,MATLAB提供了程序设计功能,即对应以.m为扩展名的文件,简称M文件。M文件有两种形式:命令式文件(Script)和函数式文件(Function)。
命令式文件就是命令行的简单叠加,这样就解决了用户在命令窗中输入许多命令的麻烦,也避免了重复性工作。无输入参数和返回,生成的变量均为全局变量,通过clear等命令可以清除。
函数式文件主要解决参数传递和函数调用问题,首行必须用function标识,可以有输入参数和返回值,过程中生成的变量会在调用结束后被销毁。

Basis_3.m
aa=[1,2,3;4,5,6;7,8,9]
>> Basis_3

aa =
     1     2     3
     4     5     6
     7     8     9

函数生成矩阵,有ones(全1阵)、zeros(全0阵)、eye(单位阵)、rand(均匀分布随机阵)等特殊矩阵。直接演示。

Basis_4.m
a=[1,2,3;4,5,6;7,8,9];
b=ones(2,3);
c=ones(size(a));
d=zeros(3,2);
e=eye(3);
f=rand(3,3);
>> Basis_4
>> a,b,c,d,e,f,g

a =
     1     2     3
     4     5     6
     7     8     9

b =
     1     1     1
     1     1     1

c =
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值