学習環境
- Surface
- Windows 10 Pro (OS)
- Nebo(Windows アプリ)
- iPad
- MyScript Nebo - MyScript(iPad アプリ(iOS))
- 参考書籍
解析入門 原書第3版 (S.ラング(著)、松坂 和夫(翻訳)、片山 孝次(翻訳)、岩波書店)の第Ⅵ部(多変数の関数)、第20章(合成微分律と勾配ベクトル)、2(接平面)の練習問題1の解答を求めてみる。
よって求める接平面の方程式は
法線の方程式は、
接平面の方程式。
法線の方程式。
コード
#!/usr/bin/env python3
from sympy import symbols, sin, solve
from sympy.plotting import plot3d
print('1.')
x, y, z, t = symbols('x, y, z, t', real=True)
eqs = [x ** 2 + y ** 2 + z ** 2 - 49,
x * y + y * z + z * x - 1,
x ** 2 + x * y ** 2 + y ** 3 + z + 1,
2 * y - z ** 3 - 3 * x * z,
x ** 2 * y ** 2 + x * z - 2 * y ** 3 - 10,
sin(x * y) + sin(y * z) + sin(x * z) - 1]
eqs1 = [6 * x + 2 * y + 3 * z - 49,
x + y + 2 * z - 2,
13 * x + 15 * y + z + 15,
-6 * x + 2 * y - 15 * z + 22,
4 * x + y + z - 13,
z]
for i, (eq, eq1) in enumerate(zip(eqs, eqs1)):
c = chr(ord("a") + i)
print(f'({c})')
try:
zs = solve(eq, z) + solve(eq1, z)
p = plot3d(*zs,
show=False)
p.save(f'sample1_{c}.png')
except Exception as err:
print(err)
p.show()
入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))
% ./sample1.py
1.
(a)
(b)
<string>:1: RuntimeWarning: divide by zero encountered in true_divide
float division by zero
(c)
(d)
(e)
(f)
multiple generators [tan(x*z/2), tan(y*z/2)]
No algorithms are implemented to solve equation -1 + 2*tan(y*z/2)/(tan(y*z/2)**2 + 1) + 2*tan(x*z/2)/(tan(x*z/2)**2 + 1) + 2*tan(x*y/2)/(tan(x*y/2)**2 + 1)
%
0 コメント:
コメントを投稿