基础知识
数据类型
常量与变量
常量:数值习惯的十进制表示,可以带小数点或负号
变量:变量名必须是不包含空格的单个词,具体规则为1变量名区分大小写;2变量名最多不超过63个字符,第63个字符以后被忽略掉;3变量名的第一个字符必须是英文字母,之后可以是字母、下划线或者数字;4变量名中不得包含空格、标点符号、运算符及关键字
预定义变量:
预定义变量 | 含义 |
---|---|
eps | 计算机最小数 |
i或j | 虚单元i=j=(-1)^(1/2) |
Inf成 inf | 无穷大 |
intmax | 可表达的最大正整数 |
intmin | 可表达的最小负整数 |
nargin | 所有函数的输入变量数目 |
ans | 计算结果的默认变量名 |
NaN 或 nan | 不是一个数 |
pi | 圆周率 |
realmax | 最大正实数 |
realmin | 最小正实数 |
nargout | 所有函数的输出变量数目 |
flops | 浮点预算数 |
基础运算
数值显示格式:1如果矩阵元素是整数,则矩阵显示就没有小数;
2如果矩阵元素不是整数,可以有多种输出形式;
名称 | 输出格式 |
---|---|
format short | 短格式 |
format long | 长格式 |
format short e | 短格式e方式 |
format long e | 长格式e方式 |
format short g | 短格式g方式 |
format long g | 长格式g方式 |
format hex | 16进制格式 |
format rat | 分数格式 |
format bank | 银行格式 |
基本数学函数
函数名 | 含义 |
---|---|
abs(x) | 纯量的绝对值或向量的长度 |
angle(z) | 复数z的相角 |
sqrt(x) | 开平方 |
real(z) | 复数z的实部 |
imag(z) | 复数z的虚部 |
conj(z) | 复数z的共钜复数 |
round(x) | 四舍五入至最近整数 |
fix(x) | 无论正负,舍去小数至最近整数 |
floor(x) | 舍去正小数至最近整数 |
ceil(x) | 加入正小数至最近整数 |
rat(x) | 将实数化为分数表示 |
rats(x) | 将实数化为多项分数展开 |
sign(x) | 符号函数 |
rem(x,y) | 求x除以y的余数 |
ged(x,y) | 整数x和y的最大公因数 |
lem(x,y) | 整数x和y的最小公倍数 |
exp(x) | 自然指数 |
pow2(x) | 2的指数函数 |
log(x) | 自然对数ln(x) |
log2(x) | 以2为底的对数 |
三角函数
函数名 | 含义 |
---|---|
sin(x) | 正弦函数 |
cos(x) | 余弦函数 |
tan(x) | 正切函数 |
asin(x) | 反正弦函数 |
acos(x) | 反余弦函数 |
atan(x) | 反正切函数 |
sinh(x) | 超越正弦函数 |
cosh(x) | 超越余弦函数 |
tanh(x) | 超越正切函数 |
asinh(x) | 反超越正弦函数 |
acosh(x) | 反超越余弦函数 |
atanh(x) | 反超越正切函数 |
向量计算常用函数
函数名 | 含义 |
---|---|
min(x) | 向量x的元素的最小值 |
max(x) | 向量x的元素的最大值 |
mean(x) | 向量x的元素的平均值 |
median(x) | 向量x的元素的中位数 |
std(x) | 向量x的元素的标准差 |
diff(x) | 向量x的相邻元素的差 |
sort(x) | 对向量x的元素进行排序 |
length(x) | 向量x的元素个数 |
norm(x) | 向量x的欧氏长度 |
sum(x) | 向量x的元素总和 |
prod(x) | 向量x的元素总乘积 |
cumsum(x) | 向量x的累计元素总和 |
cumprod(x) | 向量x的累计元素总乘积 |
dot(x,y) | 向量x和y的内积 |
cross(x,y) | 向量x和y的外积 |
数值计算
向量运算
向量生成
1.直接输入向量:a=[1 2 3 4], b=[1,2,3,4], c=[1;2;3;4] ;
2.用冒号表达式生成向量:a=1:2:3, b=-1:2,;
3.线性等分向量的生成:y=linspace(x1,x2,n) %生成n 维的行向量
向量运算
向量a=[a1, a2, a3]、b=[b1, b2, b3]
1.数量加法:a+2=[a1+2, a2+2, a3+2];
2.数量减法:a-2=[a1-2, a2-2, a3-2];
3.数乘向量:a2=[a12, a22, a32];
4.向量加法:a+b=[a1+b1, a2+b2, a3+b3];
5.向量减法:a-b=[a1-b1, a2-b2, a3-b3];
6.向量相乘:a.b=[a1b1, a2b2, a3b3];
7.向量右除:a./b=[a1/b1, a2/b2, a3/b3];
8.向量左除: a.\b=[b1/a1, b2/a2, b3/a3];
9.次方运算:
10.点乘运算:dot(a,b)=a1* b1+a2* b2+a3* b3;
sum(a. * b)= a1* b1+a2* b2+a3* b3;
11.叉乘运算: c=cross(a,b)
12.向量混合积:dot(a,cross(b,c))
矩阵运算
矩阵生成
- 在命令窗口直接输入矩阵:a=[1 2 3; 4 5 6; 7 8 9]
2.用M文件输入大型矩阵:A=[10 12 32 41 52 63;21 23 45 67 78 43;21 34 90 89 67 54 ]
3.利用数组编辑器输入大型矩阵
基本运算
1.矩阵加法: A+B
2.矩阵减法: A-B
3.数乘矩阵:A2
4.矩阵相乘:AB
5.矩阵左除:A\B
6.矩阵右除:A/B
7.矩阵乘幂:A^n
8.矩阵转置运算:A’
其它运算
函数名 | 含义 |
---|---|
zeros(m,n) | m 行n 列的零矩阵 |
ones(m,n) | m 行n 列的全1矩阵 |
eye(n) | n 阶单位矩阵 |
rand(m,n) | m 行n 列的均匀分布的随机数矩阵 |
randn(m,n ) | m 行n 列的正态分布的随机数矩阵 |
det(A) | 矩阵的行列式 |
inv(A) | 矩阵求逆 |
rank(A) | 矩阵求秩 |
trace(A) | 矩阵的迹 |
d=eig(A) | 矩阵的特征值 |
[v, d]=eig(A) | 矩阵的特征值及特征向量 |
poly(A) | 矩阵的特征多项式 |
cond(A) | 矩阵的条件数 |
norm(X,p) | 向量或矩阵的范数 |
矩阵的分解与变换
函数名 | 含义 |
---|---|
[L,U]=lu(A) | LU 三角分解,用于非奇异的一般矩阵,L 为下三角阵,U 为上三角阵,A=LU |
U=chol(A) | 实对称矩阵的平方根分解,U 为上三角阵 |
[Q,R]=qr(A) | 对称矩阵的QR 分解,Q 为正交阵,R 为上三 角阵,A=QR |
[U,S,V]=svd(A) | 一般矩阵的奇异值分解,A 为m×n 矩阵: A=USV |
tril(A) | 提取矩阵主下三角部分 |
tril(A,k) | 提取矩阵的第k 条对角线(包括第k 条对角线)下面的部分,k 为正值为上方对角线,k 为负值为下方对角线 |
triu(A) | 提取矩阵主上三角部分 |
triu(A,k) | 提取矩阵的第k 条对角线(包括第k 条对角线)上面的部分,k 为正值为下方对角线,k 为负值为上方对角线 |
二维数组运算
关系与逻辑运算
关系运算符
逻辑运算符
优先级
多项式运算
多项式的表示
1.直接输入
eg:
f
(
x
)
=
x
3
+
2
x
2
−
3
x
+
4
f(x)=x^{3}+2x^{2}-3x+4
f(x)=x3+2x2−3x+4
f=[1 2 -3 4];
f1=poly2sym(f)
2.特征多项式输入
eg:
a=[1 2 3;4 5 6;7 8 9];
p=poly(a)
p1=poly2sym(p)
3.由根创建多项式
root=[-5,-3+4i,-3-4i]
p=poly(root)
p3=poly2sym(p)
多项式基础运算
1.求多项式的值: y=polyval(p,x)
2.求多项式的根: root§
3.求多项式的乘除法运算: conv(p1,p2), deconv(p1,p2)
4.多项式微分: polyder§
5.多项式拟合:polyfit(x,y,n) 其中x、y为拟合数据,n为拟和多项式的阶数
符号运算
符号表达式的生成
1.创建符号函数: f=‘log(x)’
2.创建符号方程: equation=‘ax^2+bx+c=0’
3.创建符号微分方程: diffeq=‘Dy-y=x’
4.用sym命令来创建:f=sym(‘sin(x)’),f=sym(‘ax^2+bx+c=0’
解析解数值转换
1.digits(D): 函数设置有效数字个数为D的近似解精度
2.vpa(s): 符号表达式s在digits函数设置的精度下的近似解
3. vpa(s, D): 符号表达式s在digits(D)精度下的近似解
4. subs(s,old,new): 将符号表达式中 old 的换成new变量
5. numeric(s): 将不含自由变量的符号表达式转换成数值形式符号运算实例
复合函数的运算
compose(f, g) %返回当f=f(x)和g=g(y)时的复合函数f(g(y))
compose(f, g, z) %以z 为自变量
compose(f, g, x, z) % x 为f 的自变量,g 替换x,并将g 的自变量换为z
compose(f, g, t, z) % t 为f 的自变量,g 替换t,并将g 的自变量 换为z
compose(f, g, x, y, z) %x 为f 的自变量,y 为g 的自变量,g 替换x, z 替换y
符号极限
limit(f, x, a) % f 在x→a 时的极限
limit(f) %f 在x→0 时的极限
limit(f, x, a, right) % f 在x→a 时的右极限
limit(f, x, a, left) % f 在x→a 时的左极限
符号积分
不定积分
f1=int(cos(x)) %关于x积分
f2=int(cos(x*t),t) %关于t积分
定积分
x=int(x^2,0,1)
符号合计函数 :symsum
syms k n;
x= symsum(k^2,0,10) %求表达式从0到10的和
f=simple(symsum(k^2,0,n)) %和的最简形式
符号微分
微分函数: diff
syms x y;
diff(sin(x^2)) %求函数的一阶导数
diff(sin(x*y),x)
diff(x^4,3)
diff(sin(x*y),x,2) %关于x求二阶导数
梯度函数: gradient
[x,y]=meshgrid(-2:.2:2,-2:.2:2);
z=x.*exp(-x.^2-y.^2);
[px,py]=gradient(z,.2,.2); %其中px=dz/dx,py=dz/dy
符号代数方程解法
线性方程组的符号解法: linsolve
a=sym(‘[10 –1 0;-1 10 –2;0 –2 10]’);
b=sym(‘[9;7;6]’);
x=linsolve(a,b) %求得解析解
x1=vpa(x) %转化为数值解
非线性方程求解: solve(‘ fun’),求得解析解
x=solve(‘x^2+3*x+4=0’) %得解析解
x1=vpa(x,6) %化为数值解
常微分方程的解析解:dsolve(‘equation’)
解简单方程
dsolve(‘Dx=-a*x’) %Dx=dx/dt
desolve(‘D2x=-a*x’)
解微分方程组
s=dsolve('Du=v,Dv=w,Dw=u', 'u(0)=0,v(0)=0,w(0)=1')
u=s.u
v=s.v
w=s.w