Octave kódok¶

1.37. Vektorok skalár- és vektori szoztata¶

In [2]:
a = [2 3 6];
b = [3 -6 2];
dot(a,b)      % skaláris szorzat


ans = 0
In [3]:
axb = cross(a,b)
axb =

   42   14  -21

In [4]:
c = [1 0 1];
% paralelepipedon térfogata
dot(axb, c)


ans = 21
In [5]:
% a 3 vektorból képzett determináns
det([a; b; c])

ans = 21.000

1.41. Vektorok hossza és hajlásszöge¶

In [6]:
u = [2 3 4 14];
v = [4 6 -10 10];
w = [0 3 6 -2];
norm(u) % norma



ans = 15
In [7]:
norm(w)
ans = 7
In [8]:
norm(u-v) % távolság
ans = 15
In [9]:
% cos u és w szöge
dot(u,w)/norm(u)/norm(w)

ans = 0.047619
In [10]:
% u és w szöge radiánban
acos(ans)

ans = 1.5232

1.47. Korrelációs együttható¶

In [11]:
x = [1 2 3 4 5];
y = [3 2 4 6 5];
corr(x, y)


ans = 0.8000
In [12]:
z = [5 6 4 2 3];
corr(x, z)

ans = -0.8000

2.1. Redukált lépcsős alak (rref)¶

In [13]:
A = [2 1 1;0 2 1;0 4 2]
A =

   2   1   1
   0   2   1
   0   4   2

In [14]:
rref(A)
ans =

   1.0000        0   0.2500
        0   1.0000   0.5000
        0        0        0

2.21. Nulltér¶

In [15]:
a = [1 2 2 -1
    1 2 4  0
    3 6 2 -5]


a =

   1   2   2  -1
   1   2   4   0
   3   6   2  -5

In [16]:
% az a nullterét kifeszítő oszlopvektorok
null(a)

ans =

  -0.933914   0.076505
   0.313851   0.643190
   0.076553  -0.340721
  -0.153106   0.681442

3.1. Mátrix megadása¶

In [17]:
a = [1 2 3
     4 5 7]

a =

   1   2   3
   4   5   7

In [18]:
b = [1 2; 3 4]
b =

   1   2
   3   4

In [19]:
diag([1, 2, 3])
ans =

Diagonal Matrix

   1   0   0
   0   2   0
   0   0   3

In [20]:
a(2, 3)
ans = 7
In [21]:
a(2, :)
ans =

   4   5   7

In [22]:
a(:, 3)
ans =

   3
   7

In [23]:
v = [1 2 3]
v =

   1   2   3

In [24]:
w = [1;2;3]
w =

   1
   2
   3

In [25]:
size(v)
ans =

   1   3

In [26]:
size(w)
ans =

   3   1

3.4. Mátrixszorzás¶

In [27]:
A = [1 1;2 1;0 3]
A =

   1   1
   2   1
   0   3

In [28]:
B = [1 1 2;2 1 0]
B =

   1   1   2
   2   1   0

In [29]:
A*B
ans =

   3   2   2
   4   3   4
   6   3   0

3.5. Blokkmátrix létrehozása¶

In [30]:
A = [1 0];
B = [1];
C = [2 1;0 3];
D = [1;1];
[A B;C D]




ans =

   1   0   1
   2   1   1
   0   3   1

3.7. Skalár vagy mátrix¶

In [31]:
u = [1; 0; 2]
u =

   1
   0
   2

In [32]:
v = [3; 2; 1]
v =

   3
   2
   1

In [33]:
u * v'  % diadikus szorzat
ans =

   3   2   1
   0   0   0
   6   4   2

In [34]:
u' * v  % skalárszorzat
ans = 5
In [35]:
% 1x3 * 3x1 * 2x2
% skalárszor mátrix:
u'*v*diag([1 1])


ans =

Diagonal Matrix

   5   0
   0   5

3.8. Egységmátrix¶

In [36]:
eye(2)
ans =

Diagonal Matrix

   1   0
   0   1

In [37]:
diag([1 1])
ans =

Diagonal Matrix

   1   0
   0   1

In [38]:
eye(2,3)
ans =

Diagonal Matrix

   1   0   0
   0   1   0

3.9. Elemi mátrixok¶

In [39]:
A = eye(3)
A =

Diagonal Matrix

   1   0   0
   0   1   0
   0   0   1

In [40]:
A([1 3],:) = A([3 1],:)
A =

   0   0   1
   0   1   0
   1   0   0

In [41]:
B = eye(3);
B(2,:) = 5*B(2,:)

B =

   1   0   0
   0   5   0
   0   0   1

In [42]:
C = eye(3);
C(1,:) += 2*C(3,:)

