裏 RjpWiki

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

算額(その1599)

2025年02月08日 | ブログラミング

算額(その1599)

宮城県角田市小田字斗蔵 斗蔵寺 明治42年(1909)
https://tajin.shiriagari.com/framepage5000.htm
    (リンク先の左のインデックスから選択)
キーワード:直角三角形,面積,最大値
#Julia, #SymPy, #算額, #和算, #数学

直角三角形の中に,図のように正方形を容れる。正方形の一辺の長さが 12 寸のとき,黒積が最大になるのはどのようなときか。またその最大値はいかほどか。

正方形の一辺の長さを a,黒積の直角三角形の頂点を (0, 0), (x, 0), (0, y)
鈎,股,弦をそのまま変数名とする。

証明はそんなに難しいものでもないが,直感でわかり,またそれが正しいことも簡単に示すことができる。

黒積が最大になるのは黒積が直角二等辺三角形のときである。斜辺が 12 寸のとき等辺は 12/√2 なので,黒積は (12/√2)^/2 = 36平方寸 である。

鈎 = 25.4558;  股 = 25.4558;  弦 = 36;  正方形の一辺の長さ = 12;  黒積 = 36

答えは 「4 歩」,術は「弦の冪(二乗)を 36 で割る」となっている。

図に描いてみると,元の直角三角形は黒積と相似(相似比は 3)なので,弦は 12*3 = 36 である。

確かに 36^2 / 36 = 36 となるが,「36」が「4 歩」というのはちょっとおかしい。一般的には「1 歩 = 36 平方尺 = 3600 平方寸」なので,単位に無頓着に「1 歩 = 36 平方寸」としてしまったのか?それにしても「4 歩 = 36」は理解しがたい。

以下は,無理やり SymPy で解く筋道である。

include("julia-source.txt");
# julia-source.txt ソース https://blog.goo.ne.jp/r-de-r/e/ad3a427b84bb416c4f5b73089ae813cf

using SymPy
@syms 股, 鈎, 弦, 黒積, a, x, y
弦 = sqrt(鈎^2 + 股^2)
a = 12
eq1 = x^2 + y^2 - a^2
eq2 = y/x - 鈎/股
eq3 = 黒積 - x*y/2
res = solve([eq1, eq2, eq3], (黒積, x, y))[2]

    (72*股*鈎/(股^2 + 鈎^2), 12*股*sqrt(1/(股^2 + 鈎^2)), 12*鈎*sqrt(1/(股^2 + 鈎^2)))

黒積 = 72*股*鈎/(股^2 + 鈎^2)= 72*股*鈎/弦^2 である。

diff(res[1], 鈎) |> simplify |> println

    72*股*(股^2 - 鈎^2)/(股^2 + 鈎^2)^2

ans_鈎 = solve(diff(res[1], 鈎), 鈎)[2]  # 2 of 2
ans_鈎 |> println

    股

鈎 = 股 のとき(つまり,二等辺直角三角形のとき)に,黒積は最大になる。
黒積の直角三角形は外側の直角三角形と相似なので,黒積が最大のとき,x = y である。
x^2 + y^2 = 12 なので x = 6√2 である。
つまり,x = y = 6√2 の二等辺三角形のとき黒積が最大値 = (6√2)^2/2 = 36平方寸 である。

function draw(a, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
    x = y = 12/√2
    鈎 = 股 = 3x
    弦 = sqrt(鈎^2 + 股^2)
    黒積 = x*y/2
    @printf("鈎 = %g;  股 = %g;  弦 = %g;  正方形の一辺の長さ = %g;  黒積 = %g\n", 鈎, 股, 弦, a, 黒積)
    plot([0, 股, 0, 0], [0, 0, 鈎, 0], color=:green, lw=0.5)
    segment(x, 0, 0, y, :black)
    segment(0, y, y, y + x, :black)
    segment(x, 0, x + y, x, :black)
    plot!([0, x, 0, 0], [0, 0, y, 0], seriestype=:shape, color=:gray80, fillcolor=:gray80, lw=0.5)
    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, 鈎, " 鈎", :red, :left, :bottom, delta=delta/2)
        point(股, 0, "股", :red, :left, :bottom, delta=delta/2, deltax=0.7delta)
        point(0, y, " y", :red, :left, :vcenter)
        point(x, 0, "x", :red, :center, :bottom, delta=delta)
    end
end;

draw(12, true)

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

算額(その1599)

2025年02月08日 | Julia

算額(その1599)

宮城県角田市小田字斗蔵 斗蔵寺 明治42年(1909)
https://tajin.shiriagari.com/framepage5000.htm
    (リンク先の左のインデックスから選択)
キーワード:直角三角形,面積,最大値
#Julia, #SymPy, #算額, #和算, #数学

直角三角形の中に,図のように正方形を容れる。正方形の一辺の長さが 12 寸のとき,黒積が最大になるのはどのようなときか。またその最大値はいかほどか。

正方形の一辺の長さを a,黒積の直角三角形の頂点を (0, 0), (x, 0), (0, y)
鈎,股,弦をそのまま変数名とする。

証明はそんなに難しいものでもないが,直感でわかり,またそれが正しいことも簡単に示すことができる。

黒積が最大になるのは黒積が直角二等辺三角形のときである。斜辺が 12 寸のとき等辺は 12/√2 なので,黒積は (12/√2)^/2 = 36平方寸 である。

鈎 = 25.4558;  股 = 25.4558;  弦 = 36;  正方形の一辺の長さ = 12;  黒積 = 36

答えは 「4 歩」,術は「弦の冪(二乗)を 36 で割る」となっている。

図に描いてみると,元の直角三角形は黒積と相似(相似比は 3)なので,弦は 12*3 = 36 である。

確かに 36^2 / 36 = 36 となるが,「36」が「4 歩」というのはちょっとおかしい。一般的には「1 歩 = 36 平方尺 = 3600 平方寸」なので,単位に無頓着に「1 歩 = 36 平方寸」としてしまったのか?それにしても「4 歩 = 36」は理解しがたい。

以下は,無理やり SymPy で解く筋道である。

include("julia-source.txt");
# julia-source.txt ソース https://blog.goo.ne.jp/r-de-r/e/ad3a427b84bb416c4f5b73089ae813cf

using SymPy
@syms 股, 鈎, 弦, 黒積, a, x, y
弦 = sqrt(鈎^2 + 股^2)
a = 12
eq1 = x^2 + y^2 - a^2
eq2 = y/x - 鈎/股
eq3 = 黒積 - x*y/2
res = solve([eq1, eq2, eq3], (黒積, x, y))[2]

    (72*股*鈎/(股^2 + 鈎^2), 12*股*sqrt(1/(股^2 + 鈎^2)), 12*鈎*sqrt(1/(股^2 + 鈎^2)))

黒積 = 72*股*鈎/(股^2 + 鈎^2)= 72*股*鈎/弦^2 である。

diff(res[1], 鈎) |> simplify |> println

    72*股*(股^2 - 鈎^2)/(股^2 + 鈎^2)^2

ans_鈎 = solve(diff(res[1], 鈎), 鈎)[2]  # 2 of 2
ans_鈎 |> println

    股

鈎 = 股 のとき(つまり,二等辺直角三角形のとき)に,黒積は最大になる。
黒積の直角三角形は外側の直角三角形と相似なので,黒積が最大のとき,x = y である。
x^2 + y^2 = 12 なので x = 6√2 である。
つまり,x = y = 6√2 の二等辺三角形のとき黒積が最大値 = (6√2)^2/2 = 36平方寸 である。

function draw(a, more=false)
    pyplot(size=(500, 500), grid=false, aspectratio=1, label="", fontfamily="IPAMincho")
    x = y = 12/√2
    鈎 = 股 = 3x
    弦 = sqrt(鈎^2 + 股^2)
    黒積 = x*y/2
    @printf("鈎 = %g;  股 = %g;  弦 = %g;  正方形の一辺の長さ = %g;  黒積 = %g\n", 鈎, 股, 弦, a, 黒積)
    plot([0, 股, 0, 0], [0, 0, 鈎, 0], color=:green, lw=0.5)
    segment(x, 0, 0, y, :black)
    segment(0, y, y, y + x, :black)
    segment(x, 0, x + y, x, :black)
    plot!([0, x, 0, 0], [0, 0, y, 0], seriestype=:shape, color=:gray80, fillcolor=:gray80, lw=0.5)
    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, 鈎, " 鈎", :red, :left, :bottom, delta=delta/2)
        point(股, 0, "股", :red, :left, :bottom, delta=delta/2, deltax=0.7delta)
        point(0, y, " y", :red, :left, :vcenter)
        point(x, 0, "x", :red, :center, :bottom, delta=delta)
    end
end;

draw(12, true)

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

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

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