<jupyter_start><jupyter_text>2019年度線形代数　I　講座資料資料番号　No.3  [3]　平面と直線の方程式   直線の方程式  (2次元)　平行なベクトルを使うとき直線を通る１つの固定点をA$（A_x,A_y）$とし、直線に平行な１つの方向ベクトルを$ \boldsymbol{a}=(a_x,a_y) $とする直線上を移動する任意の点を$P(x,y)$とすると$\vec{AP}=(x , y)-(A_x , A_y)= (x - A_x,y - A_y)$t: 実数とする　ベクトル$\vec{AP}と\boldsymbol{a}$が平行な条件は$\vec{AP}=t \boldsymbol{a}$である$ (x,y) -(A_x , A_y) = t (a_x,a_y )$　または　$ (x,y) =(A_x , A_y) + t (a_x,a_y )$$(x ,y)=(A_x+ta_x,A_y+ta_y ) $より$x =A_x+ta_x,  y= A_y+ta_y  $  ,または  $x -A_x = ta_x,  y- A_y =ta_y  $ $t$で共通にしてみると$$t= \frac{ x - A_x}{a_x}=  \frac{y - A_y}{a_y}$$上式より　$$ y= \frac{a_y}{a_x}(x-A_x)+A_y $$ とも表されるfig-3.png   垂直なベクトルを使うとき   直線の方程式  (2次元)直線を通る１つの固定点をA$（A_x,A_y）$とし、直線に垂直な１つの方向ベクトルを$ \boldsymbol{n}=(n_x,n_y) $とする直線上を移動する任意の点を$P(x,y)$とすると$\vec{AP}=(x , y)-(A_x , A_y)= (x - A_x,y - A_y)$直交条件より$\vec{AP}\cdot \boldsymbol{n} =0 $である$(x - A_x,y - A_y)\cdot(n_x,n_y)=0$$$ n_x(x - A_x)+n_y(y - A_y) =0 $$または、$ n_y \neq 0 $のとき　$$ y = \left(-\frac{n_x}{n_y}\right)x + \left(\frac{n_x}{n_y}A_x + A_y\right) $$fig-3-1.png   直線の方程式  (3次元　空間)直線を通る１つの固定点をA$（A_x,A_y,A_z）$とし、直線に平行な１つの方向ベクトルを（$ \boldsymbol{a}=(a_x,a_y,a_z) $　）とする直線上を移動する任意の点を$P(x,y,z)$とすると$\vec{AP}=(x,y,z)-(A_x , A_y,A_z)= (x - A_x,y - A_y.z-A_z)$t: 実数とする　ベクトル$\vec{AP}と\boldsymbol{a}$が平行な条件は$\vec{AP}=t \boldsymbol{a}$である$ (x,y,z)-(A_x , A_y,A_z) = t (a_x,a_y,a_z)$　または　$ (x,y,z)=(A_x , A_y,A_z) + t (a_x,a_y,a_z)$$(x ,y)=(A_x+ta_x,A_y+ta_y ,A_z+ta_z) $より$x =A_x+ta_x,  y= A_y+ta_y , z= A_z+ta_z  $  ,または  $x -A_x = ta_x,  y- A_y =ta_y ,  z- A_z =ta_z  $ $t$で共通にしてみると$$t= \frac{x - A_x}{a_x}=  \frac{y - A_y}{a_y} =  \frac{z - A_z}{a_z}$$と表される  直線の方程式 $$ (x,y,z)=(A_x , A_y,A_z) + t (a_x,a_y,a_z) \tag{1.8}$$ $$ \frac{x - A_x}{a_x}=  \frac{y - A_y}{a_y} =  \frac{z - A_z}{a_z} \tag{1.9}$$ 直線の方程式  (2次元)  上にあるものと同じ<!--直線を通る１つの固定点をA$（A_x,A_y）$とし、直線に垂直な１つの方向ベクトルを（$ \boldsymbol{n}=(n_x,n_y) $　）とする直線上を移動する任意の点を$P(x,y)$とすると$\vec{AP}=(x , y)-(A_x , A_y)= (x - A_x,y - A_y)$直交条件より$\vec{AP}\cdot \boldsymbol{n} =0 $である$(x - A_x,y - A_y)\cdot(n_x,n_y)=0$$$ n_x(x - A_x)+n_y(y - A_y) =0 $$または、$ n_y \neq 0 $のとき　$$ y = \left(-\frac{n_x}{n_y}\right)x + \left(\frac{n_x}{n_y}A_x + A_y\right) $$fig-3-1.png-->   平面の方程式 （3次元　空間）平面に固定する１つの点A$（A_x,A_y,A_z）$とし、平面に垂直な１つの方向ベクトルを$ \boldsymbol{n}=(n_x,n_y,n_z) $とする平面上を移動する任意の点を$P(x,y,z)$とすると$\vec{AP}=(x,y,z)-(A_x , A_y,A_z)= (x - A_x,y - A_y.z-A_z)$内積の直交条件より$ \vec{AP}\cdot \boldsymbol{n} = 0 $ (実数でのゼロ)　より$ (x - A_x,y - A_y.z-A_z)\cdot (n_x,n_y,n_z) =0 $ $$ n_x(x - A_x)+n_y(y - A_y)+n_z(z-A_z)=0  \tag{1.7}$$原点(0,0,0)を通る場合には、$ ax+by+cz =0$　の形になり一般的な平面の方程式は、$ ax+by+cz =d$　の形になるfig-3-2.png<jupyter_code>from sympy import *
init_printing()
# init_session()
import numpy as np
from matplotlib import pyplot
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches 
# 問１．２０　（２）　
# 点(1, 1, 1),　点(5, 7, 9)　2点を通る直線の方程式

