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

高校数学とJulia言語

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Shimizu Dan Shimizu Dan
February 16, 2026

 高校数学とJulia言語

Julia言語を用いて,数学の学習を進めるコースを開発。
2026年2月16日
理数系教科研究会
令和7年度「合同授業実践報告会」

Avatar for Shimizu Dan

Shimizu Dan

February 16, 2026
Tweet

More Decks by Shimizu Dan

Other Decks in Education

Transcript

  1. なぜJulia 言語なのか 1. 数学的記法の親和性 # 数学の式をほぼそのまま書ける f(x) = 2x +

    3 g(x) = f(sin(x))/2π 2. 高速な数値計算 複雑な計算も瞬時に実行、グラフ描画もシンプル 3. 豊富な数学ライブラリ 統計、最適化、線形代数、組み合わせ・素数など 3
  2. 転機:Google Colab 対応(2025 年3 月) 2025 年3 月6 日 Google Colab

    がJulia 言語に正式対応! 環境構築不要 インストール不要 ブラウザだけで実行可能 デバイスを選ばない PC だけでなくiPad でも利用可能 Classroom との連携 課題の配布・回収がスムーズ 4
  3. 講習の実施概要 参加生徒数:約80 名(中学3 年生・高校1 年生) 実施期間 2025 年8 月24 日(日)〜

    8 月28 日(木)の5 日間 実施形式 会場:講堂 / 時間:午前中50 分×2 コマ制 形式:ハンズオン形式(生徒各自のPC/ タブレット) 使用ツール:Google Colab (Julia )+ Google Classroom 5
  4. 5 日間のカリキュラム構成 各日、解説PDF (スライド)とコンテンツ(.ipynb ファイル)をGoogle クラスルームに配置し、簡単な解 説の後、生徒はワーク(演習)に取り組む形式 Day 1 :Google

    Colab の紹介とJulia 言語で計算してみよう Day 2 :関数を定義してグラフを描こう Day 3 :関数の最大・最小を求めよう Day 4 :データの可視化と統計処理 Day 5 :確率とシミュレーション 6
  5. Day 1 :計算の検証 問題: を計算せよ # 左辺をそのまま計算 left = (2sqrt(3)

    + 5) * (sqrt(3) - 1) # 展開した右辺を計算 right = 1 + 3sqrt(3) # 等しいか確認 left ≈ right # → true まず手計算→Julia で検証→間違いがあれば考え直す 「カンニングツール」ではなく「理解を深めるツール」 7
  6. 8

  7. Day 2 :関数とグラフ描画 # 関数定義 f(x) = x^2 - 4x

    + 3 # グラフ描画(一瞬で完成) plot(f, xlim=(-1, 5), label="f(x) = x² - 4x + 3") # 複数のグラフを重ねる g(x) = -x^2 + 4x + 1 plot!(g, label="g(x) = -x² + 4x + 1") 従来:1 つのグラフで10 分以上 → Julia :数秒で何十個でも比較可能 9
  8. 10

  9. Day 3 :関数の最大・最小 # 関数定義とグラフ描画 f(x) = -x^2 + 4x

    + 1 plot(f, lw=3, label="f(x)") # 数値的に最大値を探索 X = -10:0.01:10 Y = f.(X) y_max = maximum(Y) x_max = X[argmax(Y)] scatter!([x_max], [y_max], ms=8, color=:red, label="最大値") グラフで視覚的に理解 → 数値で検証 → 複雑な関数でも同じ手法 11
  10. 12

  11. Day 4 :データの可視化と統計処理 # テスト結果 test_scores = [85, 92, 78,

    88, 95, 82, 90, 87, 83, 91, 76, 89, 94, 80, 86] # 統計量を一括計算 println("平均値:", mean(test_scores)) println("標準偏差:", std(test_scores)) # ヒストグラムで分布を可視化 histogram(test_scores, bins=5, title="点数分布", alpha=0.7) vline!([mean(test_scores)], lw=3, color=:red, label="平均値") データ全体の分布を視覚的に把握、大量のデータでも瞬時に処理 13
  12. 14

  13. Day 5 :確率とシミュレーション 大数の法則を体験 function simulate_coin_flips(n) heads_count = sum([rand() <

    0.5 for _ in 1:n]) return heads_count / n end # 結果例 # 10回: 確率 = 0.4000 # 1000回: 確率 = 0.5010 # 100000回: 確率 = 0.5001 試行回数が増えると理論値に収束する様子を体験! 15
  14. 16

  15. 17

  16. 18