科学技術計算で使うPython

林真著「科学技術計算で使うPython」工学社 (2016/10)
https://www.amazon.co.jp/dp/product/4777519775/

配列、行列、条件分岐、ループ処理、隣接行列、折線グラフ、棒グラフ、二軸グラフ、等高線図、3D散布図、3D棒グラフ、3次元曲面関数、片対数グラフ、極座標グラフ、平均・中間値、標準偏差、分散、t検定、分散分析、ヒストグラム、展開、因数分解、複素数、補間、常用対数、並列処理、定積分、重積分、不定積分、ラプラス変換、常微分、偏微分、匿名関数、高速フーリエ変換、2次元離散フーリエ変換、回帰曲線(1次、2次、高次、三角関数)、方程式、連立方程式、常微分方程式を扱う。
主要なライブラリを概観できる。

Sample Code、出版社による誤植情報
http://www.kohgakusha.co.jp/support/kk_python/index.html

以下は、読後のメモ。


第1章 Pythonで使うライブラリの概要

p10 三角関数のグラフ

import numpy as np
from matplotlib import pyplot as plt
t_list = np.arange(0.0, 5.0, 0.02)
y_list = np.sin(2*np.pi*t_list)
plt.plot(t_list,y_list,label=f'y=sin(2x)')
plt.hlines(0,0,5, linestyles='--', color ='black')
plt.xlim(0,)
plt.legend(loc='upper right')
plt.show()


第2章 環境の整備

p18 モジュールのバージョン確認

Google Corab の場合
import numpy as np
np.__version__
1.23.5

第3章 配列、行列の処理

p27 変数a

変数a は定義されていない。
np.sort(a, とあるのは、三か所とも、
np.sort(array_a,  とするのが、正しい。

p39 末2行目

変数a とあるのは、
変数s  が正しい。
1~200 とあるのは、
1~199 が正しい。

p41 フィボナッチ数列

1000以下のフィボナッチ数列 とあるが、
実際には、2584 まで出力されている。

第4章 グラフを描く

p55 プログラム解説

12:計算した平均値 とあるのは、
13:計算した平均値 が正しい。


p55 プログラム解説

14、15で(最初の要素) とあるが、
実際には、各値を配列に格納している。


p57 code4-5, 3行目

data.csv とあるのは、
data2.csv が正しい。


p62 code4-7, 10行目

(x. とあるのは、
(x, が正しい。


p71 サーフェス

数式とコードが不一致。
数式で  \begin{align} z = \sin(x^2+y^2) \nonumber \\ \end{align} とあるのを、
\begin{align} z = \sin \sqrt{x^2+y^2} \nonumber \\ \end{align} とすればコードと一致する。
 

p74 プログラム解説 10

メモリ とあるのは、
目盛り が正しい。


第5章 統計解析

p86 4行目

「社」会 とあるのは、
「社会」 が正しい。


第6章 展開・因数分解・複素数・補間

p100 末2行目

「精」度 とあるのは、
「精度」 が正しい。

p102  7行目

9~13行目 とあるのは、
11~15行目 が正しい。

p102 8行目

14~17行目 とあるのは、
16~19行目 が正しい。

p102 8行目

18~21行目 とあるのは、
20~23行目 が正しい。


第7章 積分・微分

p107 code7-3 2行目

x = symbol とあるのは、
x = Symbol が正しい。


p107 code7-4 3行目

integrate(func) とあるのは、
integrate(func, x) が正しい。


p108 ラプラス変換式

\[ \int_0^\infty \sin... \] とあるのは、
\[ \int_0^\infty e^{-st}\sin... \] が正しい(https://www.jeea.or.jp/course/contents/01131/ 日本電気技術者協会)
 
 

p110 末の数式

\[ =\frac{d^d}{dx^2}... \] とあるのは、二階微分の趣旨であるから、
\[ =\frac{d^2}{dx^2}... \] が正しい。


第8章 各種解析

p115 code8-1 10行目

plt.plot(x/10, y) とあるのは、
plt.plot(x, y) が正しい。


p115 code8-1 13行目

…abs(yfft[0:N/2])… とあるのは、
…abs(yfft)[0:int(N/2)])… が正しい。


p125 code8-5 11行目

paramater とあるのは、
parameter が正しい。


p126 code8-5 12行目

paramater とあるのは、
parameter が正しい。


p126 code8-5 13行目

paramater b とあるのは、
parameter c が正しい。


p126 末3行目以降

paramater a …
paramater b…
paramater b… とあるのは、
parameter a …
parameter b…
parameter c… が正しい。


第9章 方程式

p139 連立方程式

数式とコードが不一致。
\[  x^2-2y+1=0  \]とあるのを、
\[  2x-2y+1=0  \]とすればコードと一致する。


p141 シンボリックに方程式を解く

数式とコードが不一致。
\[
  \left\{
    \begin{array}{l}
      ax-by=15 \\
      x-y=-1
    \end{array}
  \right.
\]
とあるのを、
\[
  \left\{
    \begin{array}{l}
      ax-by=-15 \\
      x-y=-2
    \end{array}
  \right.
\]とすればコードと一致する。


p143 4行目

6行目の入力は… とあるのは、
7行目の入力は… が正しい。


p143 中ほどの式

\[  y2'(t)=-ay2(t)-\sin(y(t))  \]とあるのは、
\[  y2'(t)=-ay2(t)-\sin(y1(t))  \]が正しい。


第10章 ユーザーインターフェースの開発

附録 関数一覧