Suunavälja ja diferentsiaalvõrrandi lahendaja

Loe esimest järku diferentsiaalvõrrandit väikeste puutujajoonte väljana. Klõpsa graafikul, et lisada algtingimusi ja joonistada vastavad lahenduskõverad.

Interaktiivse simulatsiooni laadimine...

Õppetund

Teooria — Suunavälja ja diferentsiaalvõrrandi lahendaja

Esimest järku diferentsiaalvõrrand dy/dx = f(x,y) ei ütle kunagi, mis on y. See väljendab, kui kiiresti y igas punktis muutub. Lahend on mis tahes kõver, mille tõus igas punktis võrdub seal väärtusega f — ja neid on terve pere, üks läbi iga alguspunkti.

Mida iga sümbol tähendab

dy/dx
lahendikõvera tõus — suurus, mida võrrand ette kirjutab, mitte see, mille leidmiseks seda lahendatakse.
f(x,y)
parem pool: eeskiri, mis annab iga punkti korral tõusu. Viis siinset eelseadistust on y, x*y, -y/x, y*(1-y) ja x^2-y.
(x₀,y₀)
algtingimus — üks punkt, mida lahend peab läbima. See valib lahendite perest välja ühe konkreetse kõvera ning just selle annab klõps graafikul.

Kuidas nähtut lugeda

Paneel pigem loendab joonistatut kui kirjeldab seda: 21 x 21 = 441 tõusumärki vaikevõrgustikul, parajasti nähtav suurim lõplik tõus, graafiku aken ning see, mitu lahendikõverat oled alustanud. Iga klõps lisab algtingimuse ja RK4-lahendaja joonistab seejärel vastava kõvera välja nii x-i edasi- kui ka tagasisuunas.

Eeldab
Eeldab, et võrrand on esimest järku ja juba avaldatud dy/dx suhtes ning et f tagastab iga punkti jaoks täpselt ühe tõusu. Võrgustik on väljast võetud valim, mitte väli ise — tiheduse suurendamine joonistab rohkem märke, ilma et see muudaks ühtegi lahendit.
Ei kehti, kui
Kui valid -y/x, muutub loenduri näit tekstiks 421 finite, 20 vertical/singular. Need on y-teljel asuvad võrgustikupunktid, kus x = 0 tõttu jääb tõus määratlemata: väljal puudub seal tõepoolest suund ja ükski lahendikõver ei läbi seda. Suunaväli ei saa samuti näidata, kus lahend sööstab lõpmatusse lõpliku x-i korral — pilt püsib täiesti rahulik, samal ajal kui lahend seda ei tee.

Pilt vastab võrrandile, ilma et seda kunagi lahendataks 🖖

Suunaväli kujutab esimese järgu harilikku diferentsiaalvõrrandit dy/dx = f(x,y), joonistades võrgustiku punktidesse lühikesed sirglõigud tõusuga f(x,y). See annab geomeetrilise ülevaate lahenduskõverate kulgemisest ilma võrrandit analüütiliselt lahendamata, näidates tasakaaluseise (dy/dx = 0) ja pöördepunkte.

Nooltele järgnedes, midagi lahendamata 🖖

Kujuta suunavälja kui hulka pisikesi viitasid: igas punktis näitab üks, kuhu lahend peab järgmisena liikuma. Lahenduskõver lihtsalt järgib neid suundi, nagu leht, mis triivib voolus. Kuna igas punktis on täpselt üks suund, määrab lähtepunkti (ehk algtingimuse) valimine ainsa kõvera — klõpsa ükskõik kuhu ja tööriist joonistab selle ühese tee.

RK4 muutub salaja Simpsoni valemiks 🖖

Tööriista kasutatav RK4-meetod hindab tõusu igal sammul neli korda ja segab need kaaludega 1:2:2:1. Kui su võrrand on lihtsalt dy/dx = f(x), ilma y-ta paremal pool, langeb see segu täpselt kokku Simpsoni valemiga integreerimiseks: h/6·(f₀ + 4f_m + f₁). Nii on hariliku diferentsiaalvõrrandi numbriline lahendamine ja määratud integraali arvutamine siin üks ja sama arvutus.

