LoginSignup
0
0

予習シリーズ算数と面積図と連立方程式と線形代数学

Posted at

面積図のプログラム

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()

image.png

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()

image.png

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}} 

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0