taki["blog"] = "200 OK"

社会人3年目の日常

2017/9/11

今週がスタート。

先週働いてしまったため(2017/9/9 参照)、会社の勤怠システムに働き方改革の誠意を示すために、普段より20分遅い8:20に出社し、普段よりはやい18:10に退勤した。お陰でスーパーで買物できた。文化的な生活と言える。

走ろうと思って帰ってたら雨が降ってきたので、仕方なく部屋で「長友佑都 体幹×チューブトレーニング」を取り組んだ。初級レベルでお腹がプルプルする。なまっている。

長友佑都 体幹×チューブトレーニング
長友 佑都
ベストセラーズ
売り上げランキング: 2,747

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()

f:id:takilog:20170911215402p:plain

# -*- 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)

f:id:takilog:20170911220713p:plain