当前位置:网站首页>Matlab基础(2)——向量与多项式
Matlab基础(2)——向量与多项式
2022-07-30 11:28:00 【Myster_KID】
Matlab基础(2)——向量与多项式
向量是由 n n n个数 a 1 , a 2 , ⋯ , a n a_1,a_2,\cdots,a_n a1,a2,⋯,an组成的有序数组,记成 a = ( a 1 a 2 ⋮ a n ) a=\begin{pmatrix}a_1\\a_2\\\vdots\\a_n\end{pmatrix} a=⎝⎛a1a2⋮an⎠⎞或 a T = ( a 1 , a 2 , ⋯ , a n ) a^T=(a_1,a_2,\cdots,a_n) aT=(a1,a2,⋯,an),叫做 n n n维向量,向量 a a a的第 i i i个分量称为 a i a_i ai。
向量生成与引用
向量生成
直接输入
向量用
[]扩起来,元素之间用,或空格隔开,;则相当于换行冒号法
t = 区间左端点 : 增量 : 区间右端点;t = first:increment:last; % first - 从first开始(闭区间) % last - 到last为止(闭区间) % increment - 增量,默认为1 t = 0:2:10; % [0 2 4 6 8 10] t = 0:5; % [0 1 2 3 4 5] t = 10:-2:0; % [10 8 6 4 2 0]利用函数
linspace(区间左端点, 区间右端点, 个数)linspace(first_value, last_value, number); % 在指定范围内等间隔采样 % first_value - 从first_value开始(闭区间) % last_value - 到last_value结束(闭区间) % number - 包含number个元素 x = linspace(0,10,5); % [0 2.5 5 7.5 10]利用函数
logspace(区间左端点, 区间右端点, 个数)logspace(first_value, last_value, number); % 在指定范围内等间隔采样,但区间取10的幂 % first_value - 从10^first_value开始(闭区间) % last_value - 到10^last_value结束(闭区间) % number - 包含number个元素 x = logspace(1,3,3); % [10 100 1000]
可以同时采用多种方法创建向量,并使用[]将它们合并
x = [2:4 4,5,6 linspace(10,20,2)];
% (2 3 4) (4 5 6) (10 20)
向量引用
| 格式 | 说明 |
|---|---|
x(index) | 表示向量中的第 i n d e x index index个元素 |
x(i:j) | 表示向量中的第 i i i到第 j j j个元素 |
x(i:delta:j) | 表示向量中的第 i i i到第 j j j个元素,每 d e l t a delta delta个取一个值 |
向量的索引从1开始
可以用另一个向量 n n n作为索引,去访问向量 x x x,向量 n n n只能包含正整数,且不能超过 x x x的索引范围
x = 1:2:20; n1 = [1,4,9,7]; n2 = 2:3:10; % [2,5,8] x(n1) % [1 7 17 13] x(n2) % [3 9 15]
向量运算
四则运算
相当于对向量中的元素分别进行四则运算
x = 2:2:10; % [2 4 6 8 10]
x+1 % [3 5 7 9 11]
x-1 % [1 3 5 7 9]
x*2 % [4 8 12 16 20]
x/2 % [1 2 3 4 5]
矩阵运算
向量可以看做特殊的矩阵,可以用矩阵运算的规则进行向量运算
x = 2:2:10; % [2 4 6 8 10]
y = 1:5; % [1 2 3 4 5]
x+y % [3 6 9 12 15]
x-y % [1 2 3 4 5]
x.*y % [2 8 18 32 50] 按位乘
x./y % [2 2 2 2 2] 按位除
x*y' % 110 矩阵乘法
点积(数量积、内积)
向量 a = ( a 1 , a 2 , ⋯ , a n ) a=(a_1,a_2,\cdots,a_n) a=(a1,a2,⋯,an)和 b = ( b 1 , b 2 , ⋯ , b n ) b=(b_1,b_2,\cdots,b_n) b=(b1,b2,⋯,bn)的点积定义为
a ⋅ b = a 1 b 1 + a 2 b 2 + ⋯ + a n b n a\cdot b=a_1b_1+a_2b_2+\cdots+a_nb_n a⋅b=a1b1+a2b2+⋯+anbn
其中,向量 a a a和向量 b b b必须长度相同。
dot(a,b);
sum(a.*b);
sum(a*b');
向量积(外积、叉积、叉乘)
向量 a = ( a 1 , a 2 , ⋯ , a n ) a=(a_1,a_2,\cdots,a_n) a=(a1,a2,⋯,an)和 b = ( b 1 , b 2 , ⋯ , b n ) b=(b_1,b_2,\cdots,b_n) b=(b1,b2,⋯,bn)的向量积模长为
∣ a × b ∣ = ∣ a ∣ ⋅ ∣ b ∣ ⋅ s i n < a , b > |a\times b|=|a|\cdot|b|\cdot sin<a,b> ∣a×b∣=∣a∣⋅∣b∣⋅sin<a,b>
其方向与向量 a a a和 b b b所在平面垂直,且遵循右手定则。
cross(a,b); % 返回a和b的叉积,此时a和b必须是3维的向量
% 计算其他维度叉积可以通过help cross查看对应方法
x = [1,0,0];
y = [0,1,0];
z = cross(x,y); % z = [0,0,1]
ps. 点积的结果是一个数,向量积的结果是一个同维向量
多项式表示与创建
在Matlab中,用系数向量表示相应的多项式,以便进行多项式计算:
a 0 x n + a 1 x n − 1 + ⋯ + a n − 1 x + a n p = [ a 0 , a 1 , ⋯ , a n ] a_0x^n+a_1x^{n-1}+\cdots+a_{n-1}x+a_n \leftrightarrow p=[a_0,a_1,\cdots,a_n] a0xn+a1xn−1+⋯+an−1x+anp=[a0,a1,⋯,an]
系数中的0不能省略,如 2 x 3 − x 2 + 3 [ 2 , − 1 , 0 , 3 ] 2x^3-x^2+3\leftrightarrow[2,-1,0,3] 2x3−x2+3[2,−1,0,3]
多项式的创建
使用系数向量p,通过函数poly2sym(p)创建多项式,返回sym类型多项式
s = poly2sym([1,2,1]); % x^2 + 2*x + 1
使用根向量root,通过函数poly(root)创建多项式,返回系数向量
root = [1 2];
p = poly(root); % [1 -3 2]
poly2sym(p) % x^2 - 3*x + 2
也可以编写字符串str,再通过eval(str)函数将其转换为sym类型。
sym类型表示“符号表达式”,也可以直接用于计算,后续的章节中包含相关内容。
多项式运算
多项式运算通过系数向量进行。
加减运算直接用+-实现,相加、相减的两个向量必须大小相等。
多项式乘法
相当于执行两个数组的卷积,用函数conv(p1,p2)实现,返回结果多项式的系数向量
p1 = [1 2 1];
p2 = [1 2 1];
conv(p1,p2) % [1 4 6 4 1]
多项式除法
相当于执行两个数组的解卷,用函数deconv(p,q)实现,返回结果多项式的系数向量
[k, r] = deconv(p, q);
% k - p除以q的商
% r - p除以q的余式
% p = conv(q, k) + r;
p1 = [1 2 1];
p2 = [1 2 1];
p = conv(p1,p2); % [1 4 6 4 1]
deconv(p, p1) % [1 2 1]
多项式求导
通过函数polyder(p)实现,返回结果多项式的系数向量
p = [1 1 1 1 1];
polyder(p) % [4 3 2 1]
边栏推荐
猜你喜欢

High energy output!Tencent's internal MyCat middleware manual, both theoretical and practical

Beyond Stream Processing!The 4th real-time computing Flink challenge is launched, and 490,000 prizes are waiting for you!

反转链表-递归反转法

RY-D1/1电压继电器

360闷声干大事获赞无数,数字安全如何保障?还得看企业安全云

时间序列曲线相似性

Reverse linked list - iterative inversion method

EA中的业务对象和业务实体你分得清吗?

深入浅出零钱兑换问题——背包问题的套壳

Verilog grammar basics HDL Bits training 07
随机推荐
Drools 规则引擎一文读懂
Concepts of cloud-native applications and 15 characteristics of cloud-native applications
Native js create table
云原生应用的概念和云原生应用的 15 个特征
ansible学习笔记01
Verilog grammar basics HDL Bits training 07
Voltage relay HDY - vac - 1 A / 1-220
High energy output!Tencent's internal MyCat middleware manual, both theoretical and practical
编译Hudi
LeetCode_235_二叉搜索树的最近公共祖先
EA中的业务对象和业务实体你分得清吗?
Verilog语法基础HDL Bits训练 08
Swift common extension classes and simple encapsulation
单片机开发之静态LED显示
Current relay JL-8GB/11/AC220V
External Force Estimation Based on Time Delay Estimation with Perturbed Kalman Filter
Bagging-Blending Multi-Model Fusion Short-Term Electricity Load Forecasting Based on Weighted Grey Correlation Projection
Reverse linked list - recursive inversion method
Summary of text alignment, line height, space, etc.
Apifox 生成接口文档 教程与操作步骤