MATEMATIKA TERAPAN
(BAB 9&10, POLINOMIAL & ALJABAR LINEAR)
Dosen :
Oleh :
Intan Rahmania Ramdhan (11)
Ummi Hafidhotunnisa (22)
Yuni Imanniarti (24)
JARINGAN TELEKOMUNIKASI
TEKNIK ELEKTRO
POLITEKNIK NEGERI MALANG
2015
POLINOMIAL
9.1 Menyatakan Polinomial dan Akar Polinomial
Dalam matematika polinomial berderajat n dapat ditulis dalam bentuk p = anxn + an-1
xn-1+an-2xn-2+ ..... + a1x + a0. Salah satu masalah yang berhubungan dengan polinomial adalah
mencari akar polinomial, atau dengan kata lain x sedemikian hingga polinomial bernilai nol
(0). MATLAB menyediakan beberapa fungsi yang berguna untuk melakukan manipulasi
terhadap polinomial.
Dalam MATLAB polinomial direpresentasikan sebagai vektor baris dari koefisienkoefisien dalam urutan menurun. Jadi untuk polinomial p tersebutdi atas, dalam matlab
dinyatakan dengan :
p = [an an-1 an-2 .. a1 a0]
sebagai contoh untuk polinomial f = 3x2 4x +5, dalam MATLAB ditulis dengan f = [3 -4 5].
Demikian halnya dengan polinomial g = 5x6 +3x4 -7x3 + 6x2+8x,dalam MATLAB dapat
ditulis dengan g = [5 0 3 -7 -6 8 0]
Sebaliknya untuk vektor baris h = [1 -3 2 0 4] berarti menyatakan polinomial h = x4
-3x3 +2x2 +4.
Telah disampaikan pada awal bab ini bahwa salah satu masalah yang berhubungan
dengan polinomial adalah mendapatkan akar polinomial, yaitu dengan menggunakan fungsi
roots. Perintah roots(p) berarti mencari akar dari polinomial p.
Contoh 9.1
%mencari akar polinomial
p = [1 -3 -10];
akarnya = roots (p)
akarnya =
5
-2
Dari contoh tersebut, berarti polinomial p = x2 -3x -10 mempunyai akar-akar real 5 dan -2.
Perhatikan juga bahwa polinomial p dinyatakan dalam vektor baris, sedangkan hasil akarnya
dinyatakan dalam vektor kolom.
Contoh 9.2
%mencari akar polinomial
q = [1 0 0 0 -1]
akar = roots(q)
akar =
-1.0000
0.0000 + 1.0000i
0.0000 1.0000i
1.0000
Dari contoh 9.2 tersebut berarti polinomial q = x4 1 mempunyai akar-akar -1,i,-i dan 1
(catatan : i=
).
Sebaliknya jika diketahui akar-akarnya dari suatu polinomial , maka MATLAB juga
menyediak fungsi yang berguna untuk membangun (membentuk) polinomial berdasarkan
akar-akar yang diketahu tersebut. Fungsi yang digunakan untuk membentuk polinomial
adalah poly. Perintah poly(r) berarti membentuk polinomial berdasarkan akar-akar yang
dinyatakan dalam vektor kolom e.
Contoh 9.3
%membentuk poliomial dengan fungsi poly
r = [5;-2];
p = poly(r)
p=
1
-3 -10
Dari contoh 9.3 tersebut perhatikan bahwa perintah bahwa perintah poly(r) menghasilkan p=
1 -3 -10, ini berarti polinomial p=x2-3x-10
Contoh 9.4
%membentuk polinomial deng fungsi poly
t = [ -1; i; -i;1];
pol = poly(t)
pol =
Dari contoh 9.4 tersebut, berati polinomial yang mempunyai akar-akar 1,i,-i dan 1 adalah pol
= x4 1.
9.2 Operasi-operasi pada polinomial
Operasi-operasi yang berlaku pada polinomial adalah operasi perkalian, penjumlahan
dan pembagian. Sedangkan untuk operasi pengurangan dapat dilakukan dengan jalan
menambah dengan negatif dari polinomial pengurang. Untuk operasi-operasi tersebut,secara
khusus matlab menyediakan fungsi yang berguana untuk melakukan operasi perkalian dan
pembagian seperti tercantum pada tabel 9.1 di bawah
Tabel 9.1 Operasi Polinomial
No Perintah
1. Conv(p,q)
Keterangan
Mengalikan polinomial p dan q
2.
[a,b] = deconv(p,q)
polyval(p,x)
Contoh 9.5
%operasi pembagian dan perkalian polinomial
P = [1 ,-2 1 6];
Q = [1 -3 2];
A = conv(p,q)
a=
1
-5 9 -1 -16 12
[b,c] = deconv(p,q)
B=
1
c=0 0 2 4
pada contoh 9.5 tersebut polinomial p = x3 2x2 +x +6
dan polinomial q = x2 3x +2. Perhatikan bahwa polinomial a= pq = x5- 5x4 +9x3 x2 16x
+12. Sedanghkan polinomial b = p/q = x +1 dengan sisanya c = 2x +4.
MATLAB secara khusus tidak menyediakan fungsi untuk pemjumlahan polinomial.
Jika derajat dari polinomial adalah sama, maka polinomal dapat dijulahkan dengan aturan
penjumlahan array yang mempunyai derajat yang lebih rendah dapat ditambahakan 0 di
depannnya secukupnya sampai mempunyai derajat yang sama dengan derajat polinomial
yang lebih tinggi. Untuk lebih jelasnya perhatikan Contoh 9.6 dan Contoh 9.7 brerikut ini.
Contoh 9.6
%prnjumlahan dan pengurangan polinomial berderajat sama
P1 = [1 -3 2 -4];
P2 = [2 5 -6 7];
A = p1 + p2
A=
2
2 -4 3
B = p1-p2
B=
-1 -8 8 -11
Contoh 9.7
%Penjumlahan pengurangan polinomial berderajat tidak sama
Q1 = [-2 1 0 1 3];
Q2 = [3 -5 6];
B = q1 + [0 0 q2]
B=
-2 1 3 -4 9
C = q1 [0 0 q2]
C=
-2 1 -3 6 -3
Pada contoh 9.6 tersebut, polinomial p1 =x33 + 3x2 +2x -4 dan p2 = 2x3 + 5x2 -6x +7
memiliki derajat yang sama, sehingga dapat langsung dilakukan dengan melakukan operasi
pwnjumlahan array dan operasi pengurangan array. Perhatikan bahwa polinomial a = p1 + p2
= 3x3 +2x2 -4x + 3
3 dan b = p1-p2 = x3 -8x2 +8x -11.
Pada contoh 9.7, kedua polinomial q1 = -2x4 +x3 +x +3 dan q2 = 3x2 -5x +6
mempunyai derajat yang berbeda, dalam hal ini polinomial q1 mempunyai derajat yang yang
lebih tinggi. Untuk itu polinomial q2 harus disesuaikan derajatnya sehingga sama dengan
derajat polinomial q1. Untuk itu array q2 ditambahkan 0 didepannya secukupnya (dalam hal
ini [0 0],yang ditunjukkan dengan [0 0 q2] sehingga dimensinya sama dengan array q1.
Selanjutnya operasi penjumalahan dan pengurangan dapat dilakukan. Dalam contoh 9.7
tersebut tampak bahwa b = q1 + q2 = -2x4 +x3 +3x2-4x+9 sedangkan c=q1-q2 = -2x4+x33x2+6x-3.
Untuk memudahkan melakukan operasi penjumlahan (atau pengurangan) polinomial,
dapat saja user membuat fungsi tersendiri. Contoh 9.8 di bawah ini menunjukka fungsi
jumlahpol yang berguna untuk menjumlahkan dua buah polinomial.
Contoh 9.8 : (fungsi M-file)
%jumlahpol(a,b) merupakan fungsi untuk menjumlahkan polinomial a dan b
Function p=jumlahpol(a,b)
If nargin < 2
Error (maaf banyaknya input polinom kurang)
End
A =a( : ).;
B =b( : ).;
Pja = length(a);
Pjb = length(b);
Pola = [zeros(1,pjb-pja) a];
Polb = [zeros(1,pja-pjb) b];
P = pola +polb;
Selanjutya jika fungsi tersebut sudah disimpan (dengan nama jumlahpol.m), maka fungsi
tersebut dapat digunakan untuk melakukan penjumlahan (pengurangan) polinomial
Contoh 9.9:
%Penjumlahan/pengurangan polinomial dengan fungsi jumlahpol
Q1 = [-2 1 0 1 3];
Q2 = [2 -5 6];
B = jumlahpol(q1,q2)
B=
-2 1 3 -4 9
C = jumlahpol(q1,-q2)
C=
-2 1 -3 6 -3
Dari contoh 9.9 tersebut tampak bahwa penggunaan fungsi jumlahpol (yang dibuat sendiri)
dapat mempermmudah operasi penjumlahan (dan pengurangan) polinomial.
Amati juga bahwa polinomial b = q1 +q2 = -2x4 + x3 -3x2 -4x +9;
Sedangkan c=q1-q2= -2x4 + x3 3x2 +6x 3.
Operasi lain yang berhubungan dengan polinomial adalah mencari nilai-nilai
polinomial, yang oleh MATLAB disediakan fungsi polyval. perintah polyval(p,x) akan
mendapatkan nilai-nilai polinomial p dari suatu array x.
Contoh 9.10
%Contoh penggunaan fungsi polyval
X = [-3 : 6];
P = [1 -2 3 8];
Y = polyval(p,x)
Y=
-46 -14 2 8 10 14 26 52 98 170
Plot(x,y)
Grid on
Title(x^3 2x^2 + 3x +8)
Xiable(x)
Dari Contoh 9.10, perhatikan bahwa untuj -3
adalah (yang disajikan dalam array y), y = [-46 -14 2 8 10 14 26 52 98 170]. Nilai-nilai array
x dan y (yang merupakan nilai polinomial p) dapat dibuat grafiknya sepertu dalam Gambar
9.1 di bawah ini
9.3 Polinom Rasional
Dalam matematika banyak dijumpai problema yang berhubungan dengan polinomial rasional.
Polinomial rasional dalam MATLAB dinyatakan denga polinomial pembilang (numerator)
dan polinomial penyebut (denominator). Misalnya untuk polinomial p =
p=
, dapat ditulis
Bik a maupun b tersebut disajikan dalam vektor kolom. Untuk lebih jelas perhatikan Contoh
9.11 di bawah ini.]Contoh 9.11
%Contoh penggunaan fungsi residue
%Pada polinomial rasional
P1 = [2 -8];
P2 = [1 -5 6]
[a, b, k] = residue (p1,p2)
A=
-2
4
B=
3
2
K=
[]
Contoh 9.11 tersebut di atas adalah jawaban dari masalah mengekspansikan ke dalam
+0
Fungsi residue dapat juga menampilkan operasi invers. Perintah [p1,p2] = residue [a,
b, k] alan menghasilkan pembilang p1 dan penyebut p2 dari suatu polinomial. Perhatikan
contoh ini.
Contoh 9.12:
>> %Contoh penggunaan fungsi residue
>>%Mendapatkan kembali polinomial rasional
>>a = [4 ; 2];
>>b=[2; 3];
>>k=[ ];
>>[p1, p2] = resideu (a,b,k)
p1 =
6
-16
p2=
1
-5
+0=
3 ];
>>p2 = [1
>>p3 = [1
-4];
>>p4 = [2
-1
>>[s
-10];
5];
t] = jumpolras(p1,p2,q1,q2)
s=
-3 7
-35
55]
-18
25
t=
5
-50
9.4 Derivatif
Untuk menyelesaikan problem Derivatif(Turunan) maka memakai fungsi polyder dari
suatu polinomial. Perintah polyder(p) memberikan hasil turunan pertama dari polinomial p.
Contoh 9.15:
>>%contoh penggunaan fungsi polyder
>>%mencari derivatif dari polinomial
>>p = [2
-4
-8
10]
>>dp = polyder(p)
dp =
8
-12
-8
adalah
dapat dicari
dengan fungsi polyder dengan perintah [a
b] = polyder(p1, p2).
Contoh 9.16 :
>>%contoh penggunaan fungsi polyder pada polinimial rasional
>>s1 = [1
-2
>>s2 = [4
-1];
>>[a1
3];
a1=
4
-2
-10
a2=
16 -8
Polinomial
1
, derivatif dari s adalah ds=a1/a2=
ALJABAR LINEAR
10.1 Fungsi-fungsi pada Aljabar Linear
Pembahasan Aljabar Linear merupakan perluasan dari pembahasan Matriks Bab 4.
Pembahasan pada ini yaitu vektor dan matriks, bentuk eselon baris tereduksi, faktorisasi
matriks, ruang vektor, transformasi linear, akar dan vektor karakteristik.
Tabel 10.1 Beberapa fungsi pada Aljabar Linear
No
Perintah
1
[]
2
cdf2rdf(A)
Keterangan
Matriks kosong (empty matrix)
Konversi bentuk diagonal kompleks ke bentuk blok
3
4
5
chol(A)
W= cross(U,V)
D = eig (A)
diagonal real
Faktorisasi Cholesky
Cross product, Vektor W=U x V
D adalah vektor kolom yang memuat akar-akar
[V,D] = eig(A)
karakteristik A
V adalah matriks persegi yang kolom-kolomnya
merupakan vektor karakteristik dari A, dan D
matriks diagonal yang anggota-anggotanya akar-
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
exmp(A)
hess(A)
logm(A)
lu(A)
norm(A)
null(A)
orth(A)
poly(A)
polyval,(A)
qr(A)
qz(A,B)
rank(A)
rref(A)
sum(k)
svd(A)
dan v=
Contoh 10.1 :
>>%contoh operasi pada vektor
>>u = [-1; 0; 1]
u=
>> v = [1; 2; 1]
v=
>>m = 3*u
m=
0
>>sudut_A = acos(cosA)
sudut_A =
1.5708
>>sudut_Adrajat = sudut_A*180/pi
sudut_Adrajat =
90
Fungsi m-file untuk mengetahui besar sudut (dalam derajat) antara dua buah vektor yang
diketahui.
Contoh 10.2 : (fungsi m-file)
function s = sudut (u,v)
%fungsi = sudut antara dua vektor
%vektor u dan v adalah vektor kolom
%sudut (s) dalam derajat
%jika inputnya tidak dua vektor , salah
If nargin ~= 2
error(banyaknya input harus dua vektor)
end
%jika dimensi kedua vektor tidak sama, salah
Aa = length (u);
Bb= length (v);
If
a~= b
error(kedua vektor harus berdimensi sama)
end
c= sum (u.*v);
d = norm(u);
e = norm(v);
f= c/(d*e);
g= acos(f);
h=g*180/pi;
s = h;
Menggunakan fungsi sudut untuk mencari sudut (dalam derajat) antara dua vektor sebagai
berikut :
>>p = [2;-1;3;1];
>>q = [1;-1;1;-1];
>>d = sudut(p,q)
d=
49.7970
Untuk matriks persegi A, dapat dicari di antaranya determinan, invers (jika determinannya
tidak nol), dan matriks.
Contoh 10.3:
>>%contoh fungsi fungsi pada matriks persegi
>>B = [1
-1; 2 0
1;1
2]
B=
>> k = det(B)
k=
-9
C=inv(B)
C=
>>adjB = C*k
adjB =
>>B*adjB
ans =
Dalam teori matriks diketahui bahwa matriks adjoint merupakan matriks yang anggotaanggotanya adalah kofaktor dari matriks. Untuk itu dapat dibuat fungsi untuk mendapatkan
matriks adjoint dengan bantuan kofaktor. Fungsi adjoint dibentuk menggunakan fungsi
kofaktor dan fungsi reshape. Perintah reshape (A,m,n) akan membentuk matriks berdimensi
mxn yang elemen-elemennya diambilkan dari kolom-kolom yang bersesuaian dari matriks A.
Contoh 10.4 (fungsi m-file):
function cst = kofaktor (A,s,t)
>>kofaktor(G,1,1)
Ans = 1
>>kofaktor(G,3,2)
Ans = -4
>>H = adJoint(G)
H=
>>inversG = H/det(G)
inversG =
>>inversGinv = inv(G)
inversGinv =
Untuk matriks persegi singular (determinannya sama dengan nol) atau bukan matriks persegi
juga mempunyai invers, yang dikenal dengan pseudo invers (invers semu). B dikatakan
pseudo invers dari A jika memenuhi hubungan ABA = A. Untuk mendapatkan pseudo invers
digunakan fungsi pinv.
Contoh 10.7:
>>%contoh penggunaan fungsi pinv
>> A = [1 -2 3;2 1 2;4 -3 8]
A=
>> k = det(A)
k=
0
>> B = pinv(A)
B=
>> pinv(C)
ans=
>> E = rref(C)
E=
>> P = E/C
P=
>>P = E/C
>>L = inv(P)
L=
>>cek = L*E
cek =
N = (rref(rref(C)))
N=
Dalam contoh di atas perhatikan juga bahwa dengan variasi fungsi rref dan operator
tanpose dapat juga digunakan untuk menemukan bentuk normal (N) dari suatu matriks.
Dalam teori matriks, untuk matriks A selalu ada matriks nonsingular P dan Q sedemikian
hingga PAQ = N.
Untuk matriks persegi A, MATLAB manyediakan fungsi khusus untuk pemfaktoran
yaitu lu. Perintah [B S] = lu(A) akan mendapatkan matriks B dan S sedemikian hingga A =
BS. Sedangkan untuk matriks umum A, yang dikenal dengan dekomposisi ortogonal segitiga
(orthogonal-trigunal decomposition). Perintah [G E]= qr(A) akan menghasilkan matriks
ortogonal G dan matriks eselon E sedemikian hingga A = G E. Jika A adalah matriks E
merupakan matriks segitiga.
Contoh 10.9
>> %dekomposisi matriks dengan fungsi lu dan qr
>> A = [1 -2 1;0 1 -1;2 1 -1]
A=
>> [H K] = lu(A)
H=
K=
>> H*K
ans=
>> [L E] = qr(A)
L=
E=
>> L=L
ans=
>> L*E
ans=
>> [M N] = lu(B)
??? Error Using = = > lu
>> [T E] = qr(B)
T=
E=
selalu dapat direpresentasikan dengan matriks A berdimensi mxn sedemikian hingga T(v) =
Av, untuk setiap vektor v
Rn.
transformasi A. Fungsi MATLAB yang digunakan untuk persoalan transformasi linear adalah
fungsi rref dan null serta rank.
Perintah [E pvot] = rref akan mendapatkan matriks E yang merupakan bentuk eselon
baris tereduksi dari A, serta kolom pivot yang menunjukkan posisi kolom di mana elemen
pivot dari bentuk E berada. Perintah rank(A) akan mendapatkan banyaknya baris yang bebas
linear dari A. Sedangkan perintah null(a), mendapatkan baris orthonormal dari ruang nol
(Kernel) atau perintah null(A,r) akan mendapatkan basis rasional dari ruang nol.
Andaikan transformasi linear T : R5
tersebut adalah : A =
subruang dari transormasi T tersebut dapat dikerjakan sebagaimana Contoh 10.10 berikut ini.
Contoh 10.10:
>>%ruang baris, ruang kolom dan ruang nol
>> A = [1 2 1 -1 3; 2 4 2 -1 7; 1 2 2 1 2]
A=
>> [E p] = rref(A);
>> k = length(p);
>> basis_rbaris = E(1:k,:)
basis_rbaris =
Basis_rkolom =
f = min(size(e));
%menampilkan size
disp ( )
disp(;RUANG BARIS :)
disp(sprintf(Dimensi ruang baris = %.4g,b))
disp(Basis ruang baris = ), disp (a)
disp(-)_
disp(RUANG KOLOM / RUANG PETA :)
disp(sprintf(Dimensi ruang kolom = %.4g,d))
disp(basis ruang kolom=), disp(c)
disp ( )
disp (RUANG NOL:)
disp(sprintf(Dimensi ruang nol = %.4g,))
disp(Basis ruang nol = ), disp(e)