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