MATLAB生物化工计算与模拟
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2 数学运算

MATLAB算术运算符“+”“−”“*”“/”“\”“^”“sqrt()”等,分别实现符号矩阵加、减、乘、右除、左除、求幂及开平方等运算,运算符 “.*”“./”“.\”“.^”分别实现符号数组元素与元素的运算。

在MATLAB中有几个常用的固定变量,它们代表着特殊的数值或意义。这样的变量有pi代表圆周率3.141 592 653…,ij代表复数单位sqrt(−1),inf代表无穷大1/0,NaN代表不定值0/0、0*∞、∞/∞等。

1.2.1 基础运算

【例1-2】① 计算120+60/5。在命令行窗口输入:

>>x=120+60/5

按Enter键,输出为:

x =
       132

② 计算54,并将其结果开平方。在命令行窗口输入:

>>5^4

按Enter键,输出为:

  ans =
         625

在命令行窗口输入:

>>sqrt(ans)

按Enter键,输出为:

  ans =
          25

③ 求sin(p/3)与i2。在命令行窗口输入:

>>sin(pi/3)

按Enter键,输出为:

  ans =
         0.8660

在命令行窗口输入:

>>I^2

按Enter键,输出为:

  ans =
         -1

④ 求。在命令行窗口输入:

>>sqrt(1+2*3^4)*sin(pi/4)

按Enter键,输出为:

  ans =
        9.0277

⑤ 求当x=1时多项式x3+11x2+55x+125的值。在命令行窗口输入:

>>p=[1 11 55 125];    
x=1; polyval(p,x)

按Enter键,输出为:

  ans =
         192

1.2.2 数组及运算

(1)创建数组

【例1-3】在命令行窗口输入:

>>clear all    
A=[]
B=[6 3 4 3 2 1]
C=[6,3,4,3,2,1] %与B相同
D=[6;3;4;3; 2;1] %将B转置 E=B’ %将B转置

按Enter键,输出为:

A =    
   []
B =
   6   3   4   3   2   1
C =
   6   3   4   3   2   1
D =
   6
   3
   4
   3
   2
   1
E =
   6
   3
   4
   3
   2 1

由此可见,创建一维数组就是将整个数组放在方括号里,行数组(row vector)元素用空格或逗号分隔,列数组(column vector)元素用分号分隔,标点符号一定要在英文状态下输入。

(2)访问数组

【例1-4】在命令行窗口输入:

>>clear all    
B=[6 3 4 3 2 1];
b1=B(1) %访问数组第1个元素
b2=B(1:3) %访问数组第1、第2、第3个元素
b3=B(3:end) %访问数组第3个到最后一个元素 b4=B([1 6]) %访问数组第1及第6个元素

按Enter键,输出为:

b1 =    
   6
b2 =
   6   3   4
b3 =
   4   3   2   1
b4 =  6   1

(3)用linspace函数创建一维数组

调用格式:x=linspace(a,b,n)

说明:创建行向量x,第1个元素为a,最后1个元素为b,形成总数为n个的等比数列。

【例1-5】在命令行窗口输入:

>>clear all    
format short %数据显示格式为短格式(默认显示格式)
A= linspace(1,24,12) B= linspace(1,24,2)

按Enter键,输出为:

A =    
 1至8列
  1.0000  3.0909  5.1818  7.2727  9.3636  11.4545  13.5455  15.6364
 9至12列
  17.7273  19.8182  21.9091  24.0000
B = 1  24

需要说明的是,在编辑代码的时候使用分号是为了不显示中间结果。若没有使用分号,则每一次运算的结果都会输出到命令行窗口。

(4)数组的算术运算

两个一维数组之间运算要求两个数组均为行数组(或均为列数组),并且数组元素个数相同。

【例1-6】数组加减法(+,−)。在命令行窗口输入:

>>clear all    
A=[1 7 6 8 7 6];
B=[9 75 6 7 4 0];
C=[1 1 1 1 1 1];
D=A+B;
E=A-B; F=A-C;

按Enter键,输出为:

D =    
  10  82  12  15  11   6
E =
  -8  -68   0   1   3   6
F = 0   6   5   7   6   5

【例1-7】数组乘法(.*)。在命令行窗口输入:

>>clear all    
A=[1 7 6 8 7 6]
B=[9 7 6 7 4 0]
C=A.*B %数组点乘
D=A.*3 %数组与常数相乘 E=A*3 %数组与常数相乘

按Enter键,输出为:

A =    
   1   7   6   8   7   6
B =
   9   7   6   7   4   0
C =
   9  49  36  56  28   0
D =
   3  21  18  24  21  18
E= 3  21  18  24  21  18

【例1-8】数组除法(右除./与左除.\)。在命令行窗口输入:

>>clear all    
A=[1 5 7 8 9 7]
B=[7 5 7 2 4 0]
C=A./B  %数组与数组右除
D= A.\B  %数组与数组左除
E=A./3  %数组与常数的除法 F=A/3  %数组与常数的除法

按Enter键,输出为:

A =    
   1   5   7   8   9   7
B =
   7   5   7   2   4   0
C =
  0.1429  1.0000  1.0000  4.0000  2.2500    Inf
D =
  7.0000  1.0000  1.0000  0.2500  0.4444     0
E =
  0.3333  1.6667  2.3333  2.6667  3.0000  2.3333
F = 0.3333  1.6667  2.3333  2.6667  3.0000  2.3333

【例1-9】数组乘方(.^)。在命令行窗口输入:

>> clear all    
A=[1 5 7 8 9 7]
B=[9 5 7 2 4 0]
C=A.^B %数组的乘方
D= A.^3 %数组A的三次方 E=3.^ A %常数3的数组的乘方

按Enter键,输出为:

A =    
   1   5   7   8   9   7
B =
   9   5   7   2   4   0
C =
   1   3125  823543   64   6561    1
D =
   1   125   343   512   729   343
E = 3   243   2187    6561  19683   2187

需要注意的是,在数组乘除和乘方运算时,小黑点不能遗漏,且为英文状态下输入。