C =

   1   0   2
   0   1   0
   0   0   1

3.10. vec függvény és Kronecker-szorzat¶

In [43]:
A = [1 2;3 4]
A =

   1   2
   3   4

In [44]:
vec(A)
ans =

   1
   3
   2
   4

In [45]:
B = [1 0;2 1]
B =

   1   0
   2   1

In [46]:
kron(A, B)
ans =

   1   0   2   0
   2   1   4   2
   3   0   4   0
   6   3   8   4

3.11. Sylvester-egyenlet megoldása¶

In [47]:
A=[0 1;1 0];
B=[1 1;0 2];
C=[3 7;3 5];
sylvester(A,B,C)



ans =

   1.5000   2.5000
   1.5000   0.5000

3.13. mátrixosztás¶

In [48]:
A=[1 2;2 3]
A =

   1   2
   2   3

In [49]:
B=[1 2;3 4]
B =

   1   2
   3   4

In [50]:
A\B
ans =

   3   2
  -1   0

In [51]:
B/A
ans =

   1   0
  -1   2

In [52]:
% Ellenőrzés
A*(A\B)

ans =

   1   2
   3   4

In [53]:
% Ellenőrzés
B/A*A

ans =

   1   2
   3   4

3.16. Egyenletrendszer megoldása mátrixinvertálással, mátrixosztással¶

In [54]:
A=[2 1;5 3]
A =

   2   1
   5   3

In [55]:
b=[2;3]
b =

   2
   3

In [56]:
A\b     % megoldás osztással
ans =

   3
  -4

In [57]:
A^-1*b  % mo. invertálással
ans =

   3
  -4

In [58]:
B=[1 3 2;4 3 1]
B =

   1   3   2
   4   3   1

In [59]:
A\B
ans =

  -1   6   5
   3  -9  -8

In [60]:
A^-1*B
ans =

  -1   6   5
   3  -9  -8

3.20. LU-felbontás¶

In [61]:
A = [4 8 4 8; 2 6 4 4; 1 3 2 4]
A =

   4   8   4   8
   2   6   4   4
   1   3   2   4

In [62]:
[L U]=lu(A)
L =

   1.0000        0        0
   0.5000   1.0000        0
   0.2500   0.5000   1.0000

U =

   4   8   4   8
   0   2   2   0
   0   0   0   2

In [63]:
B = [4 8 8; 2 6 4; 1 3 4]
B =

   4   8   8
   2   6   4
   1   3   4

In [64]:
[L U]=lu(B)
L =

   1.0000        0        0
   0.5000   1.0000        0
   0.2500   0.5000   1.0000

U =

   4   8   8
   0   2   0
   0   0   2

In [65]:
C=[1 2; 2 6]
C =

   1   2
   2   6

In [66]:
% Az LU-felbontásbeli L mátrix 
[L U] = lu(C)

L =

   0.5000   1.0000
   1.0000        0

U =

   2   6
   0  -1

In [67]:
L*U
ans =

   1   2
   2   6

Kód a 134. oldalról (lu() egy kimenettel)¶

In [68]:
A = [4 1 2; 2 4 1; 1 2 4]
A =

   4   1   2
   2   4   1
   1   2   4

In [69]:
lu(A)
ans =

   4.0000   1.0000   2.0000
   0.5000   3.5000        0
   0.2500   0.5000   3.5000

In [70]:
[L U] = lu(A)
L =

   1.0000        0        0
   0.5000   1.0000        0
   0.2500   0.5000   1.0000

U =

   4.0000   1.0000   2.0000
        0   3.5000        0
        0        0   3.5000

3.22. PLU-felbontás¶

In [71]:
A = [-1  6 1 -7  4
      1  4 4 -7  5
      4 -8 4  8 -4
      3 -6 8  6 -8];
[L U P] = lu(A)




L =

   1.0000        0        0        0
   0.2500   1.0000        0        0
   0.7500        0   1.0000        0
  -0.2500   0.6667        0   1.0000

U =

   4  -8   4   8  -4
   0   6   3  -9   6
   0   0   5   0  -5
   0   0   0   1  -1

P =

Permutation Matrix

   0   0   1   0
   0   1   0   0
   0   0   0   1
   1   0   0   0

In [72]:
P'*L*U  % A == P'*L*U
ans =

  -1   6   1  -7   4
   1   4   4  -7   5
   4  -8   4   8  -4
   3  -6   8   6  -8

In [73]:
A == P'*L*U
ans =

  1  1  1  1  1
  1  1  1  1  1
  1  1  1  1  1
  1  1  1  1  1

4.6. Determináns kiszámítása¶