Harjutus

Kontrolli ennast

Ennusta vastust esmalt ise ja kasuta siis ülal olevaid juhtelemente. Ava lahendus alles siis, kui oled otsustanud — just see teebki sellest harjutuse.

  1. Eelseade hüperboolid lahendab y′ = −y/x ja näitab real „Suurim lõplik |tõus|“ väärtust 10. Tõsta võrgu tihedus 30-le ja loe see rida uuesti — ning tee sama eelseadetega eksponentsiaalne ja paraboolid.

    Näita vastust
    Hüperboolide puhul liigub rida 5 → 10 → 15, kui tihedus on 10, 20 ja 30. Eksponentsiaalse puhul jääb see 3 juurde ja paraboolide puhul 11 juurde, ükskõik mida sa teed. Singulaarse välja puhul kirjeldab see rida sinu võrku, mitte võrrandit: −y/x-il ei ole üldse suurimat tõusu, sest see jookseb x → 0 korral lõpmatusse, nii et tööriist saab teatada ainult kõige järsemast märgist, millele ta juhtus sattuma. Teljele lähim veerg asub kohal 8/tihedus, seega tiheduse 20 juures on see x = 0.4 ja 4/0.4 = 10 — täpselt ekraanil olev arv. Need 20 vertikaalseks märgitud kriipsu ongi kogu veerg x = 0, kus tõus ei ole arv. Ülejäänud kaks välja on oma aknas tõepoolest tõkestatud, nii et võrk leiab iga kord sama maksimumi.
  2. Eelseade logistiline lahendab y′ = y(1−y), mille kasv on teadagi kõige kiirem kohal y = 1/2, kus määr on 0.25. Paneel teatab suurimaks |tõusuks| 0.75. Kust ta leiab kolm korda järsema tõusu?

    Näita vastust
    Väljastpoolt populatsiooni. Eelseade aken ulatub y = −0.5 kuni 1.5 ja kohal y = −0.5 on määr (−0.5)(1.5) = −0.75 — järsem kui miski tasakaalujoonte vahel, ja kahanev, sest rida teatab absoluutväärtuse. Sea y min 0-ks ja y max 1-ks ning rida langeb 0.25-le, mis leitakse kohal y = 0.5, kuhu bioloogia selle paneb. Nii range ei pea sa isegi olema: −0.2 kuni 1.2 annab samuti 0.25, sest (−0.2)(1.2) on ainult 0.24. Kuulus arv kirjeldab logistilist populatsiooni; paneel kirjeldab ristkülikut, mille sa tal joonistada palusid.

Ülesanded täielikult lahendatud

  1. Võrrandi y′ = −y/x kõverate pere 6 sammu

    y′ = −y/x piirkonnas −4 ≤ x ≤ 4 ja −4 ≤ y ≤ 4 võrgutihedusega 20. Enne kui joonistatakse ainustki lahendikõverat, loendage, mitmele tähisele saab üldse tõusu omistada, leidke neist kõige järsem ning tehke seejärel kindlaks, millisest kõverate sugukonnast väli koosneb.

    1. Võrgustik on 20 intervalli laiune, mis tähendab 21 valimijoont, mitte 20 — ka otsad loevad. Seetõttu võtab 8 ühiku laiune aken valimi iga 0,4 tagant ning sama samm kehtib vertikaalselt.

    2. 21 on paaritu arv, nii et üks valimijoon langeb täpselt akna keskele ning selle akna keskkoht on x = 0. Selles veerus on parempoolse avaldise nimetajas null.

    3. Selles veerus annab iga punkt, kus y ≠ 0, ilma väärtuseta jagatise: suuna, mis joonistatakse püstiselt, kuid arvulist väärtust esitada pole. Need moodustavad 20 punkti 21-st. Viimane on koordinaatide alguspunkt, kus jagatis on 0/0 ja tööriist lahendab selle joonistades tähise horisontaalselt — see on valik, mitte paratamatus, ning just seepärast tuleb lõplikuks arvuks 421, mitte 420.

    4. Tõusu järsus on |y|/|x|, seega kõige järsem tähis asub kõrgeimas punktis kitsaima nullist erineva veeru kohal: 4 jagatud 0,4-ga. Maksimaalse järsusega tähised asuvad vahetult singulaarse joone kõrval, mis ongi ainus huvitav asi nende juures.

    5. Nüüd kõveratest endast. Võrrandis saab muutujad eraldada ning mõlema poole integreerimine muudab logaritmide summa korrutiseks: xy on konstantne piki iga lahendit, seega on tegemist võrdkülgsete hüperboolide sugukonnaga.

    6. Kontrollige seda punktis (1, 2), kus tähise tõus on −2. Seda punkti läbiva hüperbooli xy = 2 tõus on seal −2, seega see sobib. Seda samat punkti läbiva ringjoone x² + y² = 5 tõus on −x/y = −0,5, seega see ei sobi — raadiusega risti olemist kirjeldab võrrand y′ = −x/y, kus x ja y on vastupidises järjekorras.

    Vastus

    421 lõplikku tähist, 20 vertikaalset ja suurim tõus 10. Vaid kaks neist kolmest ütlevad midagi diferentsiaalvõrrandi kohta. Tehes viimase arvutuse uuesti nii, et võrgustik jäetakse sümboliks, on suurim võrgustiku nähtav tõus 4 jagatud 8/d-ga, mis on d/2 — see arv on pool tihedusseadistusest ja mitte midagi muud. Võrrandil ei ole üldse suurimat tõusu; |y′| kasvab piiramatult, kui x → 0, ning paneel kajastab vaid seda, kui peenelt see vaatles, mitte seda, kui järsuks väli muutub. Tiheduse 21 korral on efekt veelgi ilmekam: 22 valimijoont kummalgi küljel jäävad mõlemale poole sirget x = 0, sellele sattumise asemel, seega osutuvad kõik 484 tähist lõplikuks ning singulaarne veerg kaob loendist, jäädes samal ajal täpselt sama singulaarseks kui enne.

  2. Punkti y = 0,1 läbiv lahend võrrandile y′ = y(1 − y) 6 sammu

    y′ = y(1 − y) piirkonnas −2 ≤ x ≤ 6 ja −0,5 ≤ y ≤ 1,5 võrgutihedusega 20. Ilma midagi lahendamata öelge, kus väli on horisontaalne, kuhu poole peab liikuma lahend läbi punkti y = 0,1 ja kus selles aknas on tähised kõige järsemad. Seejärel määrake arvuliselt, kui kaua tõus aega võtab.

    1. Tähis on horisontaalne täpselt seal, kus parempoolne avaldis võrdub nulliga, ning korrutis võrdub nulliga vaid siis, kui seda teeb mõni tegur. Tulemuseks on kaks väärtust, millest kumbki on lahend omaette: konstantse väärtusega funktsioonid y ≡ 0 ja y ≡ 1 rahuldavad võrrandit iga x korral.

    2. Mõlemad langevad valimijoontest kohale. 21 y-väärtust algavad väärtusest −0,5 ja edenevad sammuga 0,1, seega kuuluvad 0 ja 1 nende hulka ning kaks horisontaalset rida joonistatakse tegelikult välja, selle asemel et olla vaid kaudselt mõlema poole kalletega vihjatud.

    3. Horisontaalsete ridade vahel on mõlemad tegurid positiivsed, seega on iga tähis suunatud üles; väljaspool neid on ühe teguri märk muutunud vastupidiseks ning tähised on suunatud alla. Algväärtusest 0,1 algav lahend tõuseb ega saa kunagi jõuda väärtuseni 1 — sellest joonest läbipääsemiseks peaks see lõikama sellel asuvat konstantset lahendit, kuid selle võrrandi kaks lahendit ei saa lõikuda.

    4. Tõusev ja tõkestatud ei tähenda sama mida stabiilne, seega nihutage igat tasakaalupunkti veidi ja jälgige märki. Veidi üle 0 on tõus umbes +ε ja tõukab edasi eemale; veidi üle 1 on see umbes −ε ja tõukab tagasi. Üks võrrand, kaks horisontaalset joont, vastupidised tulemused.

    5. Kõige järsemad tähised ei asu seal, kus toimub kasv. Vahemikus 0 ≤ y ≤ 1 on kiireim muutus kohal y = 0,5 ning selle väärtus on 0,25, kuid aken ulatub väärtusteni −0,5 ja 1,5, kus korrutis on −0,75 — kolm korda järsem, selliste populatsiooni väärtuste juures, mille kohta mudel ei käi.

    6. Üks suurus muudab kõvera sirgeks. Võtke šansside y/(1 − y) logaritmist tuletis: liitfunktsiooni tuletise reegel annab täpselt teguri y(1 − y), mida võrrand pakub, need kaks taanduvad ning järelejäänu kasvab konstantse kiirusega 1.

    Vastus

    Kaks tasakaalupunkti, 0 tõukuv ja 1 tõmbav, ning suurim |tõus| 0,75, mis jääb täielikult väljapoole piirkonda 0 ≤ y ≤ 1. Viimane samm on see, mida tasub meeles pidada. Šansside logaritm edeneb täpselt 1 võrra muutuja x ühiku kohta, seega võtab tõus 10%-lt 90%-le muutuja x teljel ln(9 ÷ 1/9) = ln 81 = 4,394, sõltumata algväärtusest. Paneelil ei kuvata sellest midagi, kuid see on arv, mida modelleerija tegelikult vajab: mitte kõvera kõrgus, vaid selle ülemineku pikkus, mille määrab üksnes kasvukiirus. See aken on 8 ühikut lai, seega kulutab vasakult nulli lähedalt sisenev lahend veidi üle poole sellest kogu tõusu sooritamiseks ning ülejäänud aja lebades vastu joont y = 1.

Allikad (1)
  • Direction fields, initial-value problems and when a solution is guaranteed to exist: W. E. Boyce & R. C. DiPrima, Elementary Differential Equations and Boundary Value Problems, 10th ed. John Wiley & Sons, 2012. ISBN 978-0-470-45831-0.

Näiteülesanded

  • y' = y - Siin on 441 kriipsu, mis on piki sirget y = 0 horisontaalsed ja kõige järsemad nurkades, kus tõus on 3. Nimetatud horisontaalne rida on ise lahend, mida ükski kõver ei lõika. Seega määrab sinu esimese kliki märk, kas kõver hakkab tõusma või langema. Edaspidi ei saa seda miski muuta.
  • Logistiline - Horisontaalsed kriipsud kulgevad piki kaht sirget, y = 0 ja y = 1. Mõlemad on ka lahendid. Nende vahelt startiv kõver jääb lõksu ja peab lähenema väärtusele 1. Ruudustiku suurim tõus 0,75 ei asu üldse sellel S-kõveral, vaid hoopis sirgel y = −0,5, alumisest lahendist madalamal.
  • Hüperboolid - Loendur jaguneb 421 lõplikuks ja 20 vertikaalseks kriipsuks. Vertikaalid asuvad tulbas x = 0, kus avaldisel −y/x puudub väärtus. Suurenda nüüd tihedust 20 juurest 21 peale: saad 484 lõplikku kriipsu, singulaarseid ei teki. Ruudustik ei satu enam teljele. Singulaarsus paigast ei liikunud. Diskreetimine läks sellest lihtsalt mööda.
  • Paraboolid - Horisontaalsed kriipsud joonistavad välja parabooli y = x² ning iga lahend lõikab seda horisontaalselt. Parabool ise aga lahend ei ole – võrrand nõuab sellel tõusu 0, samas kui kõvera enda tõus on 2x. Suurima tõusuga kriips, 11, asub all vasakus nurgas.