同時累積分布関数から周辺累積分布関数と周辺確率密度関数を求める問題をやりました。
コード(解答)
#2022 Q2(1) 2024.7.29
from sympy import symbols, integrate
# 変数の定義
u, v = symbols('u v')
# 同時累積分布関数の定義
F_uv = (u*v + u + v + 1) / 4
# 周辺累積分布関数 F1(u) と F2(v) の計算
F1_u = integrate(F_uv, (v, -1, 1))
F2_v = integrate(F_uv, (u, -1, 1))
F1_u, F2_v
(u/2 + 1/2, v/2 + 1/2)
コード(グラフ)
#2022 Q2(1) 2024.7.29
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 同時累積分布関数 F(u, v) を定義
def F(u, v):
return (u * v + u + v + 1) / 4
# u, v の範囲を設定
u = np.linspace(-1, 1, 100)
v = np.linspace(-1, 1, 100)
u, v = np.meshgrid(u, v)
z = F(u, v)
# 3Dプロットの作成
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(u, v, z, cmap='viridis')
# グラフのラベル
ax.set_xlabel('U')
ax.set_ylabel('V')
ax.set_zlabel('F(U, V)')
ax.set_title('同時累積分布関数 F(U, V)')
plt.show()