裏 RjpWiki

文字通り,RjpWiki の裏を行きます
R プログラム コンピュータ・サイエンス 統計学

数学の問題を Julia で解く

2021年01月17日 | ブログラミング

某所に Python による解答例があったので,Julia でやるならどうなるか書いてみた。

Q. 1. 2018n ≡ 2 mod(1000) を満たす正の整数nの最小値を求めよ。

for n = 1:99999
  if mod(2018n, 1000) == 2
    println(n) # 389
    break
  end
end

Q. 2. tan(2 Arctan (1/3)+Arctan(1/12))を求めよ。

println(tan(2atan(1//3)+atan(1//12))) # 0.8888888888888888

a = tan(2atan(1//3)+atan(1//12))
println(Int(10a - a) // 9) # 8//9

Q. 3. xyz空間内の4点(1,-4,1),(2,2,2),(2,-6,-3),(3,-2,-1)を頂点に持つ四面体の体積を求めよ。

sarasu(x1, y1, z1, x2, y2, z2, x3, y3, z3) =
    abs((y1*z2*x3+z1*x2*y3+x1*y2*z3-z1*y2*x3-x1*z2*y3-y1*x2*z3) / 6)

a1 = [1, -4, 1];
b1 = [2, 2, 2];
c1 = [2, -6, -3];
d1 = [3, -2, -1];
x1, y1, z1, x2, y2, z2, x3, y3, z3 = vcat(b1 .- a1, c1 .- a1, d1 .- a1);
println(abs((y1*z2*x3+z1*x2*y3+x1*y2*z3-z1*y2*x3-x1*z2*y3-y1*x2*z3) / 6)) # 3.0
println(sarasu(x1, y1, z1, x2, y2, z2, x3, y3, z3)) # 3.0

別解

A = hcat(b1 .- a1, c1 .- a1, d1 .- a1);
using LinearAlgebra
println(abs(det(A)) / 6) # 3.0

Q. 4.1 3次正方行列 A=[4 1 1; 1 2 1; 1 1 2] について固有値を求めよ。

A = [4 1 1; 1 2 1; 1 1 2];
using LinearAlgebra
println(round.(Int, eigvals(A))) # [1, 2, 5]

Q. 4.2 E=[1 0 0; 0 1 0; 0 0 1] のとき,A^3-8A^2+18A-12E を求めよ

E = Array{Int}(I, 3, 3);
println(A^3 .- 8A^2 .+ 18A .- 12E) # [2 1 1; 1 0 1; 1 1 0]

Q. 5 2つの機械A, Bが、1年間に故障する回数は,平均がそれぞれ2.5回、4.5回のポアソン分布に従う。A,Bの故障は独立である。
Q. 5.1 機械Aが1年間に4回以上故障する確率を求めよ。

using Distributions
println(round(ccdf(Poisson(2.5), 3), digits=3)) # 0.242

Q. 5.2 機械A,Bが合わせて8回以上故障する確率を求めよ。

A = Poisson(2.5)
B = Poisson(4.5)
answer = 1.0
for i = 0:7
    for j = 0:i
        answer -= pdf(A, i-j) * pdf(B, j)
    end
end
println(round(answer, digits=3)) # 0.401

 

コメント   この記事についてブログを書く
« Julia で一元配置分散分析(... | トップ | セイウチ演算子(:=)って今更... »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

ブログラミング」カテゴリの最新記事