2019年9月18日水曜日

学習環境

微分積分学 (ちくま学芸文庫) (吉田 洋一(著)、筑摩書房)のI.(微分法)、演習問題 I.、28、29の解答を求めてみる。


  1. y ' = 2 p 2 x

    接線影、法線影、接線の長さ、法線の長さはそれぞれ、

    y y ' = 2 p x · 2 x 2 p = 2 x y y ' = 2 p 2 x · 2 p x = p y y ' 1 + y ' 2 = 2 x 1 + 2 p 4 x = 4 x 2 + 2 p x y 1 + y ' 2 = 2 p x · 1 + p 2 x = 2 p x + p 2

  2. y = C 2 x y ' = - C 2 x 2 y y ' = C 2 x · - x 2 C 2 = x y y ' = C 2 x · - C 2 x 2 = C 4 x 3 y y ' 1 + y ' 2 = x 1 + C 4 x 4 = x 2 + C 4 x 2 y 1 + y ' 2 = C 2 x 1 + C 4 x 4

コード

Python 3

#!/usr/bin/env python3
from sympy import pprint, symbols, Derivative, plot, solve, sqrt

x, C = symbols('x, C')
p = symbols('p', positive=True)

f = sqrt(2 * p * x)
g = C ** 2 / x

gs = []
ls = []
px = 1
p0 = 2
C0 = 3
s = {p: 2, C: 3}
for i, h in enumerate([f, g], 28):
    print(f'({i})')
    m = Derivative(h, x, 1).doit()
    gs.append(m.subs({x: px}) * (x - px) + h.subs({x: px}))
    ls.append(-1 / m.subs({x: px}) * (x - px) + h.subs({x: px}))
    d = Derivative(h, x, 1).doit()
    for o in [abs(h / d), abs(h * d), abs(h / d * sqrt(1 + d ** 2)),
              abs(h * sqrt(1 + d ** 2))]:
        pprint(o.simplify())
        print()

fs = [f, g] + gs + ls
p = plot(*[(h.subs(s), (x, x1, x2))
           for h in fs
           for x1, x2 in [(-10, -0.1), (0.1, 10)]],
         ylim=(-10, 10),
         legend=True, show=False)
colors = ['red', 'green', 'blue', 'brown', 'orange',
          'purple', 'pink', 'gray', 'skyblue', 'yellow']

for o, color in zip(p, colors):
    o.line_color = color

p.show()
p.save('sample28.png')

入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))

C:\Users\...>py sample28.py
(28)
2⋅│x│

p

   │      _______│
   │     ╱ p     │
√2⋅│x⋅  ╱  ─ + 2 │
   │  ╲╱   x     │

   │       _______│
   │      ╱ p     │
√p⋅│√x⋅  ╱  ─ + 2 │
   │   ╲╱   x     │

(29)
│x│

│ 4│
│C │
│──│
│ 3│
│x │

│        ________│
│       ╱  4     │
│      ╱  C      │
│x⋅   ╱   ── + 1 │
│    ╱     4     │
│  ╲╱     x      │

│         ________│
│        ╱  4     │
│ 2     ╱  C      │
│C ⋅   ╱   ── + 1 │
│     ╱     4     │
│   ╲╱     x      │
│─────────────────│
│        x        │


c:\Users\...>

0 コメント:

コメントを投稿