In [74]:
a = [2 2 -3;2 2 -4;4 5 -6]
a =

   2   2  -3
   2   2  -4
   4   5  -6

In [75]:
det(a)
ans = 2

4.14. Vandermonde-determináns¶

In [76]:
vander([2 3 4])
ans =

    4    2    1
    9    3    1
   16    4    1

In [77]:
fliplr(ans) %left -> right
ans =

    1    2    4
    1    3    9
    1    4   16

In [78]:
ans'  % transzponált
ans =

    1    1    1
    2    3    4
    4    9   16

In [79]:
det(ans)
ans = 2.0000

6.1. Sajátérték, sajátaltér¶

In [80]:
A = [2 1; 0 2]
A =

   2   1
   0   2

In [81]:
% sajátértékek
eig(A)

ans =

   2
   2

In [82]:
% 2-höz tartozó sajátalteret kifeszítő vektor
null(A - 2*eye(2))

ans =

  -1
   0

Sajátaltér meghatározása

In [83]:
A = [3 1 0; 0 3 0; 0 0 3]
eig(A)
A =

   3   1   0
   0   3   0
   0   0   3


ans =

   3
   3
   3

In [84]:
% a 3-hoz tartozó sajátalteret kifeszítő vektorok
% az alábbi mátrix oszlopai
null(A - 3*eye(3))


ans =

  -1   0
   0   0
   0   1

6.2. Sajátérték, sajátvektor¶

In [85]:
A = [1 2 2; 2 1 2; 3 3 2]
[C L] = eig(A)
A =

   1   2   2
   2   1   2
   3   3   2


C =

  -0.8111   0.4851   0.6011
   0.3244   0.4851  -0.7791
   0.4867   0.7276   0.1781

L =

Diagonal Matrix

  -1   0   0
   0   6   0
   0   0  -1

In [86]:
pkg load symbolic
A = sym(A)
[C L] = eig(A)

Symbolic pkg v3.0.1: Python communication link active, SymPy v1.11.1.
A = (sym 3×3 matrix)

  ⎡1  2  2⎤
  ⎢       ⎥
  ⎢2  1  2⎥
  ⎢       ⎥
  ⎣3  3  2⎦


C = (sym 3×3 matrix)

  ⎡-1  -1  2/3⎤
  ⎢           ⎥
  ⎢1   0   2/3⎥
  ⎢           ⎥
  ⎣0   1    1 ⎦

L = (sym 3×3 matrix)

  ⎡-1  0   0⎤
  ⎢         ⎥
  ⎢0   -1  0⎥
  ⎢         ⎥
  ⎣0   0   6⎦

6.3. Sajátérték, sajátvektor 2¶

In [87]:
a = 4*eye(3) + diag([1 1], 1)
a =

   4   1   0
   0   4   1
   0   0   4

In [88]:
[c l] = eig(a)
c =

   1.0000  -1.0000   1.0000
        0   0.0000  -0.0000
        0        0   0.0000

l =

Diagonal Matrix

   4   0   0
   0   4   0
   0   0   4

In [89]:
null(a - 4*eye(3))
ans =

   1
   0
   0

6.15. Jordan-láncok, Jordan-felbontás (1 Jordan-lánc)¶

In [90]:
A = [ 6 -1 -3
     -1  5  2
      2 -1  1]
[X L] = eig(A)


A =

   6  -1  -3
  -1   5   2
   2  -1   1


X =

  -0.5773 + 0.0000i  -0.5773 - 0.0000i  -0.5774 +      0i
   0.5774 +      0i   0.5774 -      0i   0.5773 +      0i
  -0.5773 + 0.0000i  -0.5773 - 0.0000i  -0.5774 +      0i

L =

Diagonal Matrix

   4.0000 + 0.0000i                  0                  0
                  0   4.0000 - 0.0000i                  0
                  0                  0   4.0000 +      0i

In [91]:
pkg load symbolic
A = sym(A)
[X J] = jordan(A)

A = (sym 3×3 matrix)

  ⎡6   -1  -3⎤
  ⎢          ⎥
  ⎢-1  5   2 ⎥
  ⎢          ⎥
  ⎣2   -1  1 ⎦


X = (sym 3×3 matrix)

  ⎡-1  2   1⎤
  ⎢         ⎥
  ⎢1   -1  0⎥
  ⎢         ⎥
  ⎣-1  2   0⎦

J = (sym 3×3 matrix)

  ⎡4  1  0⎤
  ⎢       ⎥
  ⎢0  4  1⎥
  ⎢       ⎥
  ⎣0  0  4⎦

6.16. Jordan-láncok, Jordan-felbontás (2 Jordan-lánc)¶

