概述
MATLAB 强大的数值计算功能是使其在众多数学软件中傲视群雄的决定性因素,也是 MATLAB 软件的基础。MATLAB 以矩阵为基本运算单元,而构成数值矩阵的基本单元是数字。
一、数字运算功能
1. 基本的算术运算
在 MATLAB 中,一般代数表达式的输入就如同在纸上进行演算一样。
| 运算类型 | 运算符/函数 |
|---|---|
| 加法 |
+ |
| 减法 |
- |
| 乘法 |
* |
| 除法 |
/ |
| 乘方 |
^ |
| 开方 |
sqrt |
运算符优先级(从高到低):
-
^、sqrt(最高) -
*、/ -
+、-(最低)
常驻变量:
| 变量 | 含义 |
|---|---|
pi |
圆周率 π |
i、j |
虚数单位 sqrt(-1) |
inf |
无穷大 |
NaN |
不定值(如 0/0) |
MATLAB 的输入格式完全继承了 C 语言的风格和规则。
2. 向量及其运算
向量输入方式
-
行向量:元素用方括号
[]括起来,元素之间用空格或逗号分隔 -
列向量:元素之间用分号分隔
row_vec = [1 2 3 4] % 行向量 col_vec = [1;2;3;4] % 列向量
利用冒号表达式生成向量
x = x0 : step : xn
向量与数的运算
-
加减运算:先将数字扩展成同维向量(每个元素等于该数字),再进行运算
-
数乘:将向量的每个元素都乘以该数字
向量运算函数
| 运算 | 函数 | 示例 |
|---|---|---|
| 点积 |
dot(A, B) |
计算向量内积 |
| 叉积 |
cross(A, B) |
计算向量外积 |
| 混合积 |
dot(A, cross(B, C)) |
计算三个向量的混合积 |
3. 矩阵及其运算
基本运算
| 运算 | 运算符 |
|---|---|
| 加法 |
+ |
| 减法 |
- |
| 乘法 |
* |
| 左除 |
\ |
| 右除 |
/ |
矩阵与常数的运算
矩阵的每个元素与此常数进行加减乘除运算。注意:进行数除时,常数只能作除数。
A = [1 2; 3 4]; B = A * 2; % 每个元素乘以2 C = A + 5; % 每个元素加5
矩阵运算函数
| 运算 | 函数 |
|---|---|
| 逆运算 |
inv(A) |
| 行列式运算 |
det(A) |
4. 数组及其计算
| 运算类型 | 运算符 | 说明 |
|---|---|---|
| 加减法 |
+、- |
与矩阵加减法一致 |
| 数组乘法 |
.* |
两同维数组对应元素相乘 |
| 数组除法 |
./ 或 .\ |
两同维数组对应元素相除 |
矩阵的加减法与数组的加减法是一致的,但乘除法有本质区别。
5. 多项式及其运算
MATLAB 以向量形式储存多项式,将向量元素按降幂顺序分配各系数值。
示例
P = [1 -5 6 -45]; % 表示多项式 x³ - 5x² + 6x - 45 poly2sym(P) % 转换为符号表达式
多项式运算函数
| 函数 | 功能 |
|---|---|
polyval |
求多项式在给定点的值 |
polyvalm |
求多项式在矩阵参数下的值 |
roots |
求多项式的根 |
二、符号运算功能
1. 符号函数的运算
字符串与符号表达式的特点
-
字符串用单引号设定输入或赋值
-
字符串的每个字符(包括空格)都是矩阵相应的一个元素
-
字符串和字符数组(或矩阵)基本等价
符号表达式的生成方式
方式一:直接创建
f = 'log(x)';
方式二:使用 syms 命令
syms x f = sin(x) + cos(x)
创建符号方程
equation = 'a*x^2 + b*x + c = 0'
符号与数值之间的转换
| 函数 | 功能 |
|---|---|
digits(D) |
设置有效数字个数为 D |
vpa(s) |
返回符号表达式在 digits 设置下的数值解 |
subs |
符号替换 |
numeric |
转换为数值 |
2. 符号矩阵的运算
创立符号矩阵:使用 sym 函数,矩阵元素可以是任何不带等号的符号表达式,各符号表达式的长度可以不同,矩阵元素之间可用空格或逗号分隔。
syms a b c d A = sym([a b; c d])
注意:数值矩阵不能直接参与符号运算,必须先转化为符号矩阵。
符号矩阵的基本运算与数值矩阵的运算格式相同。
3. 符号方程求解
| 问题类型 | 函数 | 说明 |
|---|---|---|
| 线性方程组解析解 |
linsolve、solve |
得到精确解,可用 vpa 转为浮点解 |
| 非线性方程解析解 |
fsolve |
求解非线性方程 |
| 微分方程解析解 |
dsolve |
求解微分方程 |
4. 符号函数的二维图
| 函数 | 功能 | 默认范围 |
|---|---|---|
ezplot(f) |
简易绘图函数 f 为单变量的字符串或符号表达式 | x ∈ [-2π, 2π] |
fplot(fun, lims) |
绘制函数图,fun 为字符串函数名,lims = [xmin xmax] | 用户指定 |
三、MATLAB 图形功能
MATLAB 的图形工具箱从简单的点、线、面处理发展到集各种功能于一体的强大功能包,包括:
-
二维图形
-
三维图形
-
四维表现图
-
图形着色
-
消隐处理
-
光线效果
-
渲染
-
多视角处理
四、MATLAB 程序设计
MATLAB 不仅能以人机交互式的命令行指令操作方式工作,还能像其他高级计算机语言一样进行控制流的程序设计,即编制以 .m 为扩展名的 M 文件。
M 文件类型
| 类型 | 特点 |
|---|---|
| 脚本文件(Script) | 一系列命令的集合,共享工作空间变量 |
| 函数文件(Function) | 有输入输出参数,拥有独立的工作空间 |
功能总结表
| 功能类别 | 核心特点 | 主要函数/运算符 |
|---|---|---|
| 算术运算 | 四则运算、乘方、开方 |
+ - * / ^ sqrt |
| 向量运算 | 点积、叉积、混合积 |
dot cross |
| 矩阵运算 | 加减乘除、逆、行列式 |
* / \ inv det |
| 数组运算 | 对应元素运算 |
.* ./ |
| 多项式 | 向量表示、求值、求根 |
polyval roots poly2sym |
| 符号运算 | 符号表达式、符号矩阵 |
syms vpa subs |
| 方程求解 | 线性、非线性、微分方程 |
solve fsolve dsolve |
| 图形绘制 | 二维、三维图形 |
ezplot fplot |
| 程序设计 | 流程控制、M 文件 |
if for while function |