<?xml version="1.0"  encoding="iso-8859-1" ?>
<?xml-stylesheet type="text/xsl" href="xsl/mathml.xsl"?>
<!DOCTYPE MMLEntities [
<!ENTITY af "&#x02061;">
<!ENTITY alpha "&#x003B1;">
<!ENTITY ap "&#x02048;">
<!ENTITY apos "&#x00027;">
<!ENTITY ApplyFunction "&#x02061;">
<!ENTITY Backslash "&#x02216;">
<!ENTITY beta "&#x003B2;">
<!ENTITY cap "&#x02229;">
<!ENTITY CenterDot "&#x000B7;">
<!ENTITY chi "&#x003C7;">
<!ENTITY compfn "&#x02218;">
<!ENTITY cup "&#x0222A;">
<!ENTITY dd "d">
<!ENTITY Del "&#x02207;">
<!ENTITY Delta "&#x00394;">
<!ENTITY delta "&#x003B4;">
<!ENTITY DifferentialD "d">
<!ENTITY DoubleRightArrow "&#x021D2;">
<!ENTITY ee "e">
<!ENTITY empty "&#x02205;&#x02063;">
<!ENTITY emptyset "&#x02205;&#x02063;">
<!ENTITY epsi "&#x003B5;">
<!ENTITY epsilon "&#x003B5;">
<!ENTITY epsiv "&#x0025B;">
<!ENTITY equiv "&#x02261;">
<!ENTITY eta "&#x003B7;">
<!ENTITY exist "&#x02203;">
<!ENTITY Exists "&#x02203;">
<!ENTITY ExponentialE "e">
<!ENTITY forall "&#x02200;">
<!ENTITY ForAll "&#x02200;">
<!ENTITY Gamma "&#x00393;">
<!ENTITY gamma "&#x003B3;">
<!ENTITY Gammad "&#x003DC;">
<!ENTITY gammad "&#x003DC;">
<!ENTITY ge "&#x02265;">
<!ENTITY gt "&#x0003E;">
<!ENTITY ii "i">
<!ENTITY image "&#x02111;">
<!ENTITY ImaginaryI "i">
<!ENTITY in "&#x02208;">
<!ENTITY infin "&#x0221E;">
<!ENTITY Integral "&#x0222B;">
<!ENTITY InvisibleTimes "&#x02062;">
<!ENTITY iota "&#x003B9;">
<!ENTITY it "&#x02062;">
<!ENTITY kappa "&#x003BA;">
<!ENTITY kappav "&#x003F0;">
<!ENTITY Lambda "&#x0039B;">
<!ENTITY lambda "&#x003BB;">
<!ENTITY lceil "&#x02308;">
<!ENTITY le "&#x02264;">
<!ENTITY LeftBracketingBar "|">
<!ENTITY LeftCeiling "&#x02308;">
<!ENTITY LeftFloor "&#x0230A;">
<!ENTITY lfloor "&#x0230A;">
<!ENTITY LowerRightArrow "&#x02198;">
<!ENTITY mu "&#x003BC;">
<!ENTITY nabla "&#x02207;">
<!ENTITY nbsp "&#x000A0;">
<!ENTITY ne "&#x02260;">
<!ENTITY not "&#x000AC;">
<!ENTITY NotElement "&#x02209;">
<!ENTITY NotEqual "&#x02260;">
<!ENTITY notin "&#x02209;">
<!ENTITY NotSubsetEqual "&#x02288;">
<!ENTITY nsub "&#x02284;">
<!ENTITY nsube "&#x02288;">
<!ENTITY nsubseteq "&#x02288;">
<!ENTITY nu "&#x003BD;">
<!ENTITY Omega "&#x003A9;">
<!ENTITY omega "&#x003C9;">
<!ENTITY OverBar "&#x000AF;">
<!ENTITY part "&#x02202;">
<!ENTITY Phi "&#x003A6;">
<!ENTITY phi "&#x003C6;">
<!ENTITY phiv "&#x003D5;">
<!ENTITY Pi "&#x003A0;">
<!ENTITY pi "&#x003C0;">
<!ENTITY piv "&#x003D6;">
<!ENTITY prime "&#x02032;">
<!ENTITY Product "&#x0220F;">
<!ENTITY Psi "&#x003A8;">
<!ENTITY psi "&#x003C8;">
<!ENTITY rarr "&#x02192;">
<!ENTITY rceil "&#x02309;">
<!ENTITY real "&#x0211C;">
<!ENTITY rfloor "&#x0230B;">
<!ENTITY rho "&#x003C1;">
<!ENTITY rhov "&#x003F1;">
<!ENTITY RightArrow "&#x02192;">
<!ENTITY rightarrow "&#x02192;">
<!ENTITY RightBracketingBar "|">
<!ENTITY RightCeiling "&#x02309;">
<!ENTITY RightFloor "&#x0230B;">
<!ENTITY Sigma "&#x003A3;">
<!ENTITY sigma "&#x003C3;">
<!ENTITY sigmav "&#x003C2;">
<!ENTITY sub "&#x02282;">
<!ENTITY sube "&#x02286;">
<!ENTITY SuchThat "&#x0220B;">
<!ENTITY Sum "&#x02211;">
<!ENTITY tau "&#x003C4;">
<!ENTITY Theta "&#x00398;">
<!ENTITY theta "&#x003B8;">
<!ENTITY thetav "&#x003D1;">
<!ENTITY times "&#x000D7;">
<!ENTITY UpperRightArrow "&#x02197;">
<!ENTITY Upsi "&#x003D2;">
<!ENTITY upsi "&#x003C5;">
<!ENTITY vee "&#x02228;">
<!ENTITY wedge "&#x02227;">
<!ENTITY weierp "&#x02118;">
<!ENTITY xi "&#x003BE;">
<!ENTITY Xi "&#x0039E;">
<!ENTITY zeta "&#x003B6;">
]>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>heiluri1.html</title>
<!-- Created by Maple 8.00, IBM INTEL NT -->
<link href="../navi/css/sovell.css" rel="stylesheet" type="text/css"/>
</head>
<body bgcolor="FFFFFF">

<a href="../mpl/heiluri1.mws" target="_blank">heiluri1.mws</a>

<a name="MapleAutoBookmark1" />
<p align="center">
<b><u><font color="#000000" size="5">Tavallinen heiluri</font></u></b>
</p>
<p align="center">
</p>
<p align="left">
<font color="#000000">Otetaan tarkastelun kohteeksi tavallinen yksinkertainen heiluri. Tämä koostuu kitkattomaan niveleen kiinnitetystä (massattomasta) varresta sekä sen päässä olevasta kuulasta. Olkoon varren pituus </font>
<i><font color="#000000">L</font></i>
<font color="#000000">&nbsp;ja sen päässä olevan kuulan massa </font>
<i><font color="#000000">m</font></i>
<font color="#000000">. Kun heiluri poikkeutetaan tasapainoasemastaan ja se vapautetaan, syntyy heiluriliike. Rajoitutaan tarkastelemaan tasossa tapahtuvaa liikettä, jolloin heilurin asema voidaan ilmaista kulmalla </font>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mi>&theta;</mi>
</math>
<font color="#000000">, joka osoittaa poikkeaman pystysuorasta suunnasta.<br />
</font>
</p>
<p align="center">
<img src="images/heiluri11.gif" width="300" height="140" alt="[Maple Bitmap]" />
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Heilurin kuulaan vaikuttaa painovoima </font>
<i><font color="#000000">mg</font></i>
<font color="#000000">. Tämä voima yhdessä varren tukivoiman kanssa aiheuttavat tangentiaalisen voiman </font>
<font color="#000000">&nbsp;</font>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mrow>
    <mrow>
      <mi>m</mi>
      <mo>&InvisibleTimes;</mo>
      <mi>g</mi>
    </mrow>
    <mo>&InvisibleTimes;</mo>
    <mrow>
      <mi>sin</mi>
      <mo>&ApplyFunction;</mo>
      <mfenced>
        <mi>&theta;</mi>
      </mfenced>
    </mrow>
  </mrow>
</math>
<font color="#000000">&nbsp;heilurin ympyräkaaren muotoiselle liikeradalle. Newtonin toisen lain mukaisesti tämän voiman tasapainottaa heilurille aiheutuva kulmakiihtyvyys </font>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mrow>
    <mi>L</mi>
    <mo>&InvisibleTimes;</mo>
    <mfenced>
      <mrow>
        <mfrac>
          <msup>
            <mo>&DifferentialD;</mo>
            <mn>2</mn>
          </msup>
          <msup>
            <mrow>
              <mo>&DifferentialD;</mo>
              <mi>t</mi>
            </mrow>
            <mn>2</mn>
          </msup>
        </mfrac>
        <mi>&theta;</mi>
      </mrow>
    </mfenced>
  </mrow>
</math>
<font color="#000000">&nbsp;jota vastaava voima on </font>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mrow>
    <mrow>
      <mi>m</mi>
      <mo>&InvisibleTimes;</mo>
      <mi>L</mi>
    </mrow>
    <mo>&InvisibleTimes;</mo>
    <mfenced>
      <mrow>
        <mfrac>
          <msup>
            <mo>&DifferentialD;</mo>
            <mn>2</mn>
          </msup>
          <msup>
            <mrow>
              <mo>&DifferentialD;</mo>
              <mi>t</mi>
            </mrow>
            <mn>2</mn>
          </msup>
        </mfrac>
        <mi>&theta;</mi>
      </mrow>
    </mfenced>
  </mrow>
</math>
<font color="#000000">&nbsp;. Nämä voimat siis kumoavat toisensa, eli saamme differentiaaliyhtälön </font>
</p>
<p align="left">
</p>
<p align="center">
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mrow>
    <mrow>
      <mrow>
        <mrow>
          <mi>m</mi>
          <mo>&InvisibleTimes;</mo>
          <mi>L</mi>
        </mrow>
        <mo>&InvisibleTimes;</mo>
        <mfenced>
          <mrow>
            <mfrac>
              <msup>
                <mo>&DifferentialD;</mo>
                <mn>2</mn>
              </msup>
              <msup>
                <mrow>
                  <mo>&DifferentialD;</mo>
                  <mi>t</mi>
                </mrow>
                <mn>2</mn>
              </msup>
            </mfrac>
            <mi>&theta;</mi>
          </mrow>
        </mfenced>
      </mrow>
      <mo>+</mo>
      <mrow>
        <mrow>
          <mi>m</mi>
          <mo>&InvisibleTimes;</mo>
          <mi>g</mi>
        </mrow>
        <mo>&InvisibleTimes;</mo>
        <mrow>
          <mi>sin</mi>
          <mo>&ApplyFunction;</mo>
          <mfenced>
            <mi>&theta;</mi>
          </mfenced>
        </mrow>
      </mrow>
    </mrow>
    <mo>=</mo>
    <mn>0</mn>
  </mrow>
</math>
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">eli</font>
</p>
<p align="left">
</p>
<p align="center">
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mrow>
    <mrow>
      <mrow>
        <mfrac>
          <msup>
            <mo>&DifferentialD;</mo>
            <mn>2</mn>
          </msup>
          <msup>
            <mrow>
              <mo>&DifferentialD;</mo>
              <mi>t</mi>
            </mrow>
            <mn>2</mn>
          </msup>
        </mfrac>
        <mi>&theta;</mi>
      </mrow>
      <mo>+</mo>
      <mrow>
        <mi>k</mi>
        <mo>&InvisibleTimes;</mo>
        <mrow>
          <mi>sin</mi>
          <mo>&ApplyFunction;</mo>
          <mfenced>
            <mi>&theta;</mi>
          </mfenced>
        </mrow>
      </mrow>
    </mrow>
    <mo>=</mo>
    <mn>0</mn>
  </mrow>
</math>
<font color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;(</font>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mrow>
    <mi>k</mi>
    <mo>=</mo>
    <mfrac>
      <mi>g</mi>
      <mi>L</mi>
    </mfrac>
  </mrow>
</math>
<font color="#000000">).</font>
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Tämän differentiaaliyhtälön ratkaisu ei ole alkeisfunktio. Jos kulma </font>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mi>&theta;</mi>
</math>
<font color="#000000">&nbsp;on pieni, yhtälössä käytetään usein approksimaatiota </font>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mrow>
    <mrow>
      <mi>sin</mi>
      <mo>&ApplyFunction;</mo>
      <mfenced>
        <mi>&theta;</mi>
      </mfenced>
    </mrow>
    <mo>=</mo>
    <mi>&theta;</mi>
  </mrow>
</math>
<font color="#000000">, jolloin perusfunktiot tarjoavat approksimatiivisen ratkaisun muotoa</font>
</p>
<p align="left">
</p>
<p align="center">
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mrow>
    <mrow>
      <mi>A</mi>
      <mo>&InvisibleTimes;</mo>
      <mrow>
        <mi>cos</mi>
        <mo>&ApplyFunction;</mo>
        <mfenced>
          <mrow>
            <msqrt>
              <mi>k</mi>
            </msqrt>
            <mo>&InvisibleTimes;</mo>
            <mi>t</mi>
          </mrow>
        </mfenced>
      </mrow>
    </mrow>
    <mo>+</mo>
    <mrow>
      <mi>B</mi>
      <mo>&InvisibleTimes;</mo>
      <mrow>
        <mi>sin</mi>
        <mo>&ApplyFunction;</mo>
        <mfenced>
          <mrow>
            <msqrt>
              <mi>k</mi>
            </msqrt>
            <mo>&InvisibleTimes;</mo>
            <mi>t</mi>
          </mrow>
        </mfenced>
      </mrow>
    </mrow>
  </mrow>
</math>
<font color="#000000">.</font>
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Lasketaan tarkalle heiluriyhtälölle numeerinen ratkaisu ja tarkastellaan kulman </font>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mi>&theta;</mi>
</math>
<font color="#000000">&nbsp;aikariippuvuutta. Tämän jälkeen rakennetaan tarkkaan ratkaisuun perustuen animaatio heilurin liikkeelle. </font>
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Laskujen aluksi on syytä hävittää mahdollisista aiemmista laskuista jääneet muuttujat. </font>
</p>
<p align="left">
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">restart;</font></b>
</td></tr>
</table>
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Heiluria kuvaava toisen kertaluvun differentiaaliyhtälö on helposti ilmaistavissa normaaliryhmänä. </font>
</p>
<p align="left">
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">ryhma:= diff(theta(t), t)=omega(t), diff(omega(t), t)=-k*sin(theta(t));</font></b>
</td></tr>
</table>
</p>
<p align="center">
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mrow>
    <mi>ryhma</mi>
  </mrow>
  <mo>:=</mo>
  <mrow>
    <mrow>
      <mrow>
        <mfrac>
          <mo>&DifferentialD;</mo>
          <mrow>
            <mo>&DifferentialD;</mo>
            <mi>t</mi>
          </mrow>
        </mfrac>
        <mrow>
          <mi>&theta;</mi>
          <mo>&ApplyFunction;</mo>
          <mfenced>
            <mi>t</mi>
          </mfenced>
        </mrow>
      </mrow>
      <mo>=</mo>
      <mrow>
        <mi>&omega;</mi>
        <mo>&ApplyFunction;</mo>
        <mfenced>
          <mi>t</mi>
        </mfenced>
      </mrow>
    </mrow>
    <mo>,</mo>
    <mrow>
      <mrow>
        <mfrac>
          <mo>&DifferentialD;</mo>
          <mrow>
            <mo>&DifferentialD;</mo>
            <mi>t</mi>
          </mrow>
        </mfrac>
        <mrow>
          <mi>&omega;</mi>
          <mo>&ApplyFunction;</mo>
          <mfenced>
            <mi>t</mi>
          </mfenced>
        </mrow>
      </mrow>
      <mo>=</mo>
      <mrow>
        <mo>-</mo>
        <mrow>
          <mi>k</mi>
          <mo>&InvisibleTimes;</mo>
          <mrow>
            <mi>sin</mi>
            <mo>&ApplyFunction;</mo>
            <mfenced>
              <mrow>
                <mi>&theta;</mi>
                <mo>&ApplyFunction;</mo>
                <mfenced>
                  <mi>t</mi>
                </mfenced>
              </mrow>
            </mfenced>
          </mrow>
        </mrow>
      </mrow>
    </mrow>
  </mrow>
</math>
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Ongelman tuntemattomat funktiot ovat heilurin kulma ja kulmanopeus. <br />
</font>
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">tuntemattomat:= {theta(t), omega(t)};</font></b>
</td></tr>
</table>
</p>
<p align="center">
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mrow>
    <mi>tuntemattomat</mi>
  </mrow>
  <mo>:=</mo>
  <mrow>
    <mfenced open='{' close='}'>
      <mrow>
        <mi>&theta;</mi>
        <mo>&ApplyFunction;</mo>
        <mfenced>
          <mi>t</mi>
        </mfenced>
      </mrow>
      <mrow>
        <mi>&omega;</mi>
        <mo>&ApplyFunction;</mo>
        <mfenced>
          <mi>t</mi>
        </mfenced>
      </mrow>
    </mfenced>
  </mrow>
</math>
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Olkoon </font>
<i><font color="#000000">k</font></i>
<font color="#000000">&nbsp;= 1. Alkuehdon määrittää tilanne, jossa heiluri on levossa poikkeutettuna yhden radiaanin kulmaan. </font>
</p>
<p align="left">
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">k:= 1: alkuehto1:= theta(0)=1, omega(0)=0;</font></b>
</td></tr>
</table>
</p>
<p align="center">
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mrow>
    <mi>alkuehto1</mi>
  </mrow>
  <mo>:=</mo>
  <mrow>
    <mrow>
      <mrow>
        <mi>&theta;</mi>
        <mo>&ApplyFunction;</mo>
        <mfenced>
          <mn>0</mn>
        </mfenced>
      </mrow>
      <mo>=</mo>
      <mn>1</mn>
    </mrow>
    <mo>,</mo>
    <mrow>
      <mrow>
        <mi>&omega;</mi>
        <mo>&ApplyFunction;</mo>
        <mfenced>
          <mn>0</mn>
        </mfenced>
      </mrow>
      <mo>=</mo>
      <mn>0</mn>
    </mrow>
  </mrow>
</math>
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Ratkaistaan differentiaaliyhtälöryhmä numeerisesti. </font>
</p>
<p align="left">
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">rtk:= dsolve({ryhma, alkuehto1}, tuntemattomat, numeric, output=listprocedure);</font></b>
</td></tr>
</table>
</p>
<p align="center">
<img src="images/heiluri12.gif" width="627" height="20" alt="rtk := [t = proc (t) option `Copyright (c) 1993 by the University of Waterloo. All rights reserved.`; t end proc, omega(t) = proc (t) local res, solnproc, outpoint, ndsol; option `Copyright (c) 2000 by..." />
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Poimitaan ratkaisusta kulma </font>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mi>&theta;</mi>
</math>
<font color="#000000">&nbsp;ja kulmanopeus </font>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mi>&omega;</mi>
</math>
<font color="#000000">.<br />
</font>
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">kulmat:= subs(rtk, theta(t)), subs(rtk, omega(t)):</font></b>
</td></tr>
</table>
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Piirretään kuvaaja, jossa näemme punaisella heilurin kulman </font>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mi>&theta;</mi>
</math>
<font color="#000000">, sekä vihreällä kulmanopeuden </font>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mrow>
    <mfrac>
      <mo>&DifferentialD;</mo>
      <mrow>
        <mo>&DifferentialD;</mo>
        <mi>t</mi>
      </mrow>
    </mfrac>
    <mi>&theta;</mi>
  </mrow>
</math>
<font color="#000000">.</font>
</p>
<p align="left">
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">plot([kulmat], 0..15);</font></b>
</td></tr>
</table>
</p>
<p align="center">
<img src="images/heiluri13.gif" width="612" height="612" alt="[Maple Plot]" />
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Heilurin kulma ajan funktiona muistuttaa kosinikäyrää. Tarkasteltu heilurin maksimiheilahduskulma on varsin suuri, jolloin aproksimaation </font>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mrow>
    <mrow>
      <mi>sin</mi>
      <mo>&ApplyFunction;</mo>
      <mfenced>
        <mi>&theta;</mi>
      </mfenced>
    </mrow>
    <mo>=</mo>
    <mi>&theta;</mi>
  </mrow>
</math>
<font color="#000000">&nbsp;tarjoama differentiaaliyhtälön ratkaisu (esitetyillä alkuehdoilla) </font>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mrow>
    <mrow>
      <mi>&theta;</mi>
      <mo>&ApplyFunction;</mo>
      <mfenced>
        <mi>t</mi>
      </mfenced>
    </mrow>
    <mo>=</mo>
    <mrow>
      <mi>cos</mi>
      <mo>&ApplyFunction;</mo>
      <mfenced>
        <mi>t</mi>
      </mfenced>
    </mrow>
  </mrow>
</math>
<font color="#000000">&nbsp;on huonohko. Kuitenkin modifioimalla ratkaisun taajuutta sopivalla kertoimella, saadaan heilurin värähtelylle varsin hyvän alkeisfunktioapproksimaation. </font>
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Alla heilurin paikkaa (vihreä) approksimoidaan funktion </font>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mrow>
    <mrow>
      <mi>&theta;</mi>
      <mo>&ApplyFunction;</mo>
      <mfenced>
        <mi>t</mi>
      </mfenced>
    </mrow>
    <mo>=</mo>
    <mrow>
      <mi>cos</mi>
      <mo>&ApplyFunction;</mo>
      <mfenced>
        <mrow>
          <mn>.94</mn>
          <mo>&InvisibleTimes;</mo>
          <mi>t</mi>
        </mrow>
      </mfenced>
    </mrow>
  </mrow>