In [92]:
pkg load symbolic
A = [2 -3  2
     4 10 -4
     4  6  0];
A = sym(A)




A = (sym 3×3 matrix)

  ⎡2  -3  2 ⎤
  ⎢         ⎥
  ⎢4  10  -4⎥
  ⎢         ⎥
  ⎣4  6   0 ⎦

In [93]:
[X L] = eig(A);
X

X = (sym 3×3 matrix)

  ⎡-3/2  1  -3/2⎤
  ⎢             ⎥
  ⎢ 1    0   1  ⎥
  ⎢             ⎥
  ⎣ 0    1   0  ⎦

In [94]:
[X J] = jordan(A)
X = (sym 3×3 matrix)

  ⎡-2  1  -3/2⎤
  ⎢           ⎥
  ⎢4   0   1  ⎥
  ⎢           ⎥
  ⎣4   0   0  ⎦

J = (sym 3×3 matrix)

  ⎡4  1  0⎤
  ⎢       ⎥
  ⎢0  4  0⎥
  ⎢       ⎥
  ⎣0  0  4⎦

7.11. Pszeudoinverz¶

In [95]:
B = [0 1; 1 1; 1 0]
pinv(B)
B =

   0   1
   1   1
   1   0


ans =

  -0.3333   0.3333   0.6667
   0.6667   0.3333  -0.3333

7.20. QR-felbontás¶

In [96]:
A = [1 3 6; 1 -1 2; 1 3 2; 1 -1 -2]
[q r] = qr(A)
A =

   1   3   6
   1  -1   2
   1   3   2
   1  -1  -2


q =

  -0.5000   0.5000   0.5000   0.5000
  -0.5000  -0.5000   0.5000  -0.5000
  -0.5000   0.5000  -0.5000  -0.5000
  -0.5000  -0.5000  -0.5000   0.5000

r =

  -2  -2  -4
   0   4   4
   0   0   4
   0   0   0

In [97]:
Q = q; Q(:,1) = -Q(:,1)
Q =

   0.5000   0.5000   0.5000   0.5000
   0.5000  -0.5000   0.5000  -0.5000
   0.5000   0.5000  -0.5000  -0.5000
   0.5000  -0.5000  -0.5000   0.5000

In [98]:
R = r; R(1,:) = -R(1,:)
R =

   2   2   4
   0   4   4
   0   0   4
   0   0   0

8.1. Schur-felbontás¶

In [99]:
A = [13 -16; 9 -11]
[X Y]=schur(A)
A =

   13  -16
    9  -11


X =

   0.8000  -0.6000
   0.6000   0.8000

Y =

    1  -25
    0    1

9.3. Vektornormák¶

In [100]:
v = [3 -4]
v =

   3  -4

In [101]:
norm(v)
ans = 5
In [102]:
norm(v, 1)
ans = 7
In [103]:
norm(v, 'inf')
ans = 4
In [104]:
w = [3 4 5]
w =

   3   4   5

In [105]:
norm(w, 3)
ans = 6

9.4. Mátrixnormák¶

In [106]:
A = [2 -2; 1 2]
A =

   2  -2
   1   2

In [107]:
norm(A)        % 2-norma
ans = 3
In [108]:
svd(A)         % 2-norma = sigma_1
ans =

   3
   2

In [109]:
norm(A, 1)     % 1-norma
ans = 4
In [110]:
norm(A, 'inf') % oo-norma
ans = 4
In [111]:
norm(A, 'fro') % Frobenius-norma
ans = 3.6056
In [112]:
sqrt(13)
ans = 3.6056

9.7. Kondíciószám¶

In [113]:
a=[6.73 -8.97
   4.79 -6.39]

a =

   6.7300  -8.9700
   4.7900  -6.3900

In [114]:
cond(a)   % 2-normában
ans = 4935.7
In [115]:
cond(a,1) % 1-normában
ans = 6280.0

11.3. A mod függvény¶

In [116]:
mod(13, 5)  % maradék
ans = 3
In [117]:
mod(-13, 5)
ans = 2
In [118]:
fix(13/5)   % egészosztás
ans = 2

11.8. Komplex számok¶

In [119]:
z = 3 - i   % i = sqrt(-1)
w = 2 + j   % j = sqrt(-1)
z =  3 - 1i

w =  2 + 1i
In [120]:
z * w
ans =  7 + 1i
In [121]:
z / w
ans =  1 - 1i
In [122]:
z^2
ans =  8 - 6i
In [123]:
z = 3 + 4i;
abs(z)   % abszolút érték

ans = 5
In [124]:
arg(i)   % = pi/2
ans = 1.5708
In [125]:
pi/2
ans = 1.5708
In [ ]: