MNNE:Algebra

Z Skrypty dla studentów Ekonofizyki UPGOW

(Różnice między wersjami)
(Wektory)
(Ortogonalizacja Grama-Schmidta)
Linia 63: Linia 63:
</source>
</source>
 +
 +
<source="matlab">
 +
phi=linspace(0, 2*pi, 30);
 +
 +
X=cos(phi);
 +
Y=sin(phi);
 +
 +
A=[X; Y];
 +
 +
plot(A(1,:),A(2,:),'bo');
 +
hold on
 +
B=rand(2);
 +
B=B+B'
 +
A=B*A;
 +
plot(A(1,:),A(2,:),'ro');
 +
 +
[E,v]=eig(B)
 +
 +
quiver([0,0],[0,0], E(1,:), E(2,:), 0,'g')
 +
 +
hold off
 +
 +
xlim([-3,3])
 +
ylim([-3,3])
 +
</source>
 +
 +
<source="matlab">
 +
[phi,theta]=meshgrid (linspace(0, 2*pi, 30), linspace(0,pi,20) );
 +
 +
X=sin(theta).*cos(phi);
 +
Y=sin(theta).*sin(phi);
 +
Z=cos(theta);
 +
X=reshape(X,[prod(size(X)),1]) ;
 +
Y=reshape(Y,[prod(size(Y)),1]) ;
 +
Z=reshape(Z,[prod(size(Z)),1]) ;
 +
 +
A=[X Y Z]';
 +
 +
plot3(A(1,:),A(2,:),A(3,:),'bo');
 +
hold on
 +
B=rand(3);
 +
A=B*A;
 +
plot3(A(1,:),A(2,:),A(3,:),'ro');
 +
 +
quiver3([0,0,0],[0,0,0],[0,0,0], E(1,:), E(2,:), E(3,:), 0,'g')
 +
 +
hold off
 +
 +
xlim([-1,1])
 +
ylim([-1,1])
 +
zlim([-1,1])
 +
</source>
  Ćwiczenia:  
  Ćwiczenia:  

Wersja z 22:47, 24 lut 2011

Spis treści

Literatura

[1]

Wektory

Wektor w przestrzeni euklidesowej N wymiarowej jest reprezentowany przez N liczb. Iloczyn skalarny dwóch wektorów \(\mathbf a\) oraz \(\mathbf b\) o oznaczany symbolem \(\mathbf a \cdot \mathbf b\) określony jest jako:

\(\mathbf a \cdot \mathbf b = \sum_{i=1}^{N}a_i b_i\),

gdzie \(a_i\) to i-ty element wektora a. Można pokazać, że iloczyn ten jest też dany przez

\(\mathbf a \cdot \mathbf b = \|\mathbf a\| \|\mathbf b\| \cos \theta\),

gdzie \(\theta\) jest kątem między \(\mathbf a\) a \(\mathbf b\).

Jeśli jeden wektorów jest wektorem o długości jeden to mnoże go przez dowolny inny wektor może być interpretowane jako rzutowanie na kierunek wyznaczony przez pierwszy wektor.

Baza

Zmiana bazy

Zmiana bazy i iloczyn skalarny

Mamy \((x,y)=\sum_{i=1}^{N}x_i y_j\)

b1=[1;1;1]
b2=[1;0;1]
b3=[1;0;-1]
C=[b1,b2,b3]
C'*C
M=[b1'*b1,b1'*b2,b1'*b3;b2'*b1,b2'*b2,b2'*b3;b3'*b1,b3'*b2,b3'*b3]

Ortogonalizacja Grama-Schmidta

Operator rzutowania ortogonalnego wektora \(\mathbf{v}\) na wektor \(\mathbf{u}\) definiujemy jako: \[\mathrm{proj}_{\mathbf{u}}\,\mathbf{v} = {\langle \mathbf{v}, \mathbf{u}\rangle\over\langle \mathbf{u}, \mathbf{u}\rangle}\mathbf{u}. \]

Wówczas dla układu k wektorów \(\{\mathbf{v}_1, \ldots,\mathbf{v}_k\}\) proces przebiega następująco: \[\mathbf{u}_1 = \mathbf{v}_1,\] \[\mathbf{u}_2 = \mathbf{v}_2-\mathrm{proj}_{\mathbf{u}_1}\,\mathbf{v}_2, \] \[\mathbf{u}_3 = \mathbf{v}_3-\mathrm{proj}_{\mathbf{u}_1}\,\mathbf{v}_3-\mathrm{proj}_{\mathbf{u}_2}\,\mathbf{v}_3, \] \[\vdots\] \[\mathbf{u}_k = \mathbf{v}_k-\sum_{j=1}^{k-1}\mathrm{proj}_{\mathbf{u}_j}\,\mathbf{v}_k, \]


Grama-Schmidt


e1=b1
e2=b2-(e1'*b2)/(e1'*e1)*e1
e3=b3-( (e1'*b3)/(e1'*e1)*e1 + (e2'*b3)/(e2'*e2)*e2 )
E=[e1,e2,e3]
quiver3([0,0,0],[0,0,0],[0,0,0], C(1,:), C(2,:), C(3,:), 0,'r')
hold on
quiver3([0,0,0],[0,0,0],[0,0,0], E(1,:), E(2,:), E(3,:), 0,'b')
xlim([-1,1])
ylim([-1,1])
zlim([-1,1])
hold off


<source="matlab"> phi=linspace(0, 2*pi, 30);

X=cos(phi); Y=sin(phi);

A=[X; Y];

plot(A(1,:),A(2,:),'bo'); hold on B=rand(2); B=B+B' A=B*A; plot(A(1,:),A(2,:),'ro');

[E,v]=eig(B)

quiver([0,0],[0,0], E(1,:), E(2,:), 0,'g')

hold off

xlim([-3,3]) ylim([-3,3]) </source>

<source="matlab"> [phi,theta]=meshgrid (linspace(0, 2*pi, 30), linspace(0,pi,20) );

X=sin(theta).*cos(phi); Y=sin(theta).*sin(phi); Z=cos(theta); X=reshape(X,[prod(size(X)),1]) ; Y=reshape(Y,[prod(size(Y)),1]) ; Z=reshape(Z,[prod(size(Z)),1]) ;

A=[X Y Z]';

plot3(A(1,:),A(2,:),A(3,:),'bo'); hold on B=rand(3); A=B*A; plot3(A(1,:),A(2,:),A(3,:),'ro');

quiver3([0,0,0],[0,0,0],[0,0,0], E(1,:), E(2,:), E(3,:), 0,'g')

hold off

xlim([-1,1]) ylim([-1,1]) zlim([-1,1]) </source>

Ćwiczenia: 
  • obliczyć współrzędne wektora \(a=(1,2,3)\) w bazie \((e_1+e_2...\)
  • obliczyc rząd macierzy