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

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

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

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

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

Avatar for ynymxiaolongbao

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