内容紹介
数学、プログラミング、サイエンスを、新しいアプローチで理解する!
Pythonはよく知られているように、数学ライブラリが非常に充実しており、統計、幾何学、確率、微積分でも威力を発揮します。Pythonの文法は比較的簡単なので、子供やプログラミング未経験者にとって敷居の低い、初心者が取り組みやすい言語です。数学的なトピックを題材にして、Pythonを学ぶというコンセプトで、とても丁寧に説明されており、中高生、理系学部生のプログラミングの入門書として最適です。不等式の解を求めたり弾道をプロットしたり、トランプをシャッフルしたり、フィボナッチ数列と黄金比の関係を探るなど、具体的な問題をPythonプログラミングを通して問題解決を図っていきます。さらに章末の練習問題で知識の定着を図ります。
このような方におすすめ
中学生、高校生、大学生、教員、研究者、Python初心者、数学の基礎知識を補完したいプログラマ
目次
詳細目次
目次
日本語版まえがき
謝辞
はじめに
1章 数を扱う
1.1 基本数学演算
1.2 ラベル:名前に数を割り当てる
1.3 さまざまな種類の数
1.3.1 分数を扱う
1.3.2 複素数
1.4 ユーザ入力を受け取る
1.4.1 例外と不当入力の処理
1.4.2 分数と複素数を入力
1.5 数学を行うプログラムを書く
1.5.1 整数の因数を計算する
1.5.2 乗算表を生成する
1.5.3 測定単位を変換する
1.5.4 2次方程式の解を求める
1.6 学んだこと
1.7 プログラミングチャレンジ
問題1-1 奇数偶数自動判別プログラム
問題1-2 乗算表生成器の拡張
問題1-3 単位変換プログラムの拡張
問題1-4 分数電卓
問題1-5 ユーザに脱出能力を与える
2章 データをグラフで可視化する
2.1 デカルト座標平面を理解する
2.2 リストとタプルの操作
2.2.1 リストやタプルで繰り返す
2.3 matplotlibでグラフを作る
2.3.1 グラフで点を作る
2.3.2 ニューヨーク市の年間平均気温をグラフ化する
2.3.3 ニューヨーク市の月間気温傾向を比較する
2.3.4 グラフのカスタマイズ
2.3.5 プロットの保存
2.4 式をプロットする
2.4.1 ニュートンの万有引力の法則
2.4.2 投射運動
2.5 学んだこと
2.6 プログラミングチャレンジ
問題2-1 1日の間に気温はどのように変化するか
問題2-2 2次関数を視覚的に探索する
問題2-3 投射軌跡比較プログラムの拡張
問題2-4 支出を可視化する
問題2-5 フィボナッチ数列と黄金比の関係を調べる
3章 データを統計量で記述する
3.1 平均を求める
3.2 中央値を求める
3.3 最頻値を求め度数分布表を作る
3.3.1 一番多い要素を見つける
3.3.2 最頻値を探す
3.3.3 度数分布表を作る
3.4 散らばりを測る
3.4.1 数集合の範囲を決める
3.4.2 分散と標準偏差を求める
3.5 2つのデータセットの相関を計算する
3.5.1 相関係数を計算する
3.5.2 高校の成績と大学入試の点数
3.6 散布図
3.7 ファイルからデータを読み込む
3.7.1 テキストファイルからデータを読み込む
3.7.2 CSVファイルからデータを読み込む
3.8 学んだこと
3.9 プログラミングチャレンジ
問題3-1 よりよい相関係数を求めるプログラム
問題3-2 統計電卓
問題3-3 他のCSVデータでの実験
問題3-4 百分位を求める
問題3-5 グループ度数分布表を作る
4章 SymPyで代数と式を計算する
4.1 式の記号と記号演算を定義する
4.2 式を扱う
4.2.1 式の因数分解と展開
4.2.2 プリティプリント
4.2.3 値に代入する
4.2.4 文字列を数式に変換する
4.3 方程式を解く
4.3.1 2次方程式を解く
4.3.2 1変数を他の変数について解く
4.3.3 連立方程式を解く
4.4 SymPyを使ってプロットする
4.4.1 ユーザが入力した式をプロットする
4.4.2 複数の関数をプロットする
4.5 学んだこと
4.6 プログラミングチャレンジ
問題4-1 因数ファインダ
問題4-2 グラフを使った方程式ソルバー
問題4-3 級数の和
問題4-4 1変数の不等式を解く
ヒント:役立つ関数
5章 集合と確率を操作する
5.1 集合とは何か
5.1.1 集合の構成
5.1.2 部分集合、上位集合、べき集合
5.1.3 集合演算
5.2 確率
5.2.1 事象Aまたは事象Bの確率
5.2.2 事象Aおよび事象Bの確率
5.2.3 乱数生成
5.2.4 非一様乱数
5.3 学んだこと
5.4 プログラミングチャレンジ
問題5-1 ベン図を使って集合の関係を可視化する
問題5-2 大数の法則
問題5-3 お金がなくなるまで何回硬貨を投げられるか
問題5-4 トランプをよく切る
問題5-5 円の領域を推定する
πの値を推定する
6章 幾何図形とフラクタルを描画する
6.1 matplotlibのパッチで幾何図形を描く
6.1.1 円を描く
6.1.2 図形のアニメーションを作る
6.1.3 投射軌跡のアニメーション
6.2 フラクタルを描く
6.2.1 平面上の点の変換
6.2.2 バーンスレイのシダを描く
6.3 学んだこと
6.4 プログラミングチャレンジ
問題6-1 正方形に円を詰める
問題6-2 シェルピンスキーの三角形
問題6-3 エノンの関数を調べる
問題6-4 マンデルブロ集合を描く
imshow()関数
リストのリストを作る
マンデルブロ集合を描く
7章 初等解析問題を解く
7.1 関数とは何か
7.1.1 関数の定義域と値域
7.1.2 よく使われる数学関数
7.2 SymPyでの仮定
7.3 関数の極限を求める
7.3.1 連続複利(Continuous Compound Interest)
7.3.2 瞬間変化率
7.4 関数の微分を求める
7.4.1 微分電卓
7.4.2 偏微分を求める
7.5 高階微分と極大極小の計算
7.6 勾配上昇法を用いて最大値を求める
7.6.1 勾配上昇法のジェネリックなプログラム
7.6.2 初期値について一言
7.6.3 ステップサイズとイプシロンの役割
7.7 関数の積分を求める
7.8 確率密度関数
7.9 学んだこと
7.10 プログラミングチャレンジ
問題7-1 ある点での関数の連続性を検証する
問題7-2 勾配降下法を実装する
問題7-3 2曲線で囲まれた領域の面積
問題7-4 曲線の長さを求める
付録A ソフトウェアのインストール
A.1 Microsoft Windows
A.1.1 SymPyの更新
A.1.2 matplotlib-vennのインストール
A.1.3 Pythonシェルの開始
A.2 Linux
A.2.1 SymPyの更新
A.2.2 matplotlib-vennのインストール
A.2.3 Pythonシェルの開始
A.3 Mac OS X
A.3.1 SymPyの更新
A.3.2 matplotlib-vennのインストール
A.3.3 Pythonシェルの開始
付録B Pythonについて
B.1 if __name__ == '__main__'
B.2 リスト内包表記
B.3 辞書データ構造
B.4 複数戻り値
B.5 例外処理
B.5.1 複数の例外型を指定する
B.5.2 elseブロック
B.6 Pythonでのファイル読み込み
B.6.1 全行を一度に読み込む
B.6.2 ファイル名を入力で指定する
B.6.3 ファイル読み込み時のエラー処理
B.7 コードの再利用
あとがき
用語集
訳者あとがき
索引
続きを見る