p1, p2 = Point3D(1, 1, 1), Point3D(5, 7, 9)
l1 = Line3D(p1, p2)
l1.equation()
#  直線の方程式の例点（1,2,0）平行なベクトル（2,3,4)のとき

from sympy import *
init_printing()

%matplotlib notebook
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm


x = np.arange(-5, 5, 0.25)
y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(x, y)

# ２つの平面の式より
#Z1 = -X +2*Y-3 
#Z2 = (X +2*Y-5)/2 

#  交線を求めた結果より，3次元の直線ｚ＝ｆ（ｘ，ｙ２（ｘ））として求めた結果を利用している
y2=(3/2)*x +(1/2)
z =2*(x-1)


fig = plt.figure()
ax = Axes3D(fig)
ax.plot(x, y2, z, "-o", color="#00aa00", ms=4, mew=0.5)

x=1
y=2
z =0
u =2
v =3
w= 4

ax.quiver(x, y, z, u, v, w, length=6, normalize=True, color='red',linewidth = 6.0)

x = [1]
y = [2]
z = [0]
ax.scatter(x, y, z,s=200, c='b', marker='o', label='test')


plt.show()

# 平面の方程式　点A(１，１，１，)　法線ベクトル n=（１，ー２，３）

from sympy import *
init_printing()

%matplotlib notebook
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm


x = np.arange(-5, 5, 0.25)
y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(x, y)

#平面
Z = -(1/3)*(X -2*Y-2) 

fig = plt.figure()
ax = Axes3D(fig)

#fig = plt.figure()
#ax = fig.add_subplot(111,projection='3d')
ax.set_aspect('equal')

x=0
y=0
z =0
u =1
v=-2
w=3


#ax.scatter(x, y, z, c='r', marker='^', label='test')
# plt.plot(ax,ay,az)


ax.plot_wireframe(X, Y, Z, rstride=4, cstride=4,  color='blue')
ax.quiver(x, y, z, u, v, w, length=5, normalize=True, color='green',linewidth = 4.0)

x = [1]
y = [1]
z = [1]
ax.scatter(x, y, z,s=200, c='r', marker='o', label='test')

#ax.legend()
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.2422168249061603, 'fraction_numerical': 0.03930227423272246, 'mean_word_length': 4.655430711610487, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 6, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '220639', 'license': 'MIT', 'n_tokens_mistral': 3059, 'n_tokens_neox': 2966, 'n_words': 429, 'path': '04_20190514-3-LA1-Copy2.ipynb', 'repo_name': 'kt-pro-git-1/Linear_Algabra-1-public', 'size': '4529'}