数学建模第一天:数学建模工具课之MATLAB的入门

      

目录

一、MATLAB的简介  

二、Matlab基础知识

1. 变量

①命名规则

②特殊变量名

2、数学符号与函数调用

①符号

②数学函数

③自定义函数

三、数组与矩阵

1、数组

①创建数组

②访问数组元素

③数组运算

2、矩阵

①定义

②特殊矩阵

③矩阵运算

四、控制流

1、for循环

2、while循环

3、if-else-end结构


一、MATLAB的简介  

        MATLAB作为线性系统的一种分析和仿真工具,是理工科大学生应该掌握的技术工具,它作为一种编程语言和可视化工具,可解决工程、科学计算和数学学科中许多问题。

        MATLAB建立在向量、数组和矩阵的基础上,使用方便,人机界面直观,输出结果可视化。

数学建模第一天:数学建模工具课之MATLAB的入门_第1张图片

二、Matlab基础知识

1. 变量

①命名规则

 MATLAB中变量的命名规则是:

(1)变量名必须是不含空格的单个词;

(2)变量名区分大小写;

(3)变量名最多不超过19个字符;

(4)变量名必须以字母打头,之后可以是任意字母、数字或下划线,但是变量名中不允许使用标点符号。

②特殊变量名

特殊变量 取值
ans 用于结果的缺省变量名
pi 圆周率3.1415926……
eps 计算机的最小数,学过补码的同学应该知道,它与1相加可以产生一个很大的数
flops 浮点运算数
inf 无穷大,例如1/0
NaN 不定量,如0/0
i,j 虚数
nargin 所用函数的输入变量数目
margout 所用函数的输出变量数目
realmin 最小可用正实数
realmax 最大可用正实数

2、数学符号与函数调用

①符号

符号 运算规则
+    - 加减
*     / 乘除
.*    ./ 点乘点除
\wedge    .\wedge 乘幂与点乘幂
\ 左除
% 其后内容均为注释
续行
, 命令后为逗号,显示结果
; 命令后为分号,不显示结果

②数学函数

函数 作用 函数 作用
sin(x) 正弦函数 asin(x) 反正弦函数
cos(x) 余弦函数 acos(x) 反余弦函数
tan(x) 正切函数 atan(x) 反正切函数
abs(x) 绝对值函数 sum(x) 求和函数
min(x) 取最小值函数 max(x) 取最大值函数
sqrt(x) 求根函数 exp(x) 指数函数
log(x) 对数函数 log10(x) 特殊对数函数
sign(x) 符号函数 fix(x) 取整函数

③自定义函数

        MATLAB自定义新函数,此类函数文件的文件名必须为后缀为m的文件,这类文件的第一行必须是一特殊字符function开始,格式为:        

        function    因变量名=函数名(自变量名)

        调用方式为函数名(参数),我们举个例子,定义函数f=(x_{2}-x_{1}^{2})^{2}+(1-x_{1})^{2}。建立后缀名为m的文件fun.m,内容为:

function   f=fun(x)
f=100*(x(2)-x(1)^2)^2+(1-x(1))^2

        可以直接使用函数fun.m,例如:计算 f(1,2), 只需在MATLAB命令窗口键入命令:

x=[1 2] 
fun(x)

数学建模第一天:数学建模工具课之MATLAB的入门_第2张图片

三、数组与矩阵

1、数组

①创建数组

代码 作用
x=[a  b  c  d  e  f] 创建包含指定元素的行向量
x=[a ;b ;c ;d ;e ;f] 创建包含指定元素的列向量
x=first:last    创建从first开始,加1计数,到last结束的行向量
x=first:increment:last   创建从first开始,加increment计数,到last结束的行向量
x=linspace(first,last,n) 创建从first开始,到last结束,有n个元素的行向量
x=logspace(first,last,n) 创建从first开始,到last结束,有n个元素的对数分隔行向量

列向量的知识我们放到“矩阵”模块中来讲。

②访问数组元素

(1)访问一个元素:x(i)表示访问数组x的第i个元素

(2)访问一块元素:x(a :b :c)表示访问数组x的第a个元素开始,以步长b到第c个元素(但不超过c),b可以为负数,b缺省时为1

