Lineaarialgebra

Ominaisarvot ja -vektorit

Seuraavassa on 2x2-matriisin määräämän lineaarikuvausten ominaisarvojen ja ominaisvektorien visualisointi. Siinä on päällekkäin toisaalta taso R2, toisaalta ominaisarvoja varten kompleksitaso. Reaaliset ominaisarvot ovat siis luonnollisesti vaaka-akselilla.

Voit kokeilla konkreettisilla 2x2-matriisella valitsemalla luvut aij (tässä a, b, c, d) sopiviksi liukuvalinnoilla. Sopivin tempuin ominaisarvot ja -vektoritkin saa selville.
Huomaa, että taulun alkutilassa ominaisarvot ovat ei-reaalisia, jolloin myös ominaisvektorit ovat ei-reaalisia ja siten ne eivät kuviosta selviä!


${ Ominaisarvot ja -vektorit $} #CODE="GSP.class" #CODEBASE = "../jsp" #ARCHIVE="jsp4.jar" #WIDTH = 500 #HEIGHT= 520 #ALIGN=Center *MeasureFont = "CourierNew" *MeasureSize = 14 *MeasureBold = 1 *MeasureItalic = 0 *MeasureInDegrees = 1 *DirectedAngles = 0 *BackRed = 240 *BackGreen = 255 *BackBlue = 255 $Clear FixedText(465,513,'Clear trace x ->')[plain, font('Courier'), bold, justifyRight, red,hidden]; $reset FixedText(490,485,'Reset = ''R''')[plain, font('Courier'), bold, justifyRight, red]; ${ Bracket macros $} $( Left Bracket(upper,lower) $!uptr Translation($upper,5,0)[hidden]; $!lotr Translation($lower,5,0)[hidden]; Segment($upper,$uptr)[black]; Segment($lower,$lotr)[black]; Segment($upper,$lower)[black]; $) $( Right Bracket(upper,lower) $!uptr Translation($upper,-5,0)[hidden]; $!lotr Translation($lower,-5,0)[hidden]; Segment($upper,$uptr)[black]; Segment($lower,$lotr)[black]; Segment($upper,$lower)[black]; $) ${ The matrix brackets $} $LuppA FixedPoint(260,25)[hidden]; $LlowA FixedPoint(260,75)[hidden]; $LBrA Left Bracket($LuppA,$LlowA)[black,hidden]; $RuppA FixedPoint(360,25)[hidden]; $RlowA FixedPoint(360,75)[hidden]; $RBrA Right Bracket($RuppA,$RlowA)[black,hidden]; $Luppu FixedPoint(365,25)[hidden]; $Llowu FixedPoint(365,75)[hidden]; $LBru Left Bracket($Luppu,$Llowu)[red,hidden]; $Ruppu FixedPoint(410,25)[hidden]; $Rlowu FixedPoint(410,75)[hidden]; $RBru Right Bracket($Ruppu,$Rlowu)[red,hidden]; $LuppAu FixedPoint(440,25)[hidden]; $LlowAu FixedPoint(440,75)[hidden]; $LBrAu Left Bracket($LuppAu,$LlowAu)[blue,hidden]; $RuppAu FixedPoint(490,25)[hidden]; $RlowAu FixedPoint(490,75)[hidden]; $RBrAu Right Bracket($RuppAu,$RlowAu)[blue,hidden]; $ULeq FixedPoint(420,47)[hidden]; $UReq FixedPoint(430,47)[hidden]; $LLeq FixedPoint(420,53)[hidden]; $LReq FixedPoint(430,53)[hidden]; $EQup Segment($ULeq,$UReq)[white,hidden]; $EQlo Segment($LLeq,$LReq)[white,hidden]; ${ The Real Line $} $RO FixedPoint(250,500)[black,label('0')]; $Ref Translation($RO,25,0)[hidden]; $Ray Ray($Ref,$RO)[black,hidden]; $Rykk Point on object($Ray,1)[yellow,label('1'),hidden]; $Rvaleykk FixedPoint(275,500)[black,label('1')]; $RL Line($Rykk,$RO)[black]; $Rpta Point on object($RL,-2)[label('a'),color(190,150,0)]; $Rptb Point on object($RL,4)[label('b'),color(65,125,200)]; $Rptc Point on object($RL,-1)[label('c'),color(65,125,200)]; $Rptd Point on object($RL,-4)[label('d'),color(190,150,0)]; $LUpp FixedPoint(0,486)[hidden]; $LLow FixedPoint(0,520)[hidden]; $RLow FixedPoint(500,520)[hidden]; $RUpp FixedPoint(500,486)[hidden]; $RectA Polygon($LUpp,$LLow,$RLow,$RUpp,$LUpp)[yellow]; ${ The Plane Coordinate System $} $O FixedPoint(250,250)[yellow,label('0')]; $ykk FixedPoint(275,250)[white,label('1')]; $unitp UnitPoint($O,25)[hidden]; $coord Origin&Unit($O,$unitp)[black, hidden]; $SBcoord ShowButton(390,225,'Show grid')($coord)[black,bold]; $HBcoord HideButton(460,225,'Hide')($coord)[black]; $hor AxisX($coord)[black]; $vert AxisY($coord)[hidden]; $start FixedPoint(250,485)[hidden]; $vertsh Ray($O,$start)[black]; ${ Calculations $} $Ra Ratio/Points($RO,$Rykk,$Rpta,270,45,'')[color(190,150,0),hidden]; $Rb Ratio/Points($RO,$Rykk,$Rptb,320,45,'')[color(65,125,200),hidden]; $Rc Ratio/Points($RO,$Rykk,$Rptc,270,67,'')[color(65,125,200),hidden]; $Rd Ratio/Points($RO,$Rykk,$Rptd,320,67,'')[color(190,150,0),hidden]; $u Point(275,270)[red, label('u')]; $ucoord Coordinates($u,$coord,100,100,'')[hidden]; $xval Calculate(370,45,'','#A1')($ucoord)[red,hidden]; $yval Calculate(370,67,'','#A2')($ucoord)[red,hidden]; $utr PlotXY($yval,$coord,$xval)[red,traced,hidden]; $xLu Calculate(445,45,'','A C * B D * +')($Ra,$Rb,$xval,$yval)[blue,hidden]; $yLu Calculate(445,67,'','A C * B D * +')($Rc,$Rd,$xval,$yval)[blue,hidden]; $Lu PlotXY($yLu,$coord,$xLu)[blue,label('L(u)')]; $Lutr PlotXY($yLu,$coord,$xLu)[blue,label('L(u)'),traced,hidden]; $detA Calculate(260,95,'det(A) = ','A D * B C * -')($Ra,$Rb,$Rc,$Rd)[color(255,130,0),hidden]; $trA Calculate(396,95,' tr(A) = ','A D +')( $Ra,$Rb,$Rc,$Rd)[color(190,150,0),hidden]; $X Calculate(325,165,'X = ','A D + 0.5 *')( $Ra,$Rb,$Rc,$Rd)[yellow,hidden]; $Y Calculate(325,190,'Y = ','AA* AD*2* - DD* + BC* 4* +')($Ra,$Rb,$Rc,$Rd)[yellow,hidden]; $Z1 Calculate(260,118,'E1 = eig(A) = ','B @abs_ B + 0.5 * @sqrt 0.5 * A +')($X,$Y)[color(70,190,200),hidden]; $Z2 Calculate(375,118,' + i * ','B @abs_ B - 0.5 * @sqrt 0.5 *')($X,$Y)[color(70,190,200),hidden]; $U1 Calculate(260,142,'E2 = eig(A) = ','A B @abs_ B + 0.5 * @sqrt 0.5 * -')($X,$Y)[color(0,170,0),hidden]; $U2 Calculate(375,142,' + i * ','0 B @abs_ B - 0.5 * @sqrt 0.5 * -')($X,$Y)[color(0,170,0),hidden]; $EIG1 PlotXY($Z2,$coord,$Z1)[color(70,190,200),label('E1')]; $EIG2 PlotXY($U2,$coord,$U1)[color(0,170,0),label('E2')]; $EIG1tr PlotXY($Z2,$coord,$Z1)[color(70,190,200),label('E1'),traced,hidden]; $EIG2tr PlotXY($U2,$coord,$U1)[color(0,170,0),label('E2'),traced,hidden]; $SE1E2 Segment($EIG1,$EIG2)[yellow]; $SBtrE1 ShowButton(0,405,'Trace eigenvalues')($EIG1tr,$EIG2tr,$Clear)[black]; $HBtrE2 HideButton(0,425,'Stop tracing')($EIG1tr,$EIG2tr)[black]; ${ $SBA ShowButton( 305, 0,'A')($Ra,$Rb,$Rc,$Rd,$LBrA,$RBrA)[black,hidden]; $SBu ShowButton( 380, 0,'u')($xval,$yval,$LBru,$RBru)[red,hidden]; $SBAu ShowButton( 450, 0,'A u')($EQup,$EQlo,$xLu,$yLu,$LBrAu,$RBrAu)[blue,hidden]; $SBRep ShowButton( 175, 0,'Representation of L')($SBA,$SBu,$SBAu,$Ra,$Rb,$Rc,$Rd,$LBrA,$RBrA,$xval,$yval,$LBru,$RBru,$EQup,$EQlo,$xLu,$yLu,$LBrAu,$RBrAu,$detA,$trA,$Z1,$Z2,$U1,$U2)[blue]; $HBRep HideButton( 175,20,'Hide all')( $SBA,$SBu,$SBAu,$Ra,$Rb,$Rc,$Rd,$LBrA,$RBrA,$xval,$yval,$LBru,$RBru,$EQup,$EQlo,$xLu,$yLu,$LBrAu,$RBrAu,$detA,$trA,$Z1,$Z2,$U1,$U2)[blue]; $} $Atext FixedText(315,15,'A')[plain, font('Helvetica'), bold, justifyRight, black,hidden]; $utext FixedText(390,15,'u')[plain, font('Helvetica'), bold, justifyRight, red,hidden]; $Autext FixedText(470,15,'Au')[plain, font('Helvetica'), bold, justifyRight, blue,hidden]; $SBRep ShowButton( 175, 0,'Representation of L')($Atext,$utext,$Autext,$Ra,$Rb,$Rc,$Rd,$LBrA,$RBrA,$xval,$yval,$LBru,$RBru,$EQup,$EQlo,$xLu,$yLu,$LBrAu,$RBrAu,$detA,$trA,$Z1,$Z2,$U1,$U2)[blue]; $HBRep HideButton( 175,20,'Hide all')( $Atext,$utext,$Autext,$Ra,$Rb,$Rc,$Rd,$LBrA,$RBrA,$xval,$yval,$LBru,$RBru,$EQup,$EQlo,$xLu,$yLu,$LBrAu,$RBrAu,$detA,$trA,$Z1,$Z2,$U1,$U2)[blue]; ${ Segments $} $SOu Segment($O,$u)[red,thick]; $SLu Segment($O,$Lu)[blue, hidden]; $SuLu Segment($u,$Lu)[magenta,hidden]; $SBSegmu ShowButton( 0, 0,'Segment to u')($SOu)[red]; $HBSegmu HideButton(85,0,'Hide')($SOu)[red]; $SBSegm ShowButton( 0, 20,'Segments to L(u)')($SLu,$SuLu)[magenta]; $HBSegm HideButton(110,20,'Hide')( $SLu,$SuLu)[magenta]; $SBtrLu ShowButton( 0,40,'Trace')($utr,$Lutr,$Clear)[blue]; $HBtrLu HideButton(72,40,'Stop')($utr,$Lutr)[blue]; $Centpt Point(250,250)[magenta,hidden]; $Cpt Point(250,225)[magenta,hidden]; $Circ Circle($Centpt,$Cpt)[magenta,hidden]; $ABC AnimateButton(10,110,'Animate')($u,$Circ)(4)(0)(0)[black,hidden]; $LCirc Locus($Lu,$u,$Circ,40)[blue,hidden]; $SBCL ShowButton(10,130,'Locus')($LCirc)[blue,hidden]; $HBCL HideButton(55,130,'Hide')($LCirc)[blue,hidden]; $SBAC ShowButton( 0,90,'CIRCLE')($Centpt,$Cpt,$Circ,$ABC,$SBCL,$HBCL)[magenta,hidden]; $HBAC HideButton(60,90,'Hide')( $Centpt,$Cpt,$Circ,$ABC,$SBCL,$HBCL)[magenta,hidden]; $PtSt Point(225,225)[magenta,hidden]; $PtEnd Point(275,275)[magenta,hidden]; $Segm Segment($PtSt,$PtEnd)[magenta,hidden]; $ABS AnimateButton(10,180,'Animate')($u,$Segm)(4)(0)(0)[black,hidden]; $LSegm Locus($Lu,$u,$Segm,40)[blue,hidden]; $SBSL ShowButton(10,200,'Locus')($LSegm)[blue,hidden]; $HBSL HideButton(55,200,'Hide')($LSegm)[blue,hidden]; $SBAS ShowButton(0,160,'SEGMENT')($PtSt,$PtEnd,$Segm,$ABS,$SBSL,$HBSL)[magenta,hidden]; $HBAS HideButton(75,160,'Hide')($PtSt,$PtEnd,$Segm,$ABS,$SBSL,$HBSL)[magenta,hidden]; $HBA HideButton(130,65,'HIDE')($SBAC,$HBAC,$SBAS,$HBAS,$Centpt,$Cpt,$Circ,$ABC,$SBCL,$HBCL,$PtSt,$PtEnd,$Segm,$ABS,$SBSL,$HBSL)[black,hidden]; ShowButton( 0,65,'A N I M A T I O N S')($HBA,$SBAC,$HBAC,$SBAS,$HBAS)[black];



Martti.Pesonen@Joensuu.Fi 2003, 2008