From veky@student.math.hr Sun Dec 14 16:30:17 2003
Subject: Re: Tocke na pravcu?
Lines: 141
Message-ID: <slrnbtouo4.ftk.veky@student.math.hr>
References: <brhibc$th2$1@ls219.htnet.hr>

In article <brhibc$th2$1@ls219.htnet.hr>, w3r3w0lf wrote:
>Kako odrediti da li 3 tocke leze na istom pravcu?

[lesson title="3 tocke kolinearne?"]
Uzmes ravnalo, povuces pravac i vidis. :-)

No dobro, pretpostavljam da pricas analiticki, odnosno da imas
koordinate tocaka, te trebas nesto racunati s njima. U tom slucaju
vjerujem da ces dobiti hrpetinu odgovora s jednadbama pravca, 
ciji ce autori vjerojatno svi do jednoga zaboraviti na slucaj kad
su dvije (ili sve tri) tocke okomite jedna na drugu... :-b

pa cu ja pokusati biti malo originalniji.
Za pocetak, pretpostavimo da pricas o tockama u ravnini. Ako ih imas
zadane s vise koordinata, neke stvari koje cu reci ti takoder mogu
pomoci, iako ces trebati mozda malo vise pisati (ovisno o tome koliko
si apstraktni tip:). No cisto teoretski, svejedno je... u kakvom god 
linearnom prostoru se nalazile, tri tocke nikad ne mogu razapeti vise
od ravnine - odnosno, uvijek mozes naci ravninu u kojoj leze sve tri.
Kako se to prakticno radi, vec je tema za neki drugi lesson...
no i ovdje imas dovoljno hintova.

Dakle, tri tocke, (x1,y1),(x2,y2),(x3,y3) . Prvo nam trebaju tri 
"genericke" tocke koje nisu na istom pravcu... naravno, prvo nam
na pamet padaju O=(0,0), E1=(1,0) i E2=(0,1) . Te tri tocke, na
kraju krajeva, defaultno razapinju x-y ravninu u kojoj se nalazimo.
Ako je shvatimo kao vektorski prostor, tada dva vektora koja te
tri tocke cine, OE1=(1,0)-(0,0)=(1,0)=i. & OE2=(0,1)-(0,0)=(0,0)=j. ,
tvore kanonsku bazu za taj prostor.

"Baza" znaci da je _skup izvodnica_ (tj. za svaki vektor u toj ravnini
postoji bar jedan njegov zapis kao linearna kombinacija i. i j. ), 
i da je _nezavisan_ (za svaki vektor u toj ravnini postoji najvise jedan
njegov zapis kao linearna kombinacija i. i j. - ovo se obicno kaze u 
malo drugacijem obliku: buduci da za nulvektor zapis sigurno postoji:
0i.+0j. ; nezavisnost se moze karakterizirati (oduzimanjem svevsi na 
nulvektor) kao cinjenica da se nulvektor ne moze zapisati ni na koji 
drugi nacin kao linearna kombinacija i. i j. ).

Naravno, dokazati nezavisnost od i. i j. je prilicno trivijalno
    ( 0_2 = (0,0) = a i. + b j. = a (1,0) + b (0,1) = 
	= (a,0)+(0,b) = (a,b) => a=b=0 ), 
no to nam daje i opcenitu metodu.
So, shvatimo jednu od gornje tri tocke (npr. (x1,y1) ) kao ishodiste,
i pogledajmo vektore koje iz nje tvore ostale dvije. Naravno, to su
i':=(x2-x1,y2-y1) i j':=(x3-x1,y3-y1) .

Sad, ako su te tri tocke na istom pravcu, vektori i' i j' ce imati isti
pravac nositelj, i sigurno ce se jedan moci izraziti kao drugi puta neki
skalar. No tad je jasno (prebacimo sve na jednu stranu) da imamo prikaz
nulvektora kao linearne kombinacije njih dvojice, s koeficijentima od
kojih je jedan jednak 1 , 
pa nije gornjeg oblika ( 0i'+0j' ). Dakle, i' i j' nisu nezavisni.
S druge strane, ako te tri tocke _nisu_ na istom pravcu, 
linearno ce biti
u istom medusobnom odnosu kao i O , E1 i E2 - odnosno, razapinjat ce
cijelu ravninu. Vektori i' i j' ce tada biti takoder u istom odnosu kao
i i. i j. , odnosno, bit ce linearno nezavisni.

Vidimo da se sve svodi na (ne)zavisnost od i' i j' , odnosno na
(ne)cuvanje nezavisnosti prilikom prebacivanja s i. i j. na i' i j' .
Pokusajmo to prebacivanje interpretirati u math-stilu. Ako promatramo 
preslikavanje koje preslikava i.|->i' & j.|->j' , tad ga mozemo i na
svim ostalim vektorima definirati (jedinstveno) tako da cuva linearnu 
kombinaciju (uzmem vektor, 
prikazem ga (na jedinstven nacin - gle definiciju baze) 
kao linearnu kombinaciju ai.+bj. , i u njoj zamijenim ono sto moram.
Dobijem ai'+bj' , sto je slika pocetnog vektora). 
Preslikavanje na vektorskom
prostoru koje cuva linearnu kombinaciju zove se _linearni operator_,
i moze se zapisati kao matrica, s tim da ako se vektori shvate kao 
stupci, djelovanje tog operatora na neki vektor je upravo mnozenje
pripadnog stupca tom matricom.

