面積図のプログラム
import matplotlib.pyplot as plt
#1個70円の品物Aと1個120円の品物Bを合わせて20個買ったところ、代金は1850円でした。Bを何個買いましたか
#定数の値
#AとBは固定
A = 1
B = 1
a = 20
C = 70
D = 120
b = 1850
# 式の計算
F = (a * D - b * B) / (A * D - C * B)
# 点の座標
points_red = [(0, 0), (0, C), (F, 0), (F, C)]
points_blue = [(F, 0), (F, D), (a, 0), (a, D)]
# プロット
plt.scatter(*zip(*points_red), color='red', label='Red Points')
plt.scatter(*zip(*points_blue), color='blue', label='Blue Points')
# ポイントの値を表示
for point in points_red:
plt.text(point[0], point[1], f'({point[0]}, {point[1]})', fontsize=9, ha='right', va='bottom', color='black')
for point in points_blue:
plt.text(point[0], point[1], f'({point[0]}, {point[1]})', fontsize=9, ha='right', va='bottom', color='black')
# プロットの設定
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Points Plot')
plt.legend()
plt.grid(True)
# プロットを表示
plt.show()
import numpy as np
import matplotlib.pyplot as plt
# 与えられた係数行列 A
A = np.array([[1, 1], [70, 120]])
# 逆行列を求める
A_inv = np.linalg.inv(A)
# 定数ベクトル B
B = np.array([[20], [1850]])
# 変数ベクトル X を求める
X = np.dot(A_inv, B)
# BとXをプロットする
plt.figure()
# Bをプロット
plt.plot(B[0], B[1], 'ro', label='B')
# Xをプロット
plt.plot(X[0], X[1], 'bo', label='X')
plt.xlabel('X1')
plt.ylabel('X2')
plt.title('B and X')
plt.legend()
plt.grid()
plt.show()
A= {{1, 1, 2}, {-1, 2, 2}, {3, 2, 3}}
行列Aの転置行列を求める
行列Aの逆行列を求める
行列Aの固有値ベクトルを3次元プロットする
行列Aの対角化する
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
A = np.array([[1, 1, 2], [-1, 2, 2], [3, 2, 3]])
# 転置行列の計算
A_transpose = np.transpose(A)
print("Aの転置行列:")
print(A_transpose)
# 逆行列の計算
A_inv = np.linalg.inv(A)
print("Aの逆行列:")
print(A_inv)
# 固有値と固有ベクトルの計算
eigenvalues, eigenvectors = np.linalg.eig(A)
print("Aの固有値:")
print(eigenvalues)
print("Aの固有ベクトル:")
print(eigenvectors)
# 3次元プロット
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
# 固有ベクトルのプロット
for i in range(len(eigenvalues)):
ax.quiver(0, 0, 0, eigenvectors[0, i], eigenvectors[1, i], eigenvectors[2, i], color='r')
ax.set_xlim([-1, 1])
ax.set_ylim([-1, 1])
ax.set_zlim([-1, 1])
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()
# 対角化
D = np.diag(eigenvalues)
P = eigenvectors
# P * D * P^(-1)で元の行列に戻す
A_diagonalized = np.dot(np.dot(P, D), np.linalg.inv(P))
print("Aの対角化:")
print(A_diagonalized)
A= {{1, 1, 2}, {-1, 2, 2}, {3, 2, 3}}