Z Skrypty dla studentów Ekonofizyki UPGOW
Spis treści[ukryj] |
Literatura
- NUMERICAL LINEAR ALGEBRA Lloyd N. Trefethen and David Bau, III
- Tutorial
- wikibooks.org/wiki/GNU_Octave
Wektory
Wektor w przestrzeni euklidesowej N wymiarowej jest reprezentowany przez N liczb. Iloczyn skalarny dwóch wektorów 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
Wartości i wektory własne
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
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])
[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])
Ćwiczenia:
- obliczyć współrzędne wektora a=(1,2,3) w bazie (e_1+e_2...
- obliczyc rząd macierzy