<?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>tykki2.mws</title><!-- Created by Maple 8.00, IBM INTEL NT --><link href="../navi/css/sovell.css" rel="stylesheet" type="text/css"/></head><body bgcolor="FFFFFF"><basefont size="3"/><a target="liite" href="../mpl/tykki2.mws">tykki2.mws</a><p align="center"><b><u><font color="#000000" size="5">Tykillä ampuminen 2</font></u></b></p><p align="left"></p><p align="left"><font color="#000000">Mallinnettaessa heittoliikettä, kuten esimerkiksi tykillä ampumista, keskeisinä vaikuttavina tekijöinä ovat painovoima sekä ilmanvastuksen aiheuttama nopeudelle vastakkaissuuntainen voima.<br /></font></p><p align="left"><font color="#000000">Painovoima on </font><img src="images/tykki21.gif" width="64" height="20" alt="[Maple Bitmap]" /><font color="#000000">, missä </font><img src="images/tykki22.gif" width="10" height="16" alt="[Maple Bitmap]" /><font color="#000000">&nbsp;on maan vetovoiman aiheuttama kiihtyvyys ja </font><i><font color="#000000">m</font></i><font color="#000000">&nbsp;heitettävän kappaleen massa. Ilmanvastusvoima on verrannollinen nopeuden neliöön, ja se voidaan mallintaa lausekkeella</font></p><p align="left"></p><p align="center"><img src="images/tykki23.gif" width="154" height="20" alt="[Maple Bitmap]" /></p><p align="left"></p><p align="left"><font color="#000000">missä </font><i><font color="#000000">b</font></i><font color="#000000">&nbsp;on ilmanvastuskerroin, </font><i><font color="#000000">v</font></i><font color="#000000">&nbsp;skalaarinen nopeus, </font><img src="images/tykki24.gif" width="10" height="12" alt="[Maple Bitmap]" /><font color="#000000">&nbsp;nopeus vektorina ja </font><img src="images/tykki25.gif" width="8" height="13" alt="[Maple Bitmap]" /><font color="#000000">&nbsp;nopeuden suuntainen yksikkövektori.</font></p><p align="left"></p><p align="left"><font color="#000000">Yleinen liikeyhtälö </font><img src="images/tykki26.gif" width="64" height="17" alt="[Maple Bitmap]" /><font color="#000000">&nbsp;saa tällöin muodon</font></p><p align="left"></p><p align="center"><img src="images/tykki27.gif" width="192" height="46" alt="[Maple Bitmap]" /></p><p align="left"></p><p align="left"><font color="#000000">missä on merkitty </font><img src="images/tykki28.gif" width="62" height="41" alt="[Maple Bitmap]" /><font color="#000000">&nbsp;sekä </font><img src="images/tykki29.gif" width="54" height="39" alt="[Maple Bitmap]" /><font color="#000000">.</font></p><p align="left"></p><p align="left"><font color="#000000">Tarkastellaan tilannetta, jossa tykillä ammutaan poispäin liikkuvaan maaliin. Mikä on oikea ampumiskulma, kun 25 metrin korkeudella sijaitsevalta tykkilavetilta ammutaan 10 kg kranaatti nopeudella 1000 m/s kohti maalia, jonka etäisyys ampumishetkellä on tasan 5 km? Maali liikkuu 15 m/s tykistä poispäin veden pintaa pitkin, ja ilmanvastuskerroin kranaatille on </font><math xmlns='http://www.w3.org/1998/Math/MathML'>  <mrow>    <mi>b</mi>    <mo>=</mo>    <mfrac>      <mn>1</mn>      <mn>10000</mn>    </mfrac>  </mrow></math><font color="#000000">.</font></p><p align="left"></p><p align="left"><font color="#000000">Jaetaan yllä esitetty toisen kertaluvun vektorimuotoinen differentiaaliyhtälö kahteen eri osayhtälöön, z-suuntaan ja x-suuntaan, ja ratkaistaan yhtälöt. Laskujen aluksi on syytä hävittää mahdollisista aiemmista laskuista jääneet muuttujat.<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">restart;</font></b></td></tr></table></p><p align="left"></p><p align="left"><font color="#000000">Määritellään differentiaaliyhtälöryhmä &nbsp;ja sen tuntemattomat 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">ryhma:= m*diff(x(t), t$2)=-b*diff(x(t), t)*sqrt(diff(x(t), t)^2+diff(z(t), t)^2), m*diff(z(t), t$2)=-m*g-b*diff(z(t), t)*sqrt(diff(x(t), t)^2+diff(z(t), t)^2);</font></b></td></tr></table></p><p align="left"><math xmlns='http://www.w3.org/1998/Math/MathML'>  <mrow>    <mi>ryhma</mi>  </mrow>  <mo>:=</mo>  <mrow>    <mrow>      <mrow>        <mi>m</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>            <mrow>              <mi>x</mi>              <mo>&ApplyFunction;</mo>              <mfenced>                <mi>t</mi>              </mfenced>            </mrow>          </mrow>        </mfenced>      </mrow>      <mo>=</mo>      <mrow>        <mo>-</mo>        <mrow>          <mrow>            <mi>b</mi>            <mo>&InvisibleTimes;</mo>            <mfenced>              <mrow>                <mfrac>                  <mo>&DifferentialD;</mo>                  <mrow>                    <mo>&DifferentialD;</mo>                    <mi>t</mi>                  </mrow>                </mfrac>                <mrow>                  <mi>x</mi>                  <mo>&ApplyFunction;</mo>                  <mfenced>                    <mi>t</mi>                  </mfenced>                </mrow>              </mrow>            </mfenced>          </mrow>          <mo>&InvisibleTimes;</mo>          <msqrt>            <mfenced>              <mrow>                <msup>                  <mfenced>                    <mrow>                      <mfrac>                        <mo>&DifferentialD;</mo>                        <mrow>                          <mo>&DifferentialD;</mo>                          <mi>t</mi>                        </mrow>                      </mfrac>                      <mrow>                        <mi>x</mi>                        <mo>&ApplyFunction;</mo>                        <mfenced>                          <mi>t</mi>                        </mfenced>                      </mrow>                    </mrow>                  </mfenced>                  <mn>2</mn>                </msup>                <mo>+</mo>                <msup>                  <mfenced>                    <mrow>                      <mfrac>                        <mo>&DifferentialD;</mo>                        <mrow>                          <mo>&DifferentialD;</mo>                          <mi>t</mi>                        </mrow>                      </mfrac>                      <mrow>                        <mi>z</mi>                        <mo>&ApplyFunction;</mo>                        <mfenced>                          <mi>t</mi>                        </mfenced>                      </mrow>                    </mrow>                  </mfenced>                  <mn>2</mn>                </msup>              </mrow>            </mfenced>          </msqrt>        </mrow>      </mrow>    </mrow>    <mo>,</mo>    <mrow>      <mrow>        <mi>m</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>            <mrow>              <mi>z</mi>              <mo>&ApplyFunction;</mo>              <mfenced>                <mi>t</mi>              </mfenced>            </mrow>          </mrow>        </mfenced>      </mrow>      <mo>=</mo>      <mrow>        <mrow>          <mo>-</mo>          <mrow>            <mi>m</mi>            <mo>&InvisibleTimes;</mo>            <mi>g</mi>          </mrow>        </mrow>        <mo>-</mo>        <mrow>          <mrow>            <mi>b</mi>            <mo>&InvisibleTimes;</mo>            <mfenced>              <mrow>                <mfrac>                  <mo>&DifferentialD;</mo>                  <mrow>                    <mo>&DifferentialD;</mo>                    <mi>t</mi>                  </mrow>                </mfrac>                <mrow>                  <mi>z</mi>                  <mo>&ApplyFunction;</mo>                  <mfenced>                    <mi>t</mi>                  </mfenced>                </mrow>              </mrow>            </mfenced>          </mrow>          <mo>&InvisibleTimes;</mo>          <msqrt>            <mfenced>              <mrow>                <msup>                  <mfenced>                    <mrow>                      <mfrac>                        <mo>&DifferentialD;</mo>                        <mrow>                          <mo>&DifferentialD;</mo>                          <mi>t</mi>                        </mrow>                      </mfrac>                      <mrow>                        <mi>x</mi>                        <mo>&ApplyFunction;</mo>                        <mfenced>                          <mi>t</mi>                        </mfenced>                      </mrow>                    </mrow>                  </mfenced>                  <mn>2</mn>                </msup>                <mo>+</mo>                <msup>                  <mfenced>                    <mrow>                      <mfrac>                        <mo>&DifferentialD;</mo>                        <mrow>                          <mo>&DifferentialD;</mo>                          <mi>t</mi>                        </mrow>                      </mfrac>                      <mrow>                        <mi>z</mi>                        <mo>&ApplyFunction;</mo>                        <mfenced>                          <mi>t</mi>                        </mfenced>                      </mrow>                    </mrow>                  </mfenced>                  <mn>2</mn>                </msup>              </mrow>            </mfenced>          </msqrt>        </mrow>      </mrow>    </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">muuttujat:= x(t), z(t);</font></b></td></tr></table></p><p align="center"><math xmlns='http://www.w3.org/1998/Math/MathML'>  <mrow>    <mi>muuttujat</mi>  </mrow>  <mo>:=</mo>  <mrow>    <mrow>      <mi>x</mi>      <mo>&ApplyFunction;</mo>      <mfenced>        <mi>t</mi>      </mfenced>    </mrow>    <mo>,</mo>    <mrow>      <mi>z</mi>      <mo>&ApplyFunction;</mo>      <mfenced>        <mi>t</mi>      </mfenced>    </mrow>  </mrow></math></p><p align="left"></p><p align="left"><font color="#000000">Määritellään vakiot ja alkuehto. Ammuksen lähtökulma olkoon </font><math xmlns='http://www.w3.org/1998/Math/MathML'>  <mi>&theta;</mi></math><font color="#000000">. Sisällytetään ehtoon sekä ammuksen alkunopeus jaettuna nopeuskomponentteihin että lähtökorkeus.</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">g:= 9.81: b:= 10^(-4): m:= 10: v0:= 1000:</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">alkuehto:= x(0)=0, z(0)=25, D(x)(0)=v0*cos(theta), D(z)(0)=v0*sin(theta);</font></b></td></tr></table></p><p align="center"><math xmlns='http://www.w3.org/1998/Math/MathML'>  <mrow>    <mi>alkuehto</mi>  </mrow>  <mo>:=</mo>  <mrow>    <mrow>      <mrow>        <mi>x</mi>        <mo>&ApplyFunction;</mo>        <mfenced>          <mn>0</mn>        </mfenced>      </mrow>      <mo>=</mo>      <mn>0</mn>    </mrow>    <mo>,</mo>    <mrow>      <mrow>        <mi>z</mi>        <mo>&ApplyFunction;</mo>        <mfenced>          <mn>0</mn>        </mfenced>      </mrow>      <mo>=</mo>      <mn>25</mn>    </mrow>    <mo>,</mo>    <mrow>      <mrow>        <mfenced>          <msup>            <mi>x</mi>            <mo>&prime;</mo>          </msup>        </mfenced>        <mo>&ApplyFunction;</mo>        <mfenced>          <mn>0</mn>        </mfenced>      </mrow>      <mo>=</mo>      <mrow>        <mn>1000</mn>        <mo>&InvisibleTimes;</mo>        <mrow>          <mi>cos</mi>          <mo>&ApplyFunction;</mo>          <mfenced>            <mi>&theta;</mi>          </mfenced>        </mrow>      </mrow>    </mrow>    <mo>,</mo>    <mrow>      <mrow>        <mfenced>          <msup>            <mi>z</mi>            <mo>&prime;</mo>          </msup>        </mfenced>        <mo>&ApplyFunction;</mo>        <mfenced>          <mn>0</mn>        </mfenced>      </mrow>      <mo>=</mo>      <mrow>        <mn>1000</mn>        <mo>&InvisibleTimes;</mo>        <mrow>          <mi>sin</mi>          <mo>&ApplyFunction;</mo>          <mfenced>            <mi>&theta;</mi>          </mfenced>        </mrow>      </mrow>    </mrow>  </mrow></math></p><p align="left"></p><p align="left"><font color="#000000">Differentiaaliyhtälöryhmä ei ole ratkaistavissa alkeisfunktioiden avulla, joten ryhmää ei voi ratkaista </font><i><font color="#000000">Maple</font></i><font color="#000000">n avulla </font><math xmlns='http://www.w3.org/1998/Math/MathML'>  <mi>&theta;</mi></math><font color="#000000">:n funktiona. Suljetussa muodossa olevan ratkaisun sijaan joudutaan turvautumaan arvaukseen. Arvataan jokin kulma (radiaaneissa), ja katsotaan, miten hyvin laukaus osui.</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">theta:= 0.03;</font></b></td></tr></table></p><p align="center"><math xmlns='http://www.w3.org/1998/Math/MathML'>  <mrow>    <mi>&theta;</mi>  </mrow>  <mo>:=</mo>  <mrow>    <mn>.3e-1</mn>  </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">rtk1:= dsolve({ryhma, alkuehto}, {muuttujat}, numeric, startinit=true, output=listprocedure);</font></b></td></tr></table></p><p align="left"><img src="images/tykki210.gif" width="645" height="45" alt="rtk1 := [t = proc (t) option `Copyright (c) 1993 by the University of Waterloo. All rights reserved.`; t end proc, x(t) = proc (t) local res, solnproc, outpoint, ndsol; option `Copyright (c) 2000 by Wa..." /><br /><img src="images/tykki211.gif" width="419" height="45" alt="rtk1 := [t = proc (t) option `Copyright (c) 1993 by the University of Waterloo. All rights reserved.`; t end proc, x(t) = proc (t) local res, solnproc, outpoint, ndsol; option `Copyright (c) 2000 by Wa..." /></p><p align="left"></p><p align="left"><font color="#000000">Poimitaan ratkaisusta x- ja z-suuntia kuvaavat komponentit listaksi ja piirretään kuvio.</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">lentorata1:= subs(rtk1, [x(t), z(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([lentorata1[], 0..10]);</font></b></td></tr></table></p><p align="center"><img src="images/tykki212.gif" width="353" height="353" alt="[Maple Plot]" /></p><p align="left"></p><p align="left"><font color="#000000">Katsotaan miten lähelle laukaus osui. Huomaa, että ratkaisussa on huomioitu myös kohteen liike.</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">lentoaika1:= fsolve(lentorata1[2](t)=0, t=0..10);</font></b></td></tr></table></p><p align="center"><math xmlns='http://www.w3.org/1998/Math/MathML'>  <mrow>    <mi>lentoaika1</mi>  </mrow>  <mo>:=</mo>  <mrow>    <mn>6.811463394</mn>  </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">osmaet1:= lentorata1[1](lentoaika1)-(5000+15*lentoaika1);</font></b></td></tr></table></p><p align="center"><math xmlns='http://www.w3.org/1998/Math/MathML'>  <mrow>    <mi>osmaet1</mi>  </mrow>  <mo>:=</mo>  <mrow>    <mn>1484.431854</mn>  </mrow></math></p><p align="left"></p><p align="left"><font color="#000000">Ammus osuu veteen noin puolitoista kilometriä liian kauaksi. Lähtökulma oli siis liian suuri. Arvataan uudestaan tarkoituksena haarukoida oikea tulos arvausten väliin. Tämän jälkeen voidaan systemaattisesti hakea oikea kulma. </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">theta:= 0.01;</font></b></td></tr></table></p><p align="center"><math xmlns='http://www.w3.org/1998/Math/MathML'>  <mrow>    <mi>&theta;</mi>  </mrow>  <mo>:=</mo>  <mrow>    <mn>.1e-1</mn>  </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">rtk2:= dsolve({ryhma,alkuehto}, {muuttujat}, numeric, startinit=true, output=listprocedure);</font></b></td></tr></table></p><p align="left"><img src="images/tykki213.gif" width="645" height="45" alt="rtk2 := [t = proc (t) option `Copyright (c) 1993 by the University of Waterloo. All rights reserved.`; t end proc, x(t) = proc (t) local res, solnproc, outpoint, ndsol; option `Copyright (c) 2000 by Wa..." /><br /><img src="images/tykki214.gif" width="419" height="45" alt="rtk2 := [t = proc (t) option `Copyright (c) 1993 by the University of Waterloo. All rights reserved.`; t end proc, x(t) = proc (t) local res, solnproc, outpoint, ndsol; option `Copyright (c) 2000 by Wa..." /></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">lentorata2:= subs(rtk2, [x(t), z(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">lentoaika2:= fsolve(lentorata2[2](t)=0, t=0..10);</font></b></td></tr></table></p><p align="center"><math xmlns='http://www.w3.org/1998/Math/MathML'>  <mrow>    <mi>lentoaika2</mi>  </mrow>  <mo>:=</mo>  <mrow>    <mn>3.499905031</mn>  </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">osumaet2:= lentorata2[1](lentoaika2)-(5000+15*lentoaika2);</font></b></td></tr></table></p><p align="center"><math xmlns='http://www.w3.org/1998/Math/MathML'>  <mrow>    <mi>osumaet2</mi>  </mrow>  <mo>:=</mo>  <mrow>    <mn>-1612.618768</mn>  </mrow></math></p><p align="left"></p><p align="left"><font color="#000000">Nyt laukaus jäi liian lyhyeksi. Saimme kuitenkin haarukoitua osumisvälin. Löytääksemme tarkan ampumiskulman, teemme organisoidun kokeilun. </font></p><p align="left"></p><p align="left"><font color="#000000">Tehdään pieni </font><b><font color="#000000">for</font></b><font color="#000000">-silmukka, joka tulostaa osumapaikan 21 laskupisteessä 0.001 radiaanin välein. Laskentamenettely hieman poikkeaa edellä olevista, koska Maplen uudemmissa versioissa fsolve-funktio ei kaikissa tapauksissa toimi oikein. Tämän takia käytössä on seuraava erikseen ohjelmoitu proseduuri </font><font color="#000000">nollakohta</font><font color="#000000">, jossa funktion nollakohdan hakemiseen käytetään </font><i><font color="#000000">regula falsi</font></i><font color="#000000">&nbsp;-menetelmää.</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">nollakohta:=proc(fkt,x1,x2)<br />local a,b,c,fa,fb:<br />a:=x1: b:=x2: fa:=fkt(a): fb:=fkt(b):<br />if fa*fb&gt;0 then print(FAIL); return end if:<br />c:=(a+b)/2:<br />while abs(a-c)&gt;0.00000001 do<br />a:=c: fa:=fkt(a):<br />c:=a-(a-b)/(fa-fb)*fa:<br />end do:<br />c;<br />end proc:</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">i:= 0:<br />for theta from 0.01 by 0.001 to 0.03 do<br />rtk[i]:= dsolve({ryhma, alkuehto}, {muuttujat}, numeric, startinit=true, output=listprocedure);<br />lentorata:= subs(rtk[i], [x(t), z(t)]);<br />lentoaika:= nollakohta(lentorata[2],0.,10.);<br />osumataul[i]:= lentorata[1](lentoaika)-(5000+15*lentoaika);<br />kulmataul[i]:= theta;<br />i:= i+1;<br />od:<br /><br />kulmat:=[seq(kulmataul[k], k=0..20)]:<br />etaisyydet:= [seq(osumataul[k],k=0..20)];</font></b></td></tr></table></p><p align="left"><math xmlns='http://www.w3.org/1998/Math/MathML'>  <mrow>    <mi>etaisyydet</mi>  </mrow>  <mo>:=</mo>  <mrow>    <mfenced open='[' close=']'>      <mn>-1612.618760</mn>      <mn>-1475.385567</mn>      <mn>-1335.351170</mn>      <mn>-1192.699248</mn>      <mn>-1047.610328</mn>      <mn>-900.2601212</mn>      <mn>-750.8182643</mn>      <mn>-599.4473395</mn>      <mn>-446.3022613</mn>      <mn>-291.5298303</mn>      <mn>-135.2685688</mn>      <mn>22.35134319</mn>      <mn>181.2079169</mn>      <mn>341.1872060</mn>      <mn>502.1829512</mn>      <mn>664.0962402</mn>      <mn>826.8351781</mn>      <mn>990.3144468</mn>      <mn>1154.454953</mn>      <mn>1319.183384</mn>      <mn>1484.431852</mn>    </mfenced>  </mrow></math></p><p align="left"></p><p align="left"><font color="#000000">Etsitään lähintä osumaa vastaava indeksi ja tämän avulla ampumiskulma, osumaetäisyys ja lentoaika.</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">member(min(map(x-&gt;abs(x),etaisyydet)[]),etaisyydet,'ind'):<br />lahin:=[kulmat[ind],etaisyydet[ind]];</font></b></td></tr></table></p><p align="center"><math xmlns='http://www.w3.org/1998/Math/MathML'>  <mrow>    <mi>lahin</mi>  </mrow>  <mo>:=</mo>  <mrow>    <mfenced open='[' close=']'>      <mn>.21e-1</mn>      <mn>22.35134319</mn>    </mfenced>  </mrow></math></p><p align="left"></p><p align="left"><font color="#000000">Sama uudestaan uudella kapeammalla haarukalla ja 0.0001 radiaanin askelvälillä. </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">i:= 0:<br />for theta from 0.020 by 0.0001 to 0.022 do<br />rtk[i]:= dsolve({ryhma, alkuehto}, {muuttujat}, numeric, startinit=true, output=listprocedure);<br />lentorata:= subs(rtk[i], [x(t), z(t)]);<br />lentoaika:= nollakohta(lentorata[2],0.,10.);<br />osumataul[i]:= lentorata[1](lentoaika)-(5000+15*lentoaika);<br />kulmataul[i]:= theta;<br />i:= i+1;<br />od:<br /><br />kulmat:=[seq(kulmataul[k], k=0..20)]:<br />etaisyydet:= [seq(osumataul[k],k=0..20)];</font></b></td></tr></table></p><p align="left"><math xmlns='http://www.w3.org/1998/Math/MathML'>  <mrow>    <mi>etaisyydet</mi>  </mrow>  <mo>:=</mo>  <mrow>    <mfenced open='[' close=']'>      <mn>-135.2685688</mn>      <mn>-119.5656401</mn>      <mn>-103.8492586</mn>      <mn>-88.11954534</mn>      <mn>-72.37662850</mn>      <mn>-56.62062526</mn>      <mn>-40.85166864</mn>      <mn>-25.06987092</mn>      <mn>-9.27535822</mn>      <mn>6.53175518</mn>      <mn>22.35134319</mn>      <mn>38.18329350</mn>      <mn>54.02748394</mn>      <mn>69.88380224</mn>      <mn>85.75213014</mn>      <mn>101.6323504</mn>      <mn>117.5243548</mn>      <mn>133.4280249</mn>      <mn>149.3432505</mn>      <mn>165.2699182</mn>      <mn>181.2079169</mn>    </mfenced>  </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">member(min(map(x-&gt;abs(x),etaisyydet)[]),etaisyydet,'ind'):<br />lahin:=[kulmat[ind],etaisyydet[ind]];</font></b></td></tr></table></p><p align="center"><math xmlns='http://www.w3.org/1998/Math/MathML'>  <mrow>    <mi>lahin</mi>  </mrow>  <mo>:=</mo>  <mrow>    <mfenced open='[' close=']'>      <mn>.209e-1</mn>      <mn>6.53175518</mn>    </mfenced>  </mrow></math></p><p align="left"></p><p align="left"><font color="#000000">Osuma on siis runsaan kuuden metrin päässä ja vastaava ampumiskulma on asteissa</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">convert(lahin[1], degrees):<br />evalf(%);</font></b></td></tr></table></p><p align="center"><math xmlns='http://www.w3.org/1998/Math/MathML'>  <mrow>    <mn>1.197481792</mn>    <mo>&InvisibleTimes;</mo>    <mi>degrees</mi>  </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"></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"></td></tr></table></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">Piirrä lähimmäksi osuvan ammuksen lentorata. Määritä radan lakikorkeus ja ammuksen lentoaika. <br /><br />Suurenna ilmanvastuskerrointa, ja tutki, miten se vaikuttaa radan muotoon. <br /></font></p><p align="left"><b>Linkkejä</b></p><p align="left"><a href="../xml_mpl/tykki1.xml">tykillä ampuminen huomioimatta ilmanvastusta</a><br/></p><p align="left"><i><font color="#000000">JP &amp; SKK &amp; MS 12.07.2001</font></i><font color="#000000">&nbsp;</font><i><font color="#000000">&amp; 08.07.2005</font></i></p></body></html>