matlab習慣將降冪排列的多項式 儲存為係數行向量
注意:乘積多項式的係數恰為兩個原始係數的卷積
例:多項式帶餘除法
例:矩陣的特徵多項式與特徵根format rat
p1 = conv([1, 0, 2], conv([1, 4], [1, 1]));
p2 = [1, 0, 1, 1];
[q, r] = deconv(p1, p2);
cq='商多項式為 '; cr='餘多項式為 ';
disp([cq,poly2str(q,'s')]),disp([cr,poly2str(r,'s')])
qp2=conv(q,p2); %回代pp1=商x分母+余式
pp1=qp2+r;
pp1==p1
我們可以看到format short
a=[11 12 13;14 15 16;17 18 19];
pa=poly(a);
ppa=poly2str(pa,'s');
s = eig(a);
r = roots(pa);
n = length(pa);
aa = diag(ones(1, n-2, class(pa)), -1);
aa(1,:) = -pa(2:n) ./ pa(1); %第一行減掉了特徵多項式後三個係數
sr = eig(aa); %該矩陣aa的特徵多項式與pa相同,特徵值也相同
pa
的結果為1.0000 -45.0000 -18.0000 -0.0000
,這是該矩陣的特徵多項式,即,列印ppa
顯示特徵多項式的字串結果:s^3 - 45 s^2 - 18 s - 9.8142e-15'
,最後一項為機器誤差可以忽略。由高等代數的知識我們知道該特徵多項式的根即為eig
的列印結果,因此我們可以發現s
與r
是相同的。
aa
為用長度為n-2
的向量生成乙個向下平移一行的(n-1)×(n-1)
維矩陣,列印結果為:
例:構造特徵根的多項式0 0 0
1 0 0
0 1 0
r=[-0.5,-0.3+0.4*i,-0.3-0.4*i]; %三個特徵根,復根需有共軛複數對
p=poly(r) %生成對應的多項式
pr=real(p)
ppr=poly2str(pr,'x')
ppr
的列印結果為:
例:ppr =
x^3 + 1.1 x^2 + 0.55 x + 0.125
polyval
與polyvalm
函式
已知 類似於前面多項式乘法的例子, 函式將返回 的向量, 即clear
p=[1,2,3];
poly2str(p,'x')
x=[1,2;3,4];
va = x.^2+2*x+3 %對應元素代入多項式p(x)
va = polyval(p,x) %等價的matlab函式polyval
vm = x^2+2*x+3*eye(2) %將矩陣整體代入p(x)
vm = polyvalm(p,x) %等價的matlab函式
cp=poly(x);
poly2str(cp,'x') %獲取並顯示x的特徵多項式
cpxa = polyval(cp,x) %代入x的元素,得到結果矩陣
cpx = polyvalm(cp,x) %整體代入驗證h-c定理
這裡補充定義
例:
% 方法1:
n1=3;n2=12;a=ones(1,n2+1);a(1:n1)=0;%相同的向量定義,用0填充左側
m1=2;m2=9;b=ones(1,m2+1);b(1:m1)=0;
c=conv(a,b); %直接conv函式計算
kc=0:(n2+m2);
% 方法2
n1=3;n2=12;m1=2;m2=9;
a=ones(1,(n2-n1+1)); b=ones(1,(m2-m1+1)); %去掉左邊的0,與前法類似
c=conv(a,b);
nc1=n1+m1;nc2=n2+m2; %左右端點下標計算
kc=nc1:nc2;
subplot(2,1,1),stem(kc,c), text(20,6,'0 起點法') %方法1直接繪圖
cc=[zeros(1,kc(1)),c]; %方法2的結果左側填充5個0
subplot(2,1,2),stem(kc,cc),text(18,6,'非平凡區間法')
xlabel('n') %注:計算單點的卷積值使用sum函式速度更快
結果為:

matlab筆記 邏輯向量
向量包含在邏輯表示式中時,比較是以逐元素的方式進行的。結果也是向量。繪製y sin x 在一定範圍內x軸上方的部分 非負部分 如下 x 0 pi 20 3 pi y sin x y y.y 0 plot x,y 繪製y sin x x,x在 4 4 之間,如下 x 4 pi pi 20 4 pi x...
matlab向量的模
向量 v 中的元素 v1,v2,v3,vn,下式給出其幅度 v v12 v22 v32 vn2 matlab中需要採按照下述步驟進行向量的模的計算 採取的向量及自身的積,使用陣列相乘 這將產生乙個向量sv,其元素是向量的元素的平方和v.sv v.v 使用求和函式得到 v。這也被稱為向量的點積向量的元...
Matlab向量 矩陣基本操作
1 向量的建立 1 直接輸入 行向量 a 1,2,3,4,5 列向量 a 1 2 3 4 5 2 用 生成向量 a j k 生成的行向量是a j,j 1,k a j d k 生成行向量a j,j d,j m d m fix k j d 3 函式linspace 用來生成資料按等差形式排列的行向量 x...