U nasem primjeru, covjek zeli (x,y) preslikati ovako:
(x,y)=xi.+yj.|->xi'+yj'=x(x2-x1,y2-y1)+y(x3-x1,y3-y1)=
=(x(x2-x1),x(y2-y1))+(y(x3-x1),y(y3-y1))=
=(x(x2-x1)+y(x3-x1),x(y2-y1)+y(y3-y1)) , pa je jasno da treba stupac
[ x ] pomnoziti (slijeva) matricom A:=[ x2-x1 y2-y1 ] , odnosno
[ y ]                                 [ y2-y1 y3-y1 ] 
A je matrica tog linearnog operatora (primijetimo da su stupci od
A upravo vektori i' i j' , uz gornje shvacanje vektora kao stupaca).

Super. E sad, ako su one tri genericke tocke s pocetka i nase tri tocke
toliko ravnopravne, tada ocito mozemo ici i u suprotnom smjeru - samo
treba i' i j' shvatiti kao bazu. Zapravo, "ako i samo ako" - jer ako
te tri tocke leze na istom pravcu, svaka vrijednost koju nam A dade ce
kao linearna kombinacija i' i j' lezati na tom istom pravcu, te ce
"matrica unatrag" biti samo 1x1 , i nece nikako moci dati 
polaznu cijelu ravninu.

Sto znaci "u suprotnom smjeru"? Pa, gore pise glimpse... ako taj
operator nazovemo _inverzom_ ovog dosad promatranog, 
a njegovu matricu oznacimo s A^- , htjeli bismo da 
na bilo koji vektor v , kad djelujemo prvo s A pa onda s A^- 
(u mathu se kaze, djelujemo kompozicijom A^- o A ), dobijemo
ponovo vektor v . Dakle, A^- A je operator (ocito linearan:) koji svaki
vektor ostavlja na miru. Takav se zove identiteta, a njegova matrica
oznacava se s I . Kompoziciji linearnih operatora odgovara mnozenje
matrica (zato i jest tako "komplicirano" definirano:), 
dakle, A^- . A = I .
Sjajno. Zakljucak: stvar smo uspjeli svesti na postojanje tzv. inverza
matrice A , koja je pomocu koordinata koje imamo izrazena gore.

Sad se idemo baciti na trazenje matrice I , i matrice A^- .
I je lako... ona preslikava i.|->i. & j.|->j. , pa ima u stupce
poslozene upravo te vektore, 
odnosno jednaka je [ 1 0 // 0 1 ] ( "//" je novi red:).
A^- ... ne znamo nista o komponentama, 
ali znamo da je 2x2 ... ako komponente
od A oznacimo redom s a , b , c i d 
(ne da mi se pisat one silne razlike xeva i ya ), 
promotrimo za pocetak matricu
A^~~=[d -b] . Buduci da je A=[a b], njihov umnozak je
    [-c a]                  [c d]
A^~~.A=[d -b].[a b]=[da-bc  db-bd ]=[ad-bc 0]=(ad-bc)[1 0]=(ad-bc)I
      [-c a] [c d] [-ac+ca -cb+ad] [0 ad-bc]        [0 1]          .

Dakle, kad bismo podijelili A^~~ s ad-bc (broj koji se inace zove
determinanta matrice A ), dobili bismo A^- . 
Dakako, uvjet da to mozemo napraviti je ad-bc!=0 .
S druge strane, ako su vektori i' i j' zavisni 
(primijetimo da je i'=(a,c) & j'=(b,d) - stupci matrice A ), 
tad se jedan moze izraziti kao neki k puta
drugi... svejedno koji. Recimo i' = k j' . Iz toga a=kb & c=kd , 
pa je ad-bc=kbd-bkd=0 .

Etoga. Uvjet smo sveli na racunanje izraza ad-bc , 
za a:=x2-x1 , b:=x3-x1 ,
c:=y2-y1 , d:=y3-y1 (odnosno, determinante matrice A ). 
Ako je taj izraz jednak nuli, tocke su na istom pravcu. Inace nisu.

Moguce je jos malo tweakati tu stvar, ako znas za determninante 3x3...
    ad-bc=(x2-x1)(y3-y1)-(x3-x1)(y2-y1)=
    =x2y3-x2y1-x1y3+x1y1-x3y2+x3y1+x1y2-x1y1=
    =(x1y2-x2y1)-(x1y3-x3y1)+(x2y3-x3y2)=
    =1*det[x1 x2//y1 y2]-1*det[x1 x3//y1 y3]+1*det[x2 x3//y2 y3]=
			     [  1  1  1 ]    [1 x1 y1]
    (*Laplace, 1. redak*)=det[ x1 x2 x3 ]=det[1 x2 y2] .
			     [ y1 y2 y3 ]    [1 x3 y3]

Mozda prepoznajes dio formule za povrsinu trokuta u ravnini, zadanog
koordinatama vrhova... sto uopce nije cudno.
Naime, tri tocke su)na istom pravcu akko je povrsina trokuta omedenog
njima jednaka nuli. ;-)
[/lesson]

Znam da sam zakomplicirao... that was intended :-).
Mozda ovamo svrati neki brucos s matha do sutra ujutro, kad je
kolokvij iz linearne... ;-...

-- 
Veky         ... da nisu bas sve kao ja ...