## 2020年5月8日金曜日

### 数学 - Pytyhon - 解析学 - 多変数の関数 - 合成微分律と勾配ベクトル - 接平面 - 2曲線、交わりの曲線、ある点上の接線のパラメーター方程式、内積、垂直、零

1. $\begin{array}{l}grad\left({x}^{2}+{y}^{2}+{z}^{2}\right)\\ =\left(2x,2y,2z\right)\\ grad\left({x}^{2}+{y}^{2}\right)\\ =\left(2x,2y,0\right)\\ \left(2·3,2·2,2\left(-6\right)\right)=2\left(3,2,-6\right)\\ 2\left(3,2,0\right)\end{array}$

求める接線のパラメーター方程式の向きを

$\left(a,b,c\right)$

とすると、

$\begin{array}{l}\left\{\begin{array}{l}\left(3,2,-6\right)·\left(a,b,c\right)=0\\ \left(3,2,0\right)·\left(a,b,c\right)=0\end{array}\\ 3a+2b-6c=0\\ 3a+2b=0\\ c=0\\ b=-\frac{3}{2}a\end{array}$

よって、求める接線のパラメーター方程式は

$X=\left(3,2,-6\right)+t\left(2,-3,0\right)$

2. $\begin{array}{l}grad\left(xy+z\right)=\left(y,x,1\right)\\ grad\left({x}^{2}+{y}^{2}+{z}^{2}\right)=2\left(x,y,z\right)\\ \left\{\begin{array}{l}\left(1,2,1\right)·\left(a,b,c\right)=0\\ \left(2,1,-2\right)·\left(a,b,c\right)=0\end{array}\\ a+2b+c=0\\ 2a+b-2c=0\\ 2a+4b+2c=0\\ 4a+5b=0\\ b=-\frac{4}{5}a\\ c=-a+\frac{8}{5}a=\frac{3}{5}a\\ X=\left(2,1,-2\right)+t\left(5,-4,3\right)\end{array}$

3. $\begin{array}{l}grad\left({x}^{2}-{y}^{2}-{z}^{2}\right)=2\left(x,-y,-z\right)\\ grad\left({x}^{2}-{y}^{2}+{z}^{2}\right)=2\left(x,-y,z\right)\\ \left(3,-2,-2\right)·\left(a,b,c\right)=0\\ \left(3,-2,2\right)·\left(a,b,c\right)=0\\ 3a-2b-2c=0\\ 3a-2b+2c=0\\ 6a-4b=0\\ b=\frac{3}{2}a\\ c=\frac{1}{2}\left(3a-3a\right)=0\\ X=\left(3,2,2\right)+t\left(2,3,0\right)\end{array}$

コード

#!/usr/bin/env python3
from sympy import symbols, solve, sin, cos, sqrt
from sympy.plotting import plot3d, plot3d_parametric_line

print('3.')

x, y, z, t = symbols('x:z, t')

p = plot3d(*solve(x ** 2 + y ** 2 + z ** 2 - 49, z),
show=False)
p.append(plot3d_parametric_line(
sqrt(13) * sin(t), sqrt(13) * cos(t), t,
(t, -10, 10),
show=False)[0])
p.save('sample3_a.png')

p = plot3d(-x * y,
*solve(x ** 2 + y ** 2 + z ** 2 - 9, z),
show=False)
p.append(plot3d_parametric_line(
2 + 5 * t, 1 + -4 * t, -2 + 3 * t,
show=False
)[0])
p.save('sample3_b.png')

p = plot3d(*solve(x ** 2 - y ** 2 - z ** 2 - 1, z),
*solve(x ** 2 - y ** 2 + z ** 2 - 9, z),
show=False)
p.save('sample3_c.png')
p.show()


% ./sample3.py
3.
%