(3)直接使用元素编址序号:x([a  b  c  d]) 表示提取数组x的第a、b、c、d个元素构成一个新的数组 [x(a) x(b) x(c) x(d)]

③数组运算

(1)转置

例如  x=[a  b  c  d  e  f]    y=x′,那么y=[a;b;c;d;e;f]

(2)与一个标量的加、减、乘、除和平方运算

a=[1 2 3 4]
c=2
a1=a+c  %得到[a1+c,a2+c,…,an+c]
a2=a*c  %得到[a1*c,a2*c,…,an*c]
a3=a./c %得到[a1/c,a2/c,…,an/c](右除)
a4=a.\c %得到[c/a1,c/a2,…,c/an](左除)
a5=a.^c %得到[a1^c,a2^c,…,an^c]
a6=c.^a %得到[c^a1,c^a2,…,c^an]

(3)数组-数组运算

        运算规则:当两个数组有相同维数时,加、减、乘、除、幂运算可按元素对元素方式进行,不同大小或维数的数组是不能进行运算的

a=[2 2 2]
b=[3 3 3]
c1=a+b    %得到[5 5 5]
c2=a.*b   %得到[6 6 6]
c3=a./b   %得到[0.6667 0.6667 0.6667]
c4=a.\b   %得到[1.5000 1.5000 1.5000]
c5=a.^b   %得到[8 8 8]

2、矩阵

①定义

        逗号或空格用于分隔某一行的元素,分号用于区分不同的行。当然啦,除了使用分号,也可以在输入矩阵时,按Enter键也表示开始新一行。但是输入矩阵时,严格要求所有行有相同的列。          例如输入代码m=[1 2 3 4 ;5 6 7 8;9 10 11 12],代表的矩阵为:\begin{pmatrix} 1 & 2 & 3 & 4\\ 5 & 6& 7 &8 \\ 9 &10 &11 & 12 \end{pmatrix}

②特殊矩阵

a=ones(m,n)  :   产生一个m行n列的元素全为1的矩阵

b=zeros(m,n)  : 产生一个m行n列的零矩阵

c=eye(m,n)   : 产生一个m行n列的“单位矩阵”,不够的删掉

d=[  ]                   :产生一个空矩阵

③矩阵运算

运算 作用

A+B

矩阵加法
A*B 矩阵乘法
det(A) 求矩阵行列式
inv(A) 求矩阵的逆
[V,D]=eig[A] 求矩阵特征值与特征向量

四、控制流

        学过C语言或者Python的同学学这一部分就比较容易啦,唯一的不同点在for循环中,if循环与while循环与C语言大同小异

1、for循环

格式:

 for  x=array
          {commands}
        end

x=array代表的不是循环的次数,而是commands中某参数的值。例如:

for n=1:10
   x(n)=sin(n*pi/10);
end

代表的是对n=1、2 、3……10,函数x(n)=sin\frac{n\pi }{10}的值分别为多少

2、while循环

格式:

     while  (expression)
                   {commands}
              end

        while与for循环以固定次数求一组命令相反,while循环以不定的次数求一组语句的值,这一点与C语言极其相似(除了多了一个end)。

3、if-else-end结构

格式1:

if  (expression)
        {commands}
    end

格式2:

if   (expression1)
                 {commands1}
   else  if  (expression2)
                   {commands2} 
   else if  (expression3)
                        {commands3} 
   else if  ……
   …………………………………
   else
{commands} 
end
end
end
……
          end

        if循环与C语言也特别像,要特别关注end的位置,不要放错哦!

        我们举一个小小的例子:用matlab编程f(x)=\left\{\begin{matrix} x^{2}+8 &x>1 \\ (x-3)^{3} & x\leq 1 \end{matrix}\right.,并算出f(-5)       

function f=funif(x)
if x>1
   f=x^2+8
else if x<=1
      f=(x-3)^3
    end

end

数学建模第一天:数学建模工具课之MATLAB的入门_第3张图片

        好的,本期的数学建模的先导课之matlab学习就到此结束啦!编辑不易,希望对本篇文章感兴趣的小伙伴给小编一个免费的小心心好吗?谢谢大家啦!

你可能感兴趣的:(数学建模两周速成,matlab,线性代数,矩阵)