Upgrade to Pro — share decks privately, control downloads, hide ads and more …

高校理科の算法の誤差評価

 高校理科の算法の誤差評価

情報オリンピック夏季セミナー2020

ynymxiaolongbao

August 28, 2020
Tweet

Other Decks in Science

Transcript

  1. ߴߍཧՊͷࢉ๏ͷޡࠩධՁ ถࢁɹӯ࢜ (ynymxiaolongbao) ৘ใΦϦϯϐοΫՆقηϛφʔ 2020 ͸͡Ίʹ ͲΜͳଌఆ஋΋ޡࠩΛ࣋ͪ·͢ɻଌఆ஋Λදͨ͢Ίʹ͸Պֶදه͕࢖ΘΕ·͢ɻྫ͑͹ɺ4.321 × 103 ͱ͍

    ͏ଌఆ஋͸ɺਅͷ஋͕ 4.321 × 103 ± 0.5 ͷൣғʹ͋Δ͜ͱΛࣔ͠·͢ɻͦͯ͠ɺଌఆ஋Ͳ͏͠Λܭࢉͯ͠ಘ ΒΕΔ෺ཧྔ΋ޡࠩΛ࣋ͪ·͢ɻ4.321 × 103 ͱ 8.764 × 103 Λ଍ͨ͠ 13.085 × 103 ͱ͍͏෺ཧྔ͸ɺਅͷ ஋͕ 13.085 × 103 ± 1 ͷൣғʹ͋Δ͜ͱΛࣔ͠·͢ɻ΋͠ 13.085 ͕࣮ݧ͔ΒಘΒΕͨଌఆ஋Ͱ͋Ε͹ɺޡࠩ ±0.5 ʹͳΔ͸ͣͰ͕͢ɺͦΕΛ௒͍͑ͯ·͢ɻ ·ͨɺ࠷΋ਫ਼౓ͷ௿͍෺ཧྔͷ༗ޮ਺ࣈΑΓ 1 ͔Β 2 ܻଟ͘ ͷܻ·ͰΛͱΓɺͦΕΑΓԼͷܻ͸ਵ࢛ࣺ࣌ޒೖ͢Δͱ͍͏͖ͨ͠Γ͕͋Γ·͢ɻࠓɺྫ͑͹ 4 ܻ·ͰͱΔ͜ ͱʹ͠ɺ্ͷྫͷ 13.085 × 103 Λ࢛ࣺޒೖͨ͠ 13.09 × 103 ͕͋Δͱ͠·͢ɻ13.09 × 103 ͕࣮ݧ͔ΒಘΒΕ ͨଌఆ஋Ͱ͋Ε͹ઈରޡࠩ͸ 5 ҎԼͰ͕͢ɺ͜ͷྫͰ͸ਅͷ஋͕ 13084 ͷͱ͖ઈରޡࠩ͸ 6 ʹͳΓ·͢ɻ͜ ͷΑ͏ʹɺԋࢉΛͨ͠ΓɺԼͷܻΛؙΊΔ͜ͱͰଌఆ஋ͱͯ͠ݟͨͱ͖ΑΓ΋େ͖ͳઈରޡ͕ࠩੜ·ΕΔ͜ͱ ͕͋Γ·͢ɻ͞Βʹɺԋࢉ΍ؙΊΛ܁Γฦ͢ͱࢦ਺ؔ਺తʹઈରޡ͕ࠩ૿͑Δ͜ͱ΋͋Γ·͢ɻ ࠓճ͸ɺߴߍͷཧՊͰ༻͍ΒΕΔʢֶ෦Ͱ΋ϕʔε͸͋·ΓมΘΒͳ͍ʣଌఆ஋ɾ෺ཧྔͷܭࢉͷաఔͰੜ ͡ΔޡࠩΛධՁ͠·͢ɻͨͩ͠ɺਐ਺ͷఈ΍ɺԾ਺෦ͷܻ਺ΛҰൠԽ͍ͯ͠·͢ɻ 1
  2. ࢉ๏ͷఆٛ • ଌఆ஋ʢޡࠩΛؚΜͩ஋ʣͲ͏͠ͷԋࢉΛߦ͏ɻ • ଌఆ஋ a ͸ɺཅͳ࣮਺஋ aapp ͱӄͳ࣮਺஋ atrue

    , ∆a ʹΑͬͯߏ੒͞Εɺatrue ͸ a ͷਅͷ஋ɺ∆a ͸ |aapp − atrue | ≤ ∆a ͕อূ͞ΕΔΑ͏ͳ࠷খͷ஋ͱͳΔΑ͏ʹ͢Δɻ • aapp ͸ r ਐ๏ͷՊֶදهͰ؅ཧ͢Δɻ ʢԾ਺෦ͱࢦ਺෦ʹ෼͚ͯ؅ཧ͢Δɻ ʣͨͩ͠ɺr ͸ 2 Ҏ্ͷۮ਺ ͱ͢Δɻ • aapp ͷԾ਺෦͸ k ܻͷ 1 Ҏ্ 10 ҎԼͷখ਺ acoef Ͱද͢ɻ • aapp ͷࢦ਺෦͸੔਺ aexp Ͱද͢ɻaexp ͸ෛʹͳͬͯ΋Α͍ɻ • aapp = acoef × raexp • ± ͷූ߸Λ෇͚ɺෛ਺΋ѻ͏ɻ0 ΍ 0 Λ۠ؒʹؚΉଌఆ஋͸ѻΘͳ͍͜ͱʹ͢Δɻ • ՃࢉʢݮࢉΛ࣮࣭తʹؚΉʣ ɾ৐ࢉͷΈΛߦ͏ • ԋࢉͷࡍ͸Ծ਺෦Ͳ͏͠Λਫ਼౓ແݶେͰܭࢉͨ͠ޙɺ্͔Β k + 1 ܻ໨Λ”࢛ࣺޒೖ”͠ɺ্ k ܻͷΈ Λ࢒͢ɻͦΕ͔Βࢦ਺෦Λܭࢉ͢Δɻ ิॿม਺ͷఆٛ • ∆a |aapp| ≤ arel ͕อূ͞ΕΔΑ͏ͳ࠷খͷ஋Λ arel ͱ͢Δɻ͜Ε͸૬ରޡࠩͱࣅ͍ͯΔ͕ҟͳΔ΋ͷͰ ͋Δɻ 2
  3. ՃࢉͷධՁ a + b = c ͷͱ͖ɺ∆c ΛٻΊΔɻa ≥ b

    ͱͯ͠ҰൠੑΛࣦΘͳ͍ɻ a ͷ࠷্Ґܻ͕͘Γ্͕Βͳ͍ͱ͖ b ͷ຤ඌͷ෦෼͕”࢛ࣺޒೖ”͞Εͯফ͑Δɻ͜ͷͱ͖ͷࠩ෼Λ ε ͱ͢Δͱɺε ≤ 1 2 × raexp−k+1 Ͱ͋ Γɺ࣮ࡍʹ຤ඌͷ෦෼͕ r 2 000 · · · 0 ͷͱ͖౳߸Λຬͨ͢ɻ∆c = ∆a + ∆b + ε Ͱ͋Γɺ͜Ε͸࠷େͰ ∆a + ∆b + 1 2 × raexp−k+1 ͱͳΔɻ a ͷ࠷্Ґܻ͕͘Γ্͕Δͱ͖ b ͷ຤ඌͷ෦෼ͱ a ͷҰ൪Լͷܻͷ࿨͕”࢛ࣺޒೖ”͞Εͯফ͑Δɻ͜ͷͱ͖ͷࠩ෼Λ ε ͱ͢Δͱɺ ε ≤ 1 2 × raexp−k+2 Ͱ͋Γɺ࣮ࡍʹ౳߸Λຬͨ͢΋ͷ͕ଘࡏ͢Δɻ∆c = ∆a + ∆b + ε Ͱ͋Γɺ͜Ε͸࠷େͰ ∆a + ∆b + 1 2 × raexp−k+2 ͱͳΔɻ ࠷্Ґͷܻ͕͘Γ্͕Δͱ͖ɺ৽ͨͳܻͷଧͪ੾Γ͕ى͖ΔͨΊͦ͏Ͱͳ͍ͱ͖ΑΓ ؙΊޡࠩ ε ͕େ͖ ͘ͳΓ͏Δɻ·ͨɺa, b ͕ఆ਺Ͱͳ͍ʢଌఆ஋͔աఔʹଌఆ஋ΛؚΉ஋ʣͱ͖ɺ1 2 × raexp−k+1 ≤ ∆a Α Γ ∆c ≤ (1 + r) × ∆a + ∆b Ͱ͋Γɺ؇Ίͯ ∆c ≤ (1 + r) × max(∆a, ∆b) ͱ͢Δ͜ͱ͕Ͱ͖Δɻa ͱ b ͷූ߸͕౳͍͠ͱ͖ɺ|aapp , |bapp | ≤ |capp | ΑΓɺ ∆c |capp| ≤ (r + 1) × max( ∆a |aapp| , ∆b |bapp| ) ɺ͢ͳΘͪɺ crel ≤ (r + 1) × max(arel , brel ) ͕͍͑Δɻa ͱ b ͷූ߸͕ҟͳΔͱ͖͸ɺ|c| ͕ۃ͘খ͍͞஋ʹͳΓ͏ΔͨΊ ૬ରޡࠩ͸อূͰ͖ͳ͍ɻ͜ΕΛܻམͪͱݺͿɻ 3
  4. ৐ࢉͷධՁ a × b = c ͷͱ͖ɺcrel ͷ্ݶΛٻΊΔɻ acoef ×

    bcoef < 10 ͷͱ͖ acoef × bcoef ͸ 2 × k − 1 ܻͰɺԼ͔Β k − 1 ܻ͕”࢛ࣺޒೖ”͞Εͯফ͑Δɻ͜ͷͱ͖ͷࠩ෼Λ ε ͱ͢Δ ͱɺε ≤ 1 2 × raexp+bexp−k+1 Ͱ͋Γɺ࣮ࡍʹ౳߸Λຬͨ͢΋ͷ͕ଘࡏ͢Δɻ ·ͨɺatrue = aapp + ∆a, btrue = bapp + ∆b ͷͱ͖ɺ͜ΕΒΛֻ͚߹Θͤͯ ctrue = aapp × bapp + aapp × ∆b + bapp × ∆a + ∆a × ∆b Αͬͯ ∆c = aapp × ∆b + bapp × ∆a + ∆a × ∆b + 1 2 × raexp+bexp−k+1 ·ͣɺaapp , bapp , 1 capp Λ r ͷႈ৐Ͱ཈͑Δɻ • aapp < raexp+1 • bapp < rbexp+1 • capp ≥ r(aexp + bexp ) ͜ΕΛ୅ೖͯ͠ɺ crel = ∆c capp ≤ ∆c r(aexp+bexp) = ∆a raexp + ∆b rbexp + ∆a×∆b raexp+bexp + 1 2×rk−1 ࣍ʹɺr ͷႈ৐Λ arel , brel Ͱ཈͑Δɻ • aapp ≤ raexp+1 ΑΓ arel = ∆a aapp ≥ ∆a raexp+1 = 1 r × ∆a raexp ྆ลʹ r Λ͔͚ͯ ∆a raexp ≤ r × arel • ಉ༷ʹ ∆b rbexp ≤ r × brel • arel × brel = ∆a×∆b aapp×bapp > ∆a×∆b raexp+1×rbexp+1 = ∆a×∆b raexp+bexp+2 = 1 r2 × ∆a×∆b raexp+bexp ྆ลʹ r2 Λ͔͚ͯ ∆a×∆b raexp+bexp < arel × brel Αͬͯɺcrel < r × (arel + brel ) + arel × brel + 1 2×rk−1 acoef × bcoef ≥ 10 ͷͱ͖ ઌ΄Ͳͱͷҧ͍Λڍ͛Δɻ • ε ≤ 1 2 × raexp+bexp−k+1 Ͱ͸ͳ͘ ε ≤ 1 2 × raexp+bexp−k+2 • capp ≥ r(aexp + bexp ) Ͱ͸ͳ͘ capp ≥ r(aexp + bexp + 1) Αͬͯɺcrel < arel + brel + 1 r × arel × brel + 1 2×rk−1 arel , brel ≤ 1 ΛԾఆ͢Ε͹ɺcrel < (r + 1) × (arel + brel ) + 1 2×rk−1 ͕੒Γཱͭɻ 4
  5. Ճࢉͱ৐ࢉ a + b = c ʹ͓͍ͯɺa ͱ b ͷූ߸͕౳͍͠ͱ͖

    crel ≤ (r + 1) × max(arel , brel ) ͕੒Γཱͬͨɻ a × b = c ʹ͓͍ͯɺarel , brel ≤ 1 ΛԾఆ͢Ε͹ɺcrel < (r + 1) × (arel + brel ) + 1 2×rk−1 ͕੒Γཱͬͨɻ ·ͨɺ͸͡Ίܻ͕ͯ͋;Εͨͱ͖ arel ≤ 1 2×rk−1 Ͱ͋Δɻ઴Խࣜ d0 = 1 rk−1 , di+1 = 2(r + 1) × di + 1 2×rk−1 Λղ͘ͱɺޡࠩ͸ 1 2×rk−1 ʹ (2r + 2) ͷԋࢉճ਺৐ + খ͞ͳఆ਺ΑΓେ͖͘ͳΒͳ͍͜ͱ͕Θ͔Δɻ xrel Λ༻͍Ε͹ɺ૬ରޡࠩ ∆x |xtrue| ≤ xrel 1−xrel ͱදͤΔɻӈล͸ xrel ʹରͯ͠୯ௐ૿ՃʹͳΓɺxrel ͕খ͞ ͍ͱ͖૬ରޡࠩ͸΄ͱΜͲ xrel ͱͳΔɻগͳ͘ͱ΋ɺxrel ≤ 10−7 ͷͱ͖ ∆x |xtrue| ≤ 10−6 ͕͍͑Δɻ 5
  6. ͜ͷ໰୊͸͜ͷ PDF ͷ಺༰Λ࢖ͬͯղ͘͜ͱ͕Ͱ͖·͢ɻ ໰୊ N × N ϚεͷάϦου͕͋Γɺࠨ͔Β i Ϛε໨্͔Β

    j Ϛε໨ͷϚεΛϚε (i, j) ͱ͠·͢ɻϚε (i, j) ʹ͸੔਺ si,j ͕ॻ͔Ε͍ͯ·͢ɻsi,j ͸੔਺ pi,j ͱ qi,j Λ༻͍ͯ pi,j × 10qi,j ͱද͢͜ͱ͕Ͱ͖ɺpi,j ͱ qi,j ͷܗͰ༩͑ΒΕ·͢ɻϚε (1, 1) ͔ΒϚε (N, N) ΁ӈ͔Լ΁ͷҠಈΛ܁Γฦͯͨ͠ͲΓண͘͢΂ͯͷํ๏ʹ ରͯ͠ɺܦ࿏্ͷ si,j ͷ஋ͷੵΛٻΊɺͦͷ૯࿨Λऔͬͨ஋ΛٻΊ͍ͯͩ͘͞ɻͨͩ͠ɺ౴͑͸ඇৗʹେ͖͘ ͳΔՄೳੑ͕͋ΔͷͰɺ1 Ҏ্ 10 ະຬͷখ਺ x ͱ੔਺ y Λۭന۠੾ΓͰग़ྗ͍ͯͩ͘͠͞ɻx × 10y ͷ౴͑ ʹର͢Δ૬ରޡ͕ࠩ 10−6 ҎԼͰ͋Ε͹ਖ਼౴ͱͳΓ·͢ɻ ੍໿ • 1 ≤ N ≤ 30 • 1 ≤ pi,j ≤ 109 • 1 ≤ qi,j ≤ 109 • ೖྗ͸͢΂ͯेਐ๏ͷ੔਺ 6