-
Notifications
You must be signed in to change notification settings - Fork 35
2022年12月14日時点で判明している修正点
Hiroshi Watanabe edited this page Dec 15, 2022
·
2 revisions
5刷時点での未修正点。6刷で修正予定。
- 誤 「この方程式には
$x \pm 1$ 、$x \pm i$ の4つの解が存在する」 - 正 「この方程式には
$x \pm 1$ 、$x =\pm i$ の4つの解が存在する」 (等号が抜けている)
「1. インポート」で
from graphviz import Digraph
とあるのを、
from graphviz import Digraph
from PIL import Image
に修正(一行追加)。
「5. グラフの作成」のコードが
def make_graph(n):
g = Digraph()
edges = set()
for i in range(1, n+1):
collatz_graph(i, edges)
for i, j in edges:
g.edge(str(i), str(j))
g.attr(size="10,10")
return g
となっているのを、
def make_graph(n):
g = Digraph(format='png')
edges = set()
for i in range(1, n+1):
collatz_graph(i, edges)
for i, j in edges:
g.edge(str(i), str(j))
g.attr(size="10,10")
g.render("test")
return Image.open("test.png")
に修正。
「6. グラフの表示」において、「小さすぎる場合は」の直後
g.attr(size="10,10")
を
g.attr(size="20,20")
に修正。
5.5.3の節タイトルの課題番号が間違っている。
- 誤 「5.5.3 課題2 ワードクラウド」
- 正 「5.5.3 課題3 ワードクラウド」
「1. ライブラリのインポート」のコード
from graphviz import Digraph
を
from graphviz import Digraph
from PIL import Image
に修正(一行追加)。
「5. 再帰木の可視化」の以下のコード
n = 5
graph = Digraph(format='png')
graph.attr(size="10,10")
kaidan_g(n, graph, [])
graph
を、以下に修正。
n = 5
graph = Digraph(format='png')
graph.attr(size="10,10")
kaidan_g(n, graph, [])
graph.render("test")
Image.open("test.png")
「10. アニメーション用ソルバ」のコードの8行目
filename = "file%03d.png" % index
を
filename = f"file{index:03}.png"
に修正。
「1. ライブラリのインポート」のコード
from graphviz import Digraph
を
import IPython
from graphviz import Digraph
に修正。
「6. ゲーム木の可視化」の「一番下の6つ目のセルに以下を入力、実行せよ。」の後のコード
root = make_tree()
g = Digraph()
make_graph(root, g)
を
root = make_tree()
g = Digraph(format="png")
make_graph(root, g)
IPython.display.Image(g.render("test"))
に修正。
「6. 画像の低ランク近似」のコード、
def svd(url, ratio):
gray_img = mono(url)
a = np.asarray(gray_img)
w, _ = a.shape
rank = int(w * ratio)
u, s, v = linalg.svd(a)
ur = u[:, :rank]
sr = np.matrix(linalg.diagsvd(s[:rank], rank, rank))
vr = v[:rank, :]
b = np.asarray(ur * sr * vr)
return Image.fromarray(np.uint8(b))
を
def svd(url, ratio):
gray_img = mono(url)
a = np.asarray(gray_img)
w, _ = a.shape
rank = int(w * ratio)
u, s, v = linalg.svd(a)
ur = u[:, :rank]
sr = np.diag(s[:rank])
vr = v[:rank, :]
b = ur @ sr @ vr
return Image.fromarray(np.uint8(b))
に修正。
違いは以下の通り。
誤 sr = np.matrix(linalg.diagsvd(s[:rank], rank, rank))
正 sr = np.diag(s[:rank])
誤 b = np.asarray(ur * sr * vr)
正 b = ur @ sr @ vr
「7.アニメーションの作成」において「作成された画像を一つにまとめて、アニメーションPNGを作成しよう。」という文章の直後のコードの3行目。
filename = 'img{:04d}.png'.format(i+1)
とあるのを
filename = f"img{i+1:04d}.png"
に修正。