EverydayOneCat
🌈 🐱🐱🐱
🍣🍣🍣🍣🍣✖️N
🌈📖📜 🥢
🐱 🐱
「Sushi shop!」
知识点
1.下载
链接:https://pan.baidu.com/s/1DbfysOOwIoSvt8HQUw0jhw
提取码:75mz
2.基本数学运算
2.1变量与数据操作
变量定义注意事项:
- 变量名区分字母大小写
- 变量名必须以字母开头,之后可以是任意字母、数字或下划线
- MATLAB语言将所识别的一切变量视为局部变量,若要将变量定义为全局变量,则应当对变量进行说明,即在该变量前加关键字global.
特殊变量表:
特殊变量 | 取值 |
---|---|
ans | 用于结果的缺省变量名 |
pi | 圆周率 |
eps | 计算机的最小数 |
flops | 浮点运算数 |
inf | 无穷大 如1/0 |
nan | 不等量 如0/0 |
i j | i=j=虚数单位 |
nargin | 函数的输入变量数目 |
nargout | 函数的输出变量数目 |
realmin | 最小的可用正实数 |
realmax | 最大的可用正实数 |
2.2MATLAB常用数学函数
MATLAB 提供了许多数学函数,函数的自变量规定为矩阵变量,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。
1.基本数学函数:
abs(x):纯量的绝对值或向量的长度
angle(z):复数z的相角**(Phase angle) sqrt(x):开平方 real(z):复数z**的实部
imag(z):复数z的虚部
conj(z):复数z的共轭复数
round(x):四舍五入至最近整数
fix(x):无论正负,舍去小数至最近整数
floor(x):地板函数,即舍去正小数至最近整数
ceil(x):天花板函数,即加入正小数至最近整数
rat(x):将实数x化为分数表示
rats(x):将实数x化为多项分数展开
rem(x,y):求x除以y的余数
gcd(x,y):整数x和y的最大公因数
lcm(x,y):整数x和y的最小公倍数
exp(x):自然指数
pow2(x):2的指数
log(x):以e为底的对数,即自然对数
log2(x):以2为底的对数
log10(x):以10为底的对数
sign(x):符号函数 (Signum function).
2.三角函数:
sin(x):正弦函数 cos(x):余弦函数
tan(x):正切函数 asin(x):反正弦函数
acos(x):反余弦函数 atan(x):反正切函数
atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数
cosh(x):超越余弦函数 tanh(x):超越正切函数
asinh(x):反超越正弦函数 acosh(x):反超越余弦函数atanh(x):反超越正切函数
3.适用于向量的常用函数:
min(x): 向量x的元素的最小值 max(x): 向量x的元素的最大值
mean(x): 向量x的元素的平均值 median(x): 向量x的元素的中位数
std(x): 向量x的元素的标准差 diff(x): 向量x的相邻元素的差
sort(x): 对向量x的元素进行排序(Sorting) 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的外积
+++
例:随机抽取10 名学生的高等数学课程成绩,并统计他们中的最高分、最低分以及他们的平均成绩。
>> math=[88,90,77,69,92,80,74,66,95,85]; %产生10维向量
mathaver=sum(math)/10 %计算平均成绩
h=max(math) %求出最高分
l=min(math) %求出最低分
2.3MATLAB矩阵
矩阵的建立:
(1)直接输入法——A=[1 2 3;4 5 6;7 8 9]
矩阵同行元素之间由空格或逗号分隔,行与行之间用分号或回车键分隔;若“[ ]”中无元素表示空矩阵.
(2)利用冒号和函数——函数linspace(a,b,n)产生第一个元素为a,最后一个元素为b总数为n的行向量
>> a=1:0.5:4 % 格式是初始值:步长:终止值
a=
Columns 1 through 7
1 1.5 2 2.5 3 3.5 4
(3)矩阵合并
>> B=[1 1 1]
B =
1 1 1
>> C=[A;B] %分号增加行
C =
1 2 3
4 5 6
7 8 9
1 1 1
>> D=[A,B'] %逗号增加列
D =
1 2 3 1
4 5 6 1
7 8 9 1
矩阵的截取:
(1) 矩阵元素
>> A(2,3) %下标引用
ans = 6
>> A(6) %一列一列的开始数
ans = 8
序号(Index)与下标(Subscript )是一一对应的,其相互转换关系也可利用sub2ind和ind2sub函数求得。
>> sub2ind(size(A),2,3)
ans= 8
[i,j]=ind2sub(size(A),8)
i= 2
j= 3
(2) 使用冒号
可以用冒号表示“直到”以及“所有行”,“所有列”,还可利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下
>> B=A (1:2, : ) %逗号前面是行数,表示第一行直到第二行;逗号后面列数,表示所有列
B=
1 2 3
4 5 6
>> C=A([1,3],2:end) %行数:第一行和第三行;列数:第二列直到最后
C =
2 3
8 9
+++
特殊矩阵:
zeros(m,n) | 生成一个 m 行 n 列的零矩阵,m=n 时可简写为 zeros(n) |
---|---|
ones(m,n) | 生成一个 m 行 n 列的元素全为 1 的矩阵, m=n 时可写为 ones(n) |
eye(m,n) | 生成一个主对角线全为 1 的 m 行 n 列矩阵, m=n 时可简写为 eye(n),即为 n 维单位矩阵 |
diag(X) | 若 X 是矩阵,则 diag(X) 为 X 的主对角线向量 若 X 是向量,diag(X) 产生以 X 为主对角线的对角矩阵 |
tril(A) | 提取一个矩阵的下三角部分 |
triu(A) | 提取一个矩阵的上三角部分 |
rand(m,n) | 产生 0~1 间均匀分布的随机矩阵 m=n 时简写为 rand(n) |
randn(m,n) | 产生均值为0,方差为1的标准正态分布随机矩阵 m=n 时简写为 randn(n) |
例:
分别建立3×3、3×2和与矩阵A同样大小的零矩阵。
>> zeros(3),zeros(3,2),zeros(size(A))
建立随机矩阵:
(1) 在区间[20,50]内均匀分布的5阶随机矩阵。
(2) 均值为0.6、方差为0.1的5阶正态分布随机矩阵。
>> x=20+(50-20)*rand(5)
y=0.6+sqrt(0.1)*randn(5)
3.MATLAB运算
3.1基本算术运算
MATLAB的基本算术运算有:+(加)、-(减)、*(乘)、/(右除)、\ (左除)、^(乘方)。
这个就是矩阵的乘法,线性代数知识:m* n的矩阵只有和n *x的矩阵才能相乘得出m *x的矩阵。(老汤别打我,我只记得这个了😥)
3.2点运算
在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。
点运算符有:
点乘: .*
点除: ./ .
点幂: .^
两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维数相同。
>> A.^2
ans =
1 4 9
16 25 36
49 64 81
符号运算符 | 功 能 | 类别 |
---|---|---|
= = | 等于 | 关系运算符 |
~ = | 不等于 | |
< | 小于 | |
> | 大于 | |
<= | 小于等于 | |
>= | 大于等于 | |
& | 逻辑与 | 逻辑运算符 |
| | 逻辑或 | |
~ | 逻辑非 |
例:
产生5阶随机方阵A,其元素为[10,90]区间的随机整数,然后判断A的元素是否能被3整除。
>> A=fix((90-10+1)*rand(5)+10) %生成5阶随机方阵A
P=rem(A,3)==0 %判断结果是一个布尔矩阵
fix()取整;rand生成0~1的随机方阵;rem(A,B)——A/B的余数
建立矩阵A,然后找出大于4的元素的位置。
>> A=[4,-65,-54,0,6;56,0,67,-45,0]
find(A>4) %返回的是索引值
3.3矩阵分析
用求逆矩阵的方法解线性方程组。备注:Ax=b其解为:x=A-1b
>> a=[2,-3,1;8,3,2;45,1,-9];
b=[4;2;17]; x=inv(a)*b
用求特征值的方法解方程:
3 x 5 − 7 x 4 + 5 x 2 + 2 x − 18 = 0 3x^5-7x^4+5x^2+2x-18=0 3x5−7