- 83 名前:卵の名無しさん mailto:sage [2021/02/14(日) 18:35:12.66 ID:68y2TfCD.net]
- ある国は半径2の円形をしており、人口は4億人である。
円の中心にある地点Tから距離r離れると人口密度はTのそれの1/(1+r)になる。 いまTから距離1の地点Mで地震が発生した。地震による死者数の密度はMからの距離をsとして1/(1+s)に比例する。 地震による死者の総数が4000万人であったとき、Mからの距離xが1≦x≦2の区間の生存者数を100万人の単位まで求めよ。 Wolframで二重定積分させようとしたらタイムアウトした。 分割してRで計算。 " 密度1/sqrt((x^2+y^2)*((x-1)^2+y^2))を x=r*cos(th) y=r*sin(th) と変換しえて (1/r)*1/sqrt((r*cos(Θ)-1)^2+r^2*sin(Θ)^2) ヤコビアンを勘案して 1/sqrt((r*cos(Θ)-1)^2+r^2*sin(Θ)^2) " # 全体 ∫[0,2π](∫[0,2] 1/sqrt((r*cos(Θ)-1)^2+r^2*sin(Θ)^2)dr)dΘ f <- function(th) log(2-cos(th)+sqrt(2^2-2*2*cos(th)+1)) - log(1-cos(th)) f=Vectorize(f) A=integrate(f,0,2*pi)$value # ドーナツ ∫[0,2π](∫[1,2] 1/sqrt((r*cos(Θ)-1)^2+r^2*sin(Θ)^2) dr)dΘ f12 <- function(th) log(2-cos(th)+sqrt(2^2-2*2*cos(th)+1))- log(1-cos(th)+sqrt(1^2-2*1*cos(th)+1)) f12=Vectorize(f12) B=integrate(f12,0,2*pi)$value B/A*4000
|
|