</math>
<font color="#000000">&nbsp;punaisella pisteviivalla. </font>
</p>
<p align="left">
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">with(plots):</font></b>
</td></tr>
</table>
</p>
<p align="left">
<tt><pre><font color="#0000FF" size="2">Warning, the name changecoords has been redefined<br />
</font></pre></tt>
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">display(plot([t, cos(0.94*t), t=0..15], style=point), plot(kulmat[1], 0..15, color=green));</font></b>
</td></tr>
</table>
</p>
<p align="center">
<img src="images/heiluri14.gif" width="612" height="612" alt="[Maple Plot]" />
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Seuraavaksi määritämme tarvittavat työkalut heilurin värähtelyn animoimiseksi. Värähtelevän heilurin lisäksi kuvassa näkyvät heilurin kuulaan vaikuttavat voimat. Varren tukivoima on punainen ja maan vetovoima sininen, vihreisiin osakomponentteihin jaettuna. Kyseessä on </font>
<i><font color="#000000">Maple</font></i>
<font color="#000000">lla kirjoitettu ohjelmakoodi. </font>
</p>
<p align="left">
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">with(plottools):</font></b>
</td></tr>
</table>
</p>
<p align="left">
<tt><pre><font color="#0000FF" size="2">Warning, the name arrow has been redefined<br />
</font></pre></tt>
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">kuula:= proc(kulma, varsi)<br />
&nbsp;&nbsp;local kuulax, kuulay;<br />
&nbsp;&nbsp;kuulax:= varsi*sin(kulma);<br />
&nbsp;&nbsp;kuulay:= -varsi*cos(kulma);<br />
&nbsp;&nbsp;disk([kuulax, kuulay],<br />
&nbsp;&nbsp;varsi/10,color=khaki);<br />
end:<br />
<br />
tanko:=proc(kulma, varsi)<br />
&nbsp;&nbsp;line([0,0], [0.9*varsi*sin(kulma),<br />
&nbsp;&nbsp;&nbsp;&nbsp;-0.9*varsi*cos(kulma)], thickness=3);<br />
end:<br />
<br />
nuolet:=proc(kulma,varsi)<br />
&nbsp;&nbsp;display(<br />
&nbsp;&nbsp;&nbsp;&nbsp;arrow([varsi*sin(kulma),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-varsi*cos(kulma)],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[varsi*sin(kulma),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-varsi*cos(kulma)-20],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.1, 3, 0.2, color=blue),<br />
&nbsp;&nbsp;&nbsp;&nbsp;arrow([varsi*sin(kulma),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-varsi*cos(kulma)],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[varsi*sin(kulma)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+20*cos(kulma)*sin(kulma),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-varsi*cos(kulma)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-20*cos(kulma)*cos(kulma)],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.1, 3, 0.2, color=green),<br />
&nbsp;&nbsp;&nbsp;&nbsp;arrow([varsi*sin(kulma),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-varsi*cos(kulma)],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[varsi*sin(kulma)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-20*sin(kulma)*cos(kulma),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-varsi*cos(kulma)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-20*sin(kulma)*sin(kulma)],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.1, 3, 0.2, color=green),<br />
&nbsp;&nbsp;&nbsp;&nbsp;arrow([varsi*sin(kulma),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-varsi*cos(kulma)],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[varsi*sin(kulma)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-20*sin(kulma)*cos(kulma),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-varsi*cos(kulma)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+20*cos(kulma)*cos(kulma)],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0.1, 3, 0.2, color=red));<br />
end:<br />
<br />
heiluri:= proc(kulma, aika)<br />
&nbsp;&nbsp;local varsi, k;<br />
&nbsp;&nbsp;varsi:= 50;<br />
&nbsp;&nbsp;k:= kulma(aika*67/500);<br />
&nbsp;&nbsp;display(<br />
&nbsp;&nbsp;&nbsp;&nbsp;nuolet(k, varsi),<br />
&nbsp;&nbsp;&nbsp;&nbsp;kuula(k, varsi),<br />
&nbsp;&nbsp;&nbsp;&nbsp;tanko(k, varsi),<br />
&nbsp;&nbsp;&nbsp;&nbsp;rectangle([-(varsi+10), 0],<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[varsi+10, 5], color=gray),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;axes=NONE, scaling=constrained);<br />
end:</font></b>
</td></tr>
</table>
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Animaatio on lista peräkkäisiä kuvia, jotka on ensin laskettava. Animaatio käynnistyy viemällä hiiren osoitin kuvan päälle ja valitsemalla hiiren oikealla napilla esiin tulevasta valikosta </font>
<b><font color="#000000">A</font></b>
<b><u><font color="#000000">n</font></u></b>
<b><font color="#000000">imation</font></b>
<font color="#000000">&nbsp;-&gt; </font>
<b><font color="#000000">P</font></b>
<b><u><font color="#000000">l</font></u></b>
<b><font color="#000000">ay</font></b>
<font color="#000000">. Animaatiosta saa jatkuvan valitsemalla em. valikosta </font>
<b><font color="#000000">A</font></b>
<b><u><font color="#000000">n</font></u></b>
<b><font color="#000000">imation</font></b>
<font color="#000000">&nbsp;-&gt; </font>
<b><u><font color="#000000">C</font></u></b>
<b><font color="#000000">ontinuous</font></b>
<font color="#000000">.</font>
</p>
<p align="left">
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">display(seq(heiluri(kulmat[1], k), k=0..49), insequence=true, axes=NONE, scaling=CONSTRAINED);</font></b>
</td></tr>
</table>
</p>
<p align="center">
<img src="images/heiluri15.gif" width="612" height="612" alt="[Maple Plot]" />
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Entä mitä heilurillemme tapahtuu, jos sille annetaan hieman vauhtia? Tarkastellaan ensin tilannetta, jossa alkuehtoon lisätään vauhtia -1.5 rad/s. </font>
</p>
<p align="left">
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">alkuehto2:= theta(0)=1, omega(0)=-1.5;</font></b>
</td></tr>
</table>
</p>
<p align="center">
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mrow>
    <mi>alkuehto2</mi>
  </mrow>
  <mo>:=</mo>
  <mrow>
    <mrow>
      <mrow>
        <mi>&theta;</mi>
        <mo>&ApplyFunction;</mo>
        <mfenced>
          <mn>0</mn>
        </mfenced>
      </mrow>
      <mo>=</mo>
      <mn>1</mn>
    </mrow>
    <mo>,</mo>
    <mrow>
      <mrow>
        <mi>&omega;</mi>
        <mo>&ApplyFunction;</mo>
        <mfenced>
          <mn>0</mn>
        </mfenced>
      </mrow>
      <mo>=</mo>
      <mn>-1.5</mn>
    </mrow>
  </mrow>
</math>
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Numeerinen ratkaisu:</font>
</p>
<p align="left">
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">rtk:= dsolve({ryhma, alkuehto2}, tuntemattomat, numeric, output=listprocedure);</font></b>
</td></tr>
</table>
</p>
<p align="center">
<img src="images/heiluri16.gif" width="627" height="20" alt="rtk := [t = proc (t) option `Copyright (c) 1993 by the University of Waterloo. All rights reserved.`; t end proc, omega(t) = proc (t) local res, solnproc, outpoint, ndsol; option `Copyright (c) 2000 by..." />
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Piirretään &nbsp;jälleen kuvaaja, jossa punaisella on heilurin kulma </font>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mi>&theta;</mi>
</math>
<font color="#000000">&nbsp;sekä vihreällä kulmanopeus </font>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mi>&omega;</mi>
</math>
<font color="#000000">. </font>
</p>
<p align="left">
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">kulmat:= subs(rtk, theta(t)), subs(rtk, omega(t)):</font></b>
</td></tr>
</table>
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">plot([kulmat], 0..15);</font></b>
</td></tr>
</table>
</p>
<p align="center">
<img src="images/heiluri17.gif" width="612" height="612" alt="[Maple Plot]" />
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Alkeisfunktioiden tarjoamat ratkaisut eivät enää tunnu enää kovinkaan sopivilta. Animoidaan jälleen heilurin liikettä, jotta nähdään, mitä tapahtuu</font>
</p>
<p align="left">
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">display(seq(heiluri(kulmat[1], k), k=0..66), insequence=true, axes=NONE, scaling=CONSTRAINED);</font></b>
</td></tr>
</table>
</p>
<p align="center">
<img src="images/heiluri18.gif" width="612" height="612" alt="[Maple Plot]" />
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Mitä heilurille tapahtuu kun vauhtia annetaan vielä enemmän? Kokeillaan alkuehtoa </font>
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mrow>
    <mrow>
      <mi>&omega;</mi>
      <mo>&ApplyFunction;</mo>
      <mfenced>
        <mn>0</mn>
      </mfenced>
    </mrow>
    <mo>=</mo>
    <mn>-2.0</mn>
  </mrow>
</math>
<font color="#000000">&nbsp;rad/s ja lasketaan. </font>
</p>
<p align="left">
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">alkuehto3:= theta(0)=1, omega(0)=-2;</font></b>
</td></tr>
</table>
</p>
<p align="center">
<math xmlns='http://www.w3.org/1998/Math/MathML'>
  <mrow>
    <mi>alkuehto3</mi>
  </mrow>
  <mo>:=</mo>
  <mrow>
    <mrow>
      <mrow>
        <mi>&theta;</mi>
        <mo>&ApplyFunction;</mo>
        <mfenced>
          <mn>0</mn>
        </mfenced>
      </mrow>
      <mo>=</mo>
      <mn>1</mn>
    </mrow>
    <mo>,</mo>
    <mrow>
      <mrow>
        <mi>&omega;</mi>
        <mo>&ApplyFunction;</mo>
        <mfenced>
          <mn>0</mn>
        </mfenced>
      </mrow>
      <mo>=</mo>
      <mn>-2</mn>
    </mrow>
  </mrow>
</math>
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">rtk:= dsolve({ryhma, alkuehto3}, tuntemattomat, numeric, output=listprocedure);</font></b>
</td></tr>
</table>
</p>
<p align="center">
<img src="images/heiluri19.gif" width="627" height="20" alt="rtk := [t = proc (t) option `Copyright (c) 1993 by the University of Waterloo. All rights reserved.`; t end proc, omega(t) = proc (t) local res, solnproc, outpoint, ndsol; option `Copyright (c) 2000 by..." />
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">kulmat:= subs(rtk, theta(t)), subs(rtk, omega(t));</font></b>
</td></tr>
</table>
</p>
<p align="center">
<img src="images/heiluri110.gif" width="347" height="20" alt="kulmat := proc (t) local res, solnproc, outpoint, ndsol; option `Copyright (c) 2000 by Waterloo Maple Inc. All rights reserved.`; _EnvDSNumericSaveDigits := Digits; Digits := 14; if _EnvInFsolve = true..." />
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Ja animoimme vielä kerran. </font>
</p>
<p align="left">
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">display(seq(heiluri(kulmat[1], k), k=0..30), insequence=true, axes=NONE, scaling=CONSTRAINED);</font></b>
</td></tr>
</table>
</p>
<p align="center">
<img src="images/heiluri111.gif" width="612" height="612" alt="[Maple Plot]" />
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Tarkastellaan seuraavaksi heilurien liikeratoja faasitasossa. Olkoon x-akselina heilurin liikkeen kulma ja y-akselina sen kulmanopeus. </font>
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Käytämme piirtämiseen </font>
<b><font color="#000000">DEtools</font></b>
<font color="#000000">-paketin </font>
<b><font color="#000000">DEplot</font></b>
<font color="#000000">-komentoa. Samalla saamme kuvaan myös suuntakentän.</font>
</p>
<p align="left">
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">with(DEtools):</font></b>
</td></tr>
</table>
</p>
<p align="left">
<tt><pre><font color="#0000FF" size="2">Warning, the name translate has been redefined<br />
</font></pre></tt>
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"><b><font color="#FF0000">DEplot([ryhma], [theta(t),omega(t)], t=-7..7, theta=-Pi..3*Pi, omega=-4..4, [[alkuehto1], [alkuehto2], [alkuehto3]], stepsize=0.05);</font></b>
</td></tr>
</table>
</p>
<p align="center">
<img src="images/heiluri112.gif" width="612" height="612" alt="[Maple Plot]" />
</p>
<p align="left">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top"><tt>&gt; &nbsp;&nbsp;</tt></td>
<td width="100%" valign="top"></td></tr>
</table>
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Sisin suljettu käyrä kuvaa ensimmäistä heiluriliikettä, ulompi toista. Jatkuva värähtelykäyrä kuvaa kolmatta heiluriliikettä. <br />
</font>
</p>
<p align="left">
<i><b><font color="#000000">Tehtäviä</font></b></i>
</p>
<p align="left">
</p>
<p align="left">
<font color="#000000">Heiluriliikkeet, jotka eivät tee kokonaisia pyörähdyksiä, muodostavat umpinaisen käyrän. Pyörivä heiluri muodostaa jatkuvan värähtelykäyrän. Mitä näillä faasitasokuvilla kuvataan? <br />
<br />
Etsi heilurin alkuehtoja muokkaamalla heiluriliike, jossa heiluri juuri ja juuri pyörähtää ympäri. Mikä on lepoasennosta lähdettäessä tarvittava kulmanopeus? Miltä kyseinen liike näyttää faasitasossa? <br />
</font>
</p>

<p><b>Linkkejä</b></p>


 <a href="../xml_mpl/heiluri2.xml">kaksoisheiluri</a><br/>
 <a href="../xml/yhmnor.xml">normaaliryhmä</a><br/>
 <a href="../xml/nkkfas.xml">faasitaso</a><br/>

<p align="left">
<i><font color="#000000">JP &amp; SKK &amp; MS 12.07.2001</font></i>
</p>



</body>
</html>
