今週がスタート。
先週働いてしまったため(2017/9/9 参照)、会社の勤怠システムに働き方改革の誠意を示すために、普段より20分遅い8:20に出社し、普段よりはやい18:10に退勤した。お陰でスーパーで買物できた。文化的な生活と言える。
走ろうと思って帰ってたら雨が降ってきたので、仕方なく部屋で「長友佑都 体幹×チューブトレーニング」を取り組んだ。初級レベルでお腹がプルプルする。なまっている。
Juliaを思い出すために、作画をして遊んだ。matplotlibは日々使っているので、むしろjuliaの文法を忘れている問題だった(覚えられない)。題材は最適化の本の§2.2.4から購買による凸関数の特徴づけ、§2.2.5から共役関数。家のMacのJuliaが0.5だったのでついでに0.6にした。違いは分からない。共役関数についてはこのPDFを参考にした。
# -*- coding: utf-8 -*- using PyPlot f(x) = x.^ 2 df(x) = 2.* x # 元の関数 xseq = linspace(-2.0, 2.0, 20) yseq = f(xseq) # 導関数で接線 x0 = 1.5 yseq2 = f(x0) .+ df(x0) .* (xseq .- x0) # 作図 figure(figsize=(8, 6)) plot(xseq, yseq, "ro-") plot(xseq, yseq2, "bv--") tight_layout() savefig("output1.png", dpi=150) close()
# -*- coding: utf-8 -*- using PyPlot f(x) = x.^ 2 df(x) = 2. * x invdf(p) = 0.5 * p fp(p) = f(invdf(p)) - p .* invdf(p) # 元の関数 xseq = linspace(-2.0, 2.0, 20) yseq = f(xseq) # 共役関数による包絡線 pp = [-2.0, -1.75, -1.5, -0.75, -0.5, -0.25, 0.0, 0.25, 0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0] plot(xseq, yseq, "k-") for p in pp yseq1 = p .* xseq + fp(p) plot(xseq, yseq1, "ro--") end tight_layout() savefig("output2.png", dpi=150)