Die geheime Notiz des Mathematikmädchens "Was die Prozession zeichnet" Demonstration der linearen Transformation von "Lisa" in Kapitel 4 Transformation Ich bin mit Python gegangen
Python3
Nachfolgend sind sie in der Reihenfolge der Beschreibung in diesem Handbuch aufgeführt.
Wird an Punkt (2, 1) in der Grafik angezeigt
import matplotlib.pyplot as plt
import numpy as np
p21 = np.array([2, 1])
plt.plot(p21[0], p21[1], marker='.')
plt.show()
Matrixpunkte (2, 1)
\begin{pmatrix}
2 & 0 \\
0 & 2
\end{pmatrix}
Transformiere linear mit, um zum Punkt (4, 2) zu gelangen.
import matplotlib.pyplot as plt
import numpy as np
p21 = np.array([2, 1])
p21to42 = np.array([[2, 0], [0, 2]]) @ p21
fig = plt.figure()
ax = fig.add_subplot(111)
ax.annotate('', xy=p21to42,
xytext=p21,
arrowprops=dict(shrink=0, width=1, headwidth=8))
ax.set_xlim([0, 5])
ax.set_ylim([0, 5])
plt.plot(p21[0], p21[1], marker='.')
plt.plot(p21to42[0], p21to42[1], marker='.')
plt.show()
Matrix aus mehreren Punkten
\begin{pmatrix}
2 & 0 \\
0 & 2
\end{pmatrix}
Lineare Umwandlung mit
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111)
for x in np.linspace(-1, 1, 11):
for y in np.linspace(-1, 1, 11):
marker = '8'
if x > 0 and y > 0:
marker = '$1$'
elif x < 0 and y > 0:
marker = '$2$'
elif x < 0 and y < 0:
marker = '$3$'
elif x > 0 and y < 0:
marker = '$4$'
pOrg = np.array([x, y])
pTra = np.array([[2, 0], [0, 2]]) @ pOrg
ax.annotate('', xy=pTra,
xytext=pOrg,
arrowprops=dict(shrink=0.1, width=1, headwidth=3))
plt.plot(pOrg[0], pOrg[1], marker = marker)
plt.plot(pTra[0], pTra[1], marker = marker)
ax.set_xlim([-2, 2])
ax.set_ylim([-2, 2])
plt.show()
\begin{pmatrix}
1/2 & 0 \\
0 & 1/2
\end{pmatrix}
Bei linearer Umrechnung mit
\begin{pmatrix}
3 & 0 \\
0 & 2
\end{pmatrix}
Bei linearer Umrechnung mit
\begin{pmatrix}
2 & 1 \\
1 & 3
\end{pmatrix}
Bei linearer Umrechnung mit
Zahlenmatrix umgeben von (0, 0), (1, 0), (1, 1), (0, 1)
\begin{pmatrix}
2 & 1 \\
1 & 3
\end{pmatrix}
Nach der Konvertierung mit
\begin{pmatrix}
0 & -1 \\
1 & 0
\end{pmatrix}
Konvertieren mit
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax1 = fig.add_subplot(131)
ax2 = fig.add_subplot(132)
ax3 = fig.add_subplot(133)
original = np.array([[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]])
trans1 = np.array([[0, 0]])
trans2 = np.array([[0, 0]])
for ele in original:
_ele1 = np.array([[2, 1], [1, 3]]) @ ele
_ele2 = np.array([[0, -1], [1, 0]]) @ _ele1
trans1 = np.vstack((trans1, np.array([_ele1])))
trans2 = np.vstack((trans2, np.array([_ele2])))
ax1.plot(original[:,0], original[:,1], marker = ".", label='original')
ax2.plot(trans1[:,0], trans1[:,1], marker = ".", label='trans1')
ax3.plot(trans2[:,0], trans2[:,1], marker = ".", label='trans2')
ax1.legend(loc = 'upper center')
ax2.legend(loc = 'upper center')
ax3.legend(loc = 'upper center')
ax1.set_xlim([-4, 4])
ax1.set_ylim([-4, 4])
ax2.set_xlim([-4, 4])
ax2.set_ylim([-4, 4])
ax3.set_xlim([-4, 4])
ax3.set_ylim([-4, 4])
plt.show()
Wenn sich die Umrechnungsreihenfolge wie in der folgenden Abbildung gezeigt unterscheidet, unterscheidet sich auch die Abbildung. Sie können sehen, dass ABx = BAx nicht wie eine normale Formel gilt
Recommended Posts