裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

算額(その1473)

2024年12月14日 | Julia

算額(その1473)

街角の数学 Street Wasan ~落書き帳「○△□」~ 394.○△□の新算額(その7)
http://streetwasan.web.fc2.com/math18.2.6.html
キーワード:円5個,外円,弦1本
#Julia, #SymPy, #算額, #和算

外円の中に直径(弦)を引き,大円と小円を 2 個ずつ容れる。外円,大円,小円の半径の比を求めよ。

外円の半径と中心座標を R, (0, 0)
大円の半径と中心座標を r1, (0, r1); r1 = R/2 
小円の半径と中心座標を r2, (x2, r2)
とおき,以下の連立方程式を解く。

include("julia-source.txt");

using SymPy

@syms R, r1, r2, x2
r1 = R/2
eq1 = x2^2 + (r1 - r2)^2 - (r1 + r2)^2
eq2 = x2^2 + r2^2 - (R - r2)^2;

res = solve([eq1, eq2], (r2, x2))[2]  # 2 of 2

    (R/4, sqrt(2)*R/2)

R:r1:r2 = 4:2:1 である。

(4 .*[R, r1, res[1]]) |> println

    Sym{PyCall.PyObject}[4*R, 2*R, R]

function draw(R, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
    r1 = R/2
    (r2, x2) = (R/4, sqrt(2)*R/2)
    @printf("R = %g;  r1 = %g;  r2 = %g;  x2 = %g\n", R, r1, r2, x2)
    plot()
    circle(0, 0, R)
    circle22(0, r1, r1, :blue)
    circle2(x2, r2, r2, :green)
    if more        
        delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3  # size[2] * fontsize * 2
        hline!([0], color=:gray80, lw=0.5)
        vline!([0], color=:gray80, lw=0.5)
        point(0, R, "R", :red, :center, :bottom, delta=delta/2)
        point(0, r1, "大円:r1,(0,r1)", :blue, :center, delta=-delta/2)
        point(x2, r2, "小円:r2,(x2,r2)", :green, :center, delta=-delta/2)
    end
end;

draw(4, true)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

算額(その1472)

2024年12月14日 | Julia

算額(その1472)

街角の数学 Street Wasan ~落書き帳「○△□」~ 389.○△□の新算額(その2)
http://streetwasan.web.fc2.com/math18.1.28.html
キーワード:円7個,外円,弦3本
#Julia, #SymPy, #算額, #和算

外円の中に3本の弦を引き,隙間に大円 3 個,中円 3 個,小円 1 個を容れる。円の直径の比を求めよ。

外円,大円,中円,小円の半径を R, r1, r2, r3 とおく。
左右の弦を拡張し,外円と大円,中円の共通接線でできる正三角形の高さと半径の関係式を記述する。

include("julia-source.txt");

using SymPy

@syms r1, r2, r3, R
r3 = r1/3
eq1 = 3r2 + 2r3 - R
eq2 = 3r2 + 3r1 - 2R
res = solve([eq1, eq2], (r1, r2));

# r1
res[r1](R => 21) |>  println

    9

# r2
res[r2](R => 21)  |>  println

    5

# r3
r3(r1 => res[r1], R => 21)  |>  println

    3

r1:r2:r3 = 9/21 : 5/21 : 3/21 = 9:5:3 である。

function draw(R, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
    r1 = 3R/7
    r2 = 5R/21
    r3 = r1/3
    @printf("r1 = %g;  r2 = %g;  r3 = %g\n", r1, r2, r3)
    plot()
    circle(0, 0, R)
    circle(0, 0, r3, :orange)
    rotate(0, r1 - R, r1, :blue)
    rotate(0, R - r2, r2, :green)
    y0 = -r3
    x0 = sqrt(R^2 - y0^2)
    x = [-x0, x0]
    y = [y0, y0]
    for i in 1:3
        segment(x[1], y[1], x[2], y[2], :magenta)
        (x, y) = transform(x, y, deg=120)
    end
    if more        
        delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3  # size[2] * fontsize * 2
        hline!([0], color=:gray80, lw=0.5)
        vline!([0], color=:gray80, lw=0.5)
        point(0, R, "R", :red, :center, :bottom, delta=delta/2)
        point(0, R - r2, "R-r2", :green, :center, :bottom, delta=delta/2)
        point(0, r1 - R, "r1-R", :blue, :center, :bottom, delta=delta/2)
        point(0, r3, "r3", :orange, :center, delta=-delta/2)
    end
end;

draw(21, true)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

算額(その1471)

2024年12月14日 | Julia

算額(その1471)

街角の数学 Street Wasan ~落書き帳「○△□」~ 388.○△□の新算額(その1)
http://streetwasan.web.fc2.com/math18.1.25.html
キーワード:円1個,四分円2個,正三角形
#Julia #SymPy #算額 #和算 #数学

正方形内に,正三角形 1 個,四分円弧 2 個,中円 1 個を容れる。中円は,正三角形の 2 辺と両円弧に接している。正方形の辺の長さを一寸とするとき,中円の半径を求めよ。

正方形の一辺の長さを a
中円の半径と中心座標を r, (0, y)
とおき,以下の連立方程式を解く。

include("julia-source.txt");

using SymPy

@syms a, r, y
eq1 = (a/2)^2 + (a - y)^2 - (a - r)^2
eq2 = 2r - (sqrt(Sym(3))a/2 - y)
res = solve([eq1, eq2], (r, y))[1]  # 1 of 2

    (-a*(12 - sqrt(3))/12 + sqrt(3)*a/4 + sqrt(3)*a*sqrt(3 - sqrt(3))/3, -2*sqrt(3)*a*sqrt(3 - sqrt(3))/3 + a*(12 - sqrt(3))/6)

# r
res[1] |> factor |> println

    a*(-3 + sqrt(3) + sqrt(3)*sqrt(3 - sqrt(3)))/3

中円の半径は,正方形の一辺の長さの (-3 + sqrt(3) + sqrt(3)*sqrt(3 - sqrt(3)))/3 倍である。
正方形の一辺の長さが 1 寸のとき,中円の直径は 0.454930873066724 寸である。

2*res[1](a => 1).evalf() |> println

    0.454930873066724

# y
res[2] |> factor |> println

    -a*(-12 + sqrt(3) + 4*sqrt(3)*sqrt(3 - sqrt(3)))/6

function draw(a, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
    t = √3sqrt(3 - √3)
    r = a*(-3 + √3 + t)/3
    y = a*(12 - √3 - 4t)/6
    @printf("正方形の一辺の長さ = %g;  中円の直径 = %g;  y = %g\n", a, 2r, y)
    plot([a/2, a/2, -a/2, -a/2, a/2], [0, a, a, 0, 0], color=:green, lw=0.5)
    plot!([a/2, 0, -a/2, a/2], [0, √3a/2, 0, 0], color=:magenta, lw=0.5)
    circle(a/2, a, a, beginangle=180, endangle=270)
    circle(-a/2, a, a, beginangle=270, endangle=360)
    circle(0, y, r, :blue)
    if more        
        delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3  # size[2] * fontsize * 2
        hline!([0], color=:gray80, lw=0.5)
        vline!([0], color=:gray80, lw=0.5)
        point(a/2, a, "(a/2,a)", :green, :right, :bottom, delta=delta/2)
        point(0, y, "中円:r,(0,y)", :blue, :center, delta=-delta/2)
        point(0, √3a/2, " √3a/2", :magenta, :left, :vcenter)
    end
end;

draw(1, true)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

算額(その1470)

2024年12月14日 | Julia

算額(その1470)

田村市大越町牧野 見渡神社 安政3年(1856)
街角の数学 Street Wasan ~落書き帳「○△□」~ 299.牧野見渡神社(その3)
http://streetwasan.web.fc2.com/math17.8.17.html
キーワード:球10個,回転楕円体,3次元
#Julia #SymPy #算額 #和算 #数学

長立円(回転楕円体)の中に,互いに外接し長立円に内接する 2 個の大球と,互いに外接し大球に外接,長立円に内接する 8 個の小球を容れる。長立円の短径が 1 寸のとき,長径はいかほどか。

左は横から見た図,右は上から見た図

長立円の長径,短径,中心座標を b, a, (0, 0, 0)
大球の半径,中心座標を r1, (0, 0, r1), (0, 0, -r1)
小球の半径,中心座標を r2, (a - r2, 0, 0), ((a - r2)/√2, a - r2)/√2, 0)
とおき,以下の連立方程式を解く。

include("julia-source.txt");

using SymPy

@syms a::poitive, b::poitive,
      r1::poitive, r2::poitive
eq1 = (b^2 - a^2)*(a^2 - r1^2)/a^2 - r1^2  # 「算法助術」公式84
eq2 = (a - r2)^2 + r1^2 - (r1 + r2)^2
eq3 = r2 - (a - r2)*sind(Sym(45/2))
res = solve([eq1, eq2, eq3], (r1, r2, b))[2]
res |> println

    (-a/2 + a/sqrt(2 - sqrt(2)), a*sqrt(2 - sqrt(2))/(sqrt(2 - sqrt(2)) + 2), 2*a*(2 - sqrt(2))^(3/4)/sqrt(-4*sqrt(2) - 3*sqrt(2)*sqrt(2 - sqrt(2)) + 2*sqrt(2 - sqrt(2)) + 8))

長立円の短径が 1 寸のとき,長径は 1.69162320932629 である。

res[3] |>  println
res[3](a => 1).evalf() |>  println

    2*a*(2 - sqrt(2))^(3/4)/sqrt(-4*sqrt(2) - 3*sqrt(2)*sqrt(2 - sqrt(2)) + 2*sqrt(2 - sqrt(2)) + 8)
    1.69162320932629

function draw(a, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
    (r1, r2, b) = (-a/2 + a/sqrt(2 - sqrt(2)), a*sqrt(2 - sqrt(2))/(sqrt(2 - sqrt(2)) + 2), 2*a*(2 - sqrt(2))^(3/4)/sqrt(-4*sqrt(2) - 3*sqrt(2)*sqrt(2 - sqrt(2)) + 2*sqrt(2 - sqrt(2)) + 8))
    @printf("長径 = %g;  短径 = %g;  a = %g;  b = %g;  r1 = %g;  r2 = %g\n", 2b, 2a, a, b, r1, r2)
    p1 = plot()
    ellipse(0, 0, a, b, color=:red)
    circle22(0, r1, r1, :blue)
    circle2(a - r2, 0, r2, :green)
    if more        
        delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3  # size[2] * fontsize * 2
        hline!([0], color=:gray80, lw=0.5)
        vline!([0], color=:gray80, lw=0.5)
        point(a - r2, 0, "a-r2", :green, :center, delta=-delta/2)
        point(a, 0, " a", :red, :left, :vcenter)
        point(0, r1, " r1", :blue, :left, :vcenter)
        point(0, b, "b", :red, :left, :bottom, delta=delta/2)
    end
    p2 = plot()
    circle(0, 0, a - r2, :gray80)
    circle(0, 0, a)
    circle(0, 0, r1, :blue)
    rotate(0, a - r2, r2, :green, angle=45)
    if more        
        delta = (fontheight = (ylims()[2]- ylims()[1]) / 500 * 10 * 2) /3  # size[2] * fontsize * 2
        hline!([0], color=:gray80, lw=0.5)
        vline!([0], color=:gray80, lw=0.5)
        point(a - r2, 0, "a-r2", :green, :right, delta=-delta/2, deltax=delta)
        point(a, 0, " a", :red, :left, :vcenter)
        point(r1, 0, "r1", :blue, :left, :bottom, delta=delta/2, deltax=-delta/4)
    end
    plot(p1, p2)
end;

draw(1/2, true)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

セルフうどん ツルの家

2024年12月14日 | さぬきうどん

高松市勅使町 セルフうどん ツルの家
店内はこじんまりとした家庭的な感じ
面は太麺

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村