Lineaarialgebra

Lineaarialgebra: Laskutoimituksia R:ssä ?

Esimerkki 1

{ 1. Laskutoimitus R:ssä, for JSP-APPLET conversion } #CODEBASE = "../jsp" #ARCHIVE = "jsp4.jar" #WIDTH = 500 #HEIGHT = 100 #ALIGN = Center *Frame = 0 *TextFont = "Courier" *TextBold = 1 *TextSize = 18 *LabelFont = "Courier" *LabelBold = 1 *MeasureFont = "Courier" *MeasureSize = 14 *MeasureBold = 1 *MeasureInDegrees = 1 *DirectedAngles = 0 *BackRed = 255 *BackGreen = 255 *BackBlue = 220 ${ $reset FixedText(485,15,'Reset = ''R''')[red,bold,justifyRight]; $} $RO FixedPoint(250,50)[ black, label('0')]; $Rykk FixedPoint(275,50)[ white, label('1')]; $RL Line($Rykk,$RO)[black]; $x Point on object($RL,-9)[red, label('x'),layer(5)]; {,LabelAlign(0,15)} $y Point on object($RL,-6)[blue,label('y'),layer(5)]; {,LabelAlign(0,15)} FixedText(485, 50,'R')[plain,font('Courier'),bold, black,justifyCenter]; $xoy VectorTranslation($Rykk,$x,$y)[magenta, label('x o y')]; {,LabelAlign(0,20)}

Oheisessa dynaamisessa kuviossa voi liikutella hiirellä pisteitä x ja y.

Kaikilla x ja y tulos x o y on täysin määrätty luku, joten kyseessä on funktio R × R ® R; siis laskutoimitus joukossa R.


Esimerkki 2

${ 2. Laskutoimitus R:ssä $} #CODEBASE = "../jsp" #ARCHIVE = "jsp4.jar" #WIDTH = 500 #HEIGHT = 100 #ALIGN = Center *Frame = 0 *TextFont = "Helvetica" *TextBold = 1 *TextSize = 18 *LabelFont = "Courier" *LabelBold = 1 *MeasureFont = "Courier" *MeasureSize = 14 *MeasureBold = 1 *MeasureInDegrees = 1 *DirectedAngles = 0 *BackRed = 255 *BackGreen = 220 *BackBlue = 220 $reset FixedText(485,15,'Reset = ''R''')[red,bold,justifyRight]; $RO FixedPoint(250,50)[ black, label('0')]; $Rykk FixedPoint(275,50)[ white, label('1')]; $RL Line($Rykk,$RO)[black]; $x Point on object($RL,-9)[red, label('x'),layer(5)]; $y Point on object($RL,-4)[blue,label('y'),layer(5)]; FixedText(485, 45,'R')[plain,font('Helvetica'),bold, black,justifyCenter]; $Pt FixedPoint(270,0)[hidden]; $xoy Dilation/3PtRatio($Rykk,$RO,$Pt,$RO,$x)[magenta, label('x o y')];
Oheisessa dynaamisessa kuviossa voi liikutella hiirellä pisteitä x ja y.

Kaikilla x ja y tulos x o y on täysin määrätty luku, joten kyseessä on funktio R × R ® R; siis laskutoimitus joukossa R.

Huomaa funktion epäjatkuvuus (hyppy), ja se ettei arvo riipu lainkaan toisesta muuttujasta!


Esimerkki 3

${ 3. Laskutoimitus R:ssä $} #CODEBASE = "../jsp" #ARCHIVE = "jsp4.jar" #WIDTH = 500 #HEIGHT = 100 #ALIGN = Center *Frame = 0 *TextFont = "Helvetica" *TextBold = 1 *TextSize = 18 *LabelFont = "Courier" *LabelBold = 1 *MeasureFont = "Courier" *MeasureSize = 14 *MeasureBold = 1 *MeasureInDegrees = 1 *DirectedAngles = 0 *BackRed = 255 *BackGreen = 220 *BackBlue = 255 $reset FixedText(485,15,'Reset = ''R''')[red,bold,justifyRight]; $RO FixedPoint(250,50)[ black, label('0')]; $Rykk FixedPoint(275,50)[ white, label('1')]; $RL Line($Rykk,$RO)[black]; $a FixedPoint(50,50)[color(0,150,0), label('a'),layer(5)]; $b FixedPoint(450,50)[color(0,150,0), label('b'),layer(5)]; $Jana Segment($a,$b)[color(0,150,0),thick,layer(10)]; $x Point on object($RL,-4)[red, label('x'),layer(5)]; $y Point on object($RL, 1.5)[blue,label('y'),layer(5)]; FixedText(485, 45,'R')[plain,font('Helvetica'),bold, black,justifyCenter]; $xoy VectorTranslation($y,$x,$a)[magenta, label('x o y')]; $AnBx AnimateButton(1, 1,'Animoi x')($x,$Jana)(2)(0)(0)[red, bold]; $AnBy AnimateButton(1,21,'Animoi y')($y,$Jana)(3)(0)(0)[blue, bold];
Oheisessa dynaamisessa kuviossa voi liikutella hiirellä pisteitä x ja y.

Kaikilla x ja y tulos x o y on täysin määrätty luku, mutta se ei kaikilla arvopareilla kuulu välille [a,b], joten kyseessä ei ole funktio [a,b] × [a,b] ® [a,b]; siis ei ole laskutoimitus joukossa [a,b].


Esimerkki 4

${ 4. Laskutoimitus R:ssä $} #CODEBASE = "../jsp" #ARCHIVE = "jsp4.jar" #WIDTH = 500 #HEIGHT = 200 #ALIGN = Center *Frame = 0 *TextFont = "Helvetica" *TextBold = 1 *TextSize = 18 *LabelFont = "Courier" *LabelBold = 1 *MeasureFont = "Courier" *MeasureSize = 14 *MeasureBold = 1 *MeasureInDegrees = 1 *DirectedAngles = 0 *BackRed = 220 *BackGreen = 220 *BackBlue = 255 ${ $reset FixedText(485,15,'Reset = ''R''')[red,bold,justifyRight]; $} FixedText(485, 45,'R')[plain,font('Helvetica'),bold, black,justifyCenter]; FixedText(485,145,'R')[plain,font('Helvetica'),bold, black,justifyCenter]; $RO FixedPoint(250,50)[ black, label('0')]; $Rykk FixedPoint(280,50)[ white, label('1')]; $RL Line($Rykk,$RO)[black]; $Rnumx Point on object($RL,-4)[red, label('x'),layer(5)]; $Rnumy Point on object($RL, 3)[blue,label('y'),layer(5)]; $fRO FixedPoint(250,150)[ black, label('0')]; $fRykk FixedPoint(280,150)[ white, label('1')]; $fRL Line($fRykk,$fRO)[black]; $xval Ratio/Points($RO,$Rykk,$Rnumx,0,40,'x = ')[red,bold,hidden]; $yval Ratio/Points($RO,$Rykk,$Rnumy,0,40,'x = ')[blue,bold,hidden]; $fval Calculate(0,70,'xx = ','A @cos_ B @sin_ *A*')($xval,$yval)[hidden]; $Rfxy Dilation/MarkedRatio($fRykk,$fRO,$fval)[magenta, label('x o y'),layer(10)]; $RfxyTR Translation($Rfxy,0,0)[blue,hidden,traced]; $Rfxy2 Dilation/MarkedRatio($Rykk, $RO, $fval)[black, label('x o y'),hidden]; $fxyval Ratio/Points($fRO,$fRykk,$Rfxy,0,140,'xoy = ')[blue,bold,hidden]; $Sxfxy Segment($Rfxy,$Rnumx)[red]; $Syfxy Segment($Rfxy,$Rnumy)[blue]; $vasen FixedPoint(100,50)[color(0,150,0),label('a')]; $oikea FixedPoint(400,50)[color(0,150,0),label('b')]; $SL Segment($oikea,$vasen)[color(0,150,0),thick,layer(10)]; $fvasen FixedPoint(100,150)[color(0,150,0),label('a')]; $foikea FixedPoint(400,150)[color(0,150,0),label('b')]; $fSL Segment($foikea,$fvasen)[color(0,150,0),thick,layer(10)]; $AnBx AnimateButton(1, 1,'Animoi x')($Rnumx,$SL)(2)(0)(0)[red, bold]; $AnBy AnimateButton(1,21,'Animoi y')($Rnumy,$SL)(3)(0)(0)[blue, bold]; $SBTR ShowButton(200,170, 'Jäljitä')($RfxyTR)[blue]; $HBTR HideButton(240,170, 'Lopeta' )($RfxyTR)[blue];
Oheisessa dynaamisessa kuviossa voi liikutella hiirellä pisteitä x ja y.

Kaikilla x ja y tulos x o y on täysin määrätty luku, joten kyseessä on funktio [a,b] × [a,b] ® [a,b]; siis laskutoimitus välillä [a,b].


Esimerkki 5

${ 5. Laskutoimitus R:ssä $} #CODEBASE = "../jsp" #ARCHIVE = "jsp4.jar" #WIDTH = 402 #HEIGHT= 420 #ALIGN = Center *Frame = 0 *TextFont = "Helvetica" *TextBold = 1 *TextSize = 18 *LabelFont = "Courier" *LabelBold = 1 *MeasureFont = "Courier" *MeasureSize = 14 *MeasureBold = 1 *MeasureInDegrees = 1 *DirectedAngles = 0 *BackRed =255 *BackGreen =230 *BackBlue =255 $reset FixedText(385,15,'Reset = ''R''')[red,bold,justifyRight]; $RText1 FixedText(388,195,'R')[plain,font('Helvetica'),bold, red,justifyCenter]; $RText2 FixedText(388,245,'R')[plain,font('Helvetica'),bold,blue,justifyCenter]; $xText FixedText(388,195,'R')[plain,font('Helvetica'),bold, red,justifyCenter,hidden]; $yText FixedText(192, 15,'R')[plain,font('Helvetica'),bold,blue,justifyCenter,hidden]; $O FixedPoint(200,200)[black,label('0'),hidden]; $unitp UnitPoint($O,25)[white, hidden]; $coord Origin&Unit($O,$unitp)[black,hidden]; $hor AxisX($coord)[hidden]; ${ The Real Line $} $RO FixedPoint(200,410)[black,label('0')]; $Ref Translation($RO,25,0)[hidden]; $Ray Ray($Ref,$RO)[hidden,black]; $Rykk Point on object($Ray,1)[yellow,label('1')]; $RL Line($Rykk,$RO)[black,layer(10)]; $axy Dilation($Rykk,$RO,-2)[cyan,label('a')]; $bxy Dilation($Rykk,$RO, 5)[cyan,label('b')]; $Sabxy Segment($axy,$bxy)[cyan,thick,layer(20)]; $Rptk Point on object($RL,2)[label('a'),blue,hidden]; $Rk Ratio/Points($RO,$Rykk,$Rptk,0,305,'a = ')[blue,hidden]; $LUpp FixedPoint(0,400)[hidden]; $LLow FixedPoint(0,420)[hidden]; $RLow FixedPoint(400,420)[hidden]; $RUpp FixedPoint(400,400)[hidden]; $RectA Polygon($LUpp,$LLow,$RLow,$RUpp,$LUpp)[yellow,layer(100)]; $ROx FixedPoint(200,200)[ black, label('0')]; $Rykkx FixedPoint(225,200)[ white, label('1')]; $RLx Line($Rykkx,$ROx)[red,layer(10)]; $Rx Point on object($RLx,3)[red,label('x'),layer(5)]; $ax Dilation($Rykkx,$ROx,-2)[cyan,label('a')]; $bx Dilation($Rykkx,$ROx, 5)[cyan,label('b')]; $Sabx Segment($ax,$bx)[cyan,thick,layer(20)]; $Lvert Perpendicular($RLx,$ROx)[black,hidden]; $Cyks Circle($ROx,$Rykkx)[black,hidden]; $yykk Intersect1($Lvert,$Cyks)[black,hidden]; $Syks Segment($Rykkx,$ROx)[black,hidden]; $fRykk Point(225,250)[white,label('1')]; $fRref Point(200,250)[hidden]; $fRL Line($fRykk,$fRref)[blue,hidden]; $apu1 Point on object($fRL,-8)[hidden]; $apu2 Point on object($fRL, 8)[hidden]; $SfRL Segment($apu1,$apu2)[blue,layer(4)]; $Ry Point on object($fRL,-1)[blue,label('y'),layer(5)]; $fCyks Circle by radius($fRykk,$Syks)[hidden]; $fRO Intersect1($fRL,$fCyks)[black, label('0')]; $ay Dilation($fRykk,$fRO,-2)[cyan,label('a')]; $by Dilation($fRykk,$fRO, 5)[cyan,label('b')]; $Saby Segment($ay,$by)[cyan,thick,layer(20)]; $ParRLxby Parallel($RLx,$by)[white]; $ParRLxay Parallel($RLx,$ay)[white]; $ParfRLax Parallel($fRL,$ax)[white]; $ParfRLbx Parallel($fRL,$bx)[white]; $VY Intersect($ParfRLax,$ParRLxby)[hidden]; $VA Intersect($ParfRLax,$ParRLxay)[hidden]; $OA Intersect($ParfRLbx,$ParRLxay)[hidden]; $OY Intersect($ParfRLbx,$ParRLxby)[hidden]; Polygon($VY,$VA,$OA,$OY)[white]; $xval Ratio/Points($ROx,$Rykkx,$Rx,0,35,'x = ')[red,hidden]; $yval Ratio/Points($fRO,$fRykk,$Ry,0,35,'y = ')[red,hidden]; $fval Calculate(0,70,'xx = ','AB+ @sin_ 2*')($xval,$yval)[hidden]; $Rfx Dilation/MarkedRatio($Rykk,$RO,$fval)[magenta, label('x o y'),layer(10)]; $ROxy FixedPoint(250,470)[ black, label('0')]; $Rykkxy FixedPoint(275,470)[ white, label('1')]; $RL Line($Rykkxy,$ROxy)[black]; $MBK MoveButton(0,80,2,'Koordinaatisto')($yykk,$fRykk,$ROx,$fRref)[blue,hidden]; $SBRR ShowButton( 0,350, 'Rt')($RText1,$RText2)[hidden]; $HBRR HideButton( 0,350, 'Piilota Rt')($RText1,$RText2)[hidden]; $SBxy ShowButton( 0,350, 'xy')($xText,$yText)[hidden]; $HBxy HideButton( 0,350, 'Piilota xy')($xText,$yText)[hidden]; $Sim SimultaneousButton(2,2,'KOORDINAATISTOKSI')($MBK,$HBRR,$SBxy)[black]; $xL Parallel($RLx,$Ry)[color(0,150,0),hidden]; $yL Parallel($fRL,$Rx)[color(0,150,0),hidden]; $int Intersect($xL,$yL)[magenta,label('(x,y)')]; $SRxint Segment($int,$Rx)[color(0,150,0)]; $SRfxint Segment($int,$Ry)[color(0,150,0)]; $AnBx AnimateButton(2,23,'Animoi x')($Rx,$Sabx)(2)(0)(0)[red, bold]; $AnBy AnimateButton(2,43,'Animoi y')($Ry,$Saby)(3)(0)(0)[blue, bold];
Oheisessa dynaamisessa kuviossa voi liikutella hiirellä pisteitä x ja y.

Kaikilla x ja y tulos x o y on täysin määrätty luku, joten kyseessä on funktio [a,b] × [a,b] ® [a,b]; siis laskutoimitus välillä [a,b].


Esimerkki 6

${ 6. Laskutoimitus R:ssä $} #CODEBASE = "../jsp" #ARCHIVE = "jsp4.jar" #WIDTH = 252 #HEIGHT= 270 #ALIGN = Center *Frame = 0 *MeasureInDegrees = 1 *DirectedAngles = 0 *BackRed =220 *BackGreen =200 *BackBlue =255 $O FixedPoint(125,125)[black,label('0')]; $unitp UnitPoint($O,25)[hidden]; $ykk FixedPoint(150,125)[white,label('1')]; $coord Origin&Unit($O,$unitp)[black, hidden]; $hor AxisX($coord)[black]; $vert AxisY($coord)[black,hidden]; $start FixedPoint(125,233)[hidden]; $vertsh Ray($O,$start)[black]; $RO FixedPoint(125,255)[black,label('0')]; $Ref Translation($RO,25,0)[hidden]; $Ray Ray($Ref,$RO)[hidden,black]; $Rykk FixedPoint(150,255)[white, label('1')]; $RL Line($Rykk,$RO)[black,layer(15)]; $a FixedPoint( 25,255)[white,label('a')]; $b FixedPoint(225,255)[white,label('b')]; Segment($a,$b)[white,thick,layer(20)]; $av FixedPoint( 25,125)[white,label('a')]; $bo FixedPoint(227,125)[white,label('b')]; $ba FixedPoint(125,227)[white,label('a')]; $ay FixedPoint(125, 25)[white,label('b')]; $LUpp FixedPoint(0,240)[hidden]; $LLow FixedPoint(0,270)[hidden]; $RLow FixedPoint(252,270)[hidden]; $RUpp FixedPoint(252,240)[hidden]; $RectA Polygon($LUpp,$LLow,$RLow,$RUpp,$LUpp)[yellow]; $LUpp FixedPoint(25,25)[hidden]; $LLow FixedPoint(25,227)[hidden]; $RLow FixedPoint(227,227)[hidden]; $RUpp FixedPoint(227, 25)[hidden]; $RectA Polygon($LUpp,$LLow,$RLow,$RUpp,$LUpp)[white,layer(10)]; $P2 Dilation ($unitp, $O, 4.0) [hidden]; Circle ($O, $P2) [color (255,223,223)]; $xy Point (130, 100) [label ('(x,y)')]; $xoy FixedPoint (180, 255) [hidden]; $Rxy Coordinates ($xy, $coord, 0, 0, '') [hidden]; $flag Calculate (0, 0, '', '16 #A1 #A1 * #A2 #A2 * + - @ln__') ($Rxy) [hidden]; { the calculated number is ln (16 - ||xy||²) } { change @ln__ to @sqrt to include the circle circumference in the domain } $xoy_ Dilation/MarkedRatio ($xoy, $xoy, $flag) [label ('x o y')]; $A Point(15,230)[cyan]; $B Point(240,20)[cyan]; $Jana Segment($A,$B)[cyan]; $AnB AnimateButton(2, 2,'Animoi (x,y)')($xy,$Jana)(2)(0)(0)[red,bold];

Oheisessa dynaamisessa kuviossa voi liikutella hiirellä pistettä (x,y).

Kaikilla ympyrän sisällä olevilla lukupareilla (x,y) tulos x o y on täysin määrätty luku, mutta se ei ole määritelty koko tulojoukossa (nurkissa ympyrän ulkopuolella), joten kyseessä ei ole laskutoimitus välillä [a,b].



Martti.Pesonen@Joensuu.Fi 2003