学習環境
- Surface 3 (4G LTE)、Surface 3 タイプ カバー、Surface ペン(端末)
- Windows 10 Pro (OS)
- 数式入力ソフト(TeX, MathML): MathType
- MathML対応ブラウザ: Firefox、Safari
- MathML非対応ブラウザ(Internet Explorer, Microsoft Edge, Google Chrome...)用JavaScript Library: MathJax
- 参考書籍
解析入門 原書第3版 (S.ラング(著)、松坂 和夫(翻訳)、片山 孝次(翻訳)、岩波書店)の第2部(微分と基本的な関数)、第7章(逆関数)、2(逆関数の導関数)、練習問題6、7、8、9、10.を取り組んでみる。
コード(Emacs)
Python 3
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from sympy import pprint, symbols, solve, Derivative, sin, cos, sqrt, plot
x, y = symbols('x y', real=True)
fs = [(x ** 4 - 3 * x ** 2 + 1, -1),
(x ** 3 + x - 2, 0),
(-x ** 3 + 2 * x + 1, 2),
(2 * x ** 3 + 5, 21),
(5 * x ** 2 + 1, 11)]
for i, (f, y0) in enumerate(fs, 6):
print(f'({i})')
pprint(f)
s = solve(y - f, x)
for g in s:
g1 = Derivative(g, y, 1)
for h in [g1, g1.doit(), g1.doit().subs({y: y0})]:
pprint(h)
print()
p = plot(
x, f, *map(lambda s0: s0.subs({y: x}), s), show=False, legend=True)
for j, _ in enumerate(p):
if j == 0:
p[j].line_color = 'red'
elif j == 1:
p[j].line_color = 'green'
else:
p[j].line_color = 'blue'
p.save(f'sample{i}.svg')
print()
入出力結果(Terminal, Jupyter(IPython))
$ ./sample6.py
(6)
4 2
x - 3⋅x + 1
⎛ ___________________⎞
⎜ ╱ _________ ⎟
d ⎜ ╱ ╲╱ 4⋅y + 5 3 ⎟
──⎜- ╱ - ─────────── + ─ ⎟
dy⎝ ╲╱ 2 2 ⎠
1
──────────────────────────────────────
___________________
╱ _________
_________ ╱ ╲╱ 4⋅y + 5 3
2⋅╲╱ 4⋅y + 5 ⋅ ╱ - ─────────── + ─
╲╱ 2 2
1/2
⎛ ___________________⎞
⎜ ╱ _________ ⎟
d ⎜ ╱ ╲╱ 4⋅y + 5 3 ⎟
──⎜ ╱ - ─────────── + ─ ⎟
dy⎝╲╱ 2 2 ⎠
-1
──────────────────────────────────────
___________________
╱ _________
_________ ╱ ╲╱ 4⋅y + 5 3
2⋅╲╱ 4⋅y + 5 ⋅ ╱ - ─────────── + ─
╲╱ 2 2
-1/2
⎛ _________________⎞
⎜ ╱ _________ ⎟
d ⎜ ╱ ╲╱ 4⋅y + 5 3 ⎟
──⎜- ╱ ─────────── + ─ ⎟
dy⎝ ╲╱ 2 2 ⎠
-1
────────────────────────────────────
_________________
╱ _________
_________ ╱ ╲╱ 4⋅y + 5 3
2⋅╲╱ 4⋅y + 5 ⋅ ╱ ─────────── + ─
╲╱ 2 2
-√2
────
4
⎛ _________________⎞
⎜ ╱ _________ ⎟
d ⎜ ╱ ╲╱ 4⋅y + 5 3 ⎟
──⎜ ╱ ─────────── + ─ ⎟
dy⎝╲╱ 2 2 ⎠
1
────────────────────────────────────
_________________
╱ _________
_________ ╱ ╲╱ 4⋅y + 5 3
2⋅╲╱ 4⋅y + 5 ⋅ ╱ ─────────── + ─
╲╱ 2 2
√2
──
4
(7)
3
x + x - 2
⎛ ________________________________________
⎜ ╱ _____________________
⎜ ╱ ╱ 2
⎜ ⎛ 1 √3⋅ⅈ⎞ ╱ 27⋅y ╲╱ (-27⋅y - 54) + 108
⎜ ⎜- ─ - ────⎟⋅3 ╱ - ──── + ──────────────────────── - 27
d ⎜ ⎝ 2 2 ⎠ ╲╱ 2 2
──⎜- ─────────────────────────────────────────────────────────── + ───────────
dy⎜ 3
⎜
⎜
⎜ ⎛ 1 √3⋅ⅈ
⎜ ⎜- ─ - ────
⎝ ⎝ 2 2
⎞
⎟
⎟
⎟
⎟
1 ⎟
────────────────────────────────────────────────⎟
________________________________________⎟
╱ _____________________ ⎟
╱ ╱ 2 ⎟
⎞ ╱ 27⋅y ╲╱ (-27⋅y - 54) + 108 ⎟
⎟⋅3 ╱ - ──── + ──────────────────────── - 27 ⎟
⎠ ╲╱ 2 2 ⎠
729⋅y + 1458 9 ⎛ 1 √3⋅ⅈ⎞ ⎛
- ────────────────────────── + ─ ⎜- ─ - ────⎟⋅⎜─────
_____________________ 2 ⎝ 2 2 ⎠ ⎜
╱ 2 ⎜ ╱
6⋅╲╱ (-27⋅y - 54) + 108 ⎝6⋅╲╱
──────────────────────────────────────────────────────── - ───────────────────
4/3
⎛ _____________________ ⎞ ⎛ ____
⎜ ╱ 2 ⎟ ⎜ ╱
⎛ 1 √3⋅ⅈ⎞ ⎜ 27⋅y ╲╱ (-27⋅y - 54) + 108 ⎟ ⎜ 27⋅y ╲╱ (-2
⎜- ─ - ────⎟⋅⎜- ──── + ──────────────────────── - 27⎟ 3⋅⎜- ──── + ───────
⎝ 2 2 ⎠ ⎝ 2 2 ⎠ ⎝ 2
729⋅y + 1458 9⎞
───────────────────── - ─⎟
_____________________ 2⎟
2 ⎟
(-27⋅y - 54) + 108 ⎠
──────────────────────────
2/3
_________________ ⎞
2 ⎟
7⋅y - 54) + 108 ⎟
───────────────── - 27⎟
2 ⎠
⎛ 9 27⋅√21⎞ ⎛ 1 √3⋅ⅈ⎞ 27⋅√21 9
⎜- ─ + ──────⎟⋅⎜- ─ - ────⎟ - ────── + ─
⎝ 2 28 ⎠ ⎝ 2 2 ⎠ 28 2
- ─────────────────────────── + ─────────────────────────────
2/3 4/3 ⎛ 1 √3⋅ⅈ⎞
3⋅(-27 + 6⋅√21) (-27 + 6⋅√21) ⋅⎜- ─ - ────⎟
⎝ 2 2 ⎠
⎛ ________________________________________
⎜ ╱ _____________________
⎜ ╱ ╱ 2
⎜ ⎛ 1 √3⋅ⅈ⎞ ╱ 27⋅y ╲╱ (-27⋅y - 54) + 108
⎜ ⎜- ─ + ────⎟⋅3 ╱ - ──── + ──────────────────────── - 27
d ⎜ ⎝ 2 2 ⎠ ╲╱ 2 2
──⎜- ─────────────────────────────────────────────────────────── + ───────────
dy⎜ 3
⎜
⎜
⎜ ⎛ 1 √3⋅ⅈ
⎜ ⎜- ─ + ────
⎝ ⎝ 2 2
⎞
⎟
⎟
⎟
⎟
1 ⎟
────────────────────────────────────────────────⎟
________________________________________⎟
╱ _____________________ ⎟
╱ ╱ 2 ⎟
⎞ ╱ 27⋅y ╲╱ (-27⋅y - 54) + 108 ⎟
⎟⋅3 ╱ - ──── + ──────────────────────── - 27 ⎟
⎠ ╲╱ 2 2 ⎠
729⋅y + 1458 9 ⎛ 1 √3⋅ⅈ⎞ ⎛
- ────────────────────────── + ─ ⎜- ─ + ────⎟⋅⎜─────
_____________________ 2 ⎝ 2 2 ⎠ ⎜
╱ 2 ⎜ ╱
6⋅╲╱ (-27⋅y - 54) + 108 ⎝6⋅╲╱
──────────────────────────────────────────────────────── - ───────────────────
4/3
⎛ _____________________ ⎞ ⎛ ____
⎜ ╱ 2 ⎟ ⎜ ╱
⎛ 1 √3⋅ⅈ⎞ ⎜ 27⋅y ╲╱ (-27⋅y - 54) + 108 ⎟ ⎜ 27⋅y ╲╱ (-2
⎜- ─ + ────⎟⋅⎜- ──── + ──────────────────────── - 27⎟ 3⋅⎜- ──── + ───────
⎝ 2 2 ⎠ ⎝ 2 2 ⎠ ⎝ 2
729⋅y + 1458 9⎞
───────────────────── - ─⎟
_____________________ 2⎟
2 ⎟
(-27⋅y - 54) + 108 ⎠
──────────────────────────
2/3
_________________ ⎞
2 ⎟
7⋅y - 54) + 108 ⎟
───────────────── - 27⎟
2 ⎠
27⋅√21 9 ⎛ 9 27⋅√21⎞ ⎛ 1 √3⋅ⅈ⎞
- ────── + ─ ⎜- ─ + ──────⎟⋅⎜- ─ + ────⎟
28 2 ⎝ 2 28 ⎠ ⎝ 2 2 ⎠
───────────────────────────── - ───────────────────────────
4/3 ⎛ 1 √3⋅ⅈ⎞ 2/3
(-27 + 6⋅√21) ⋅⎜- ─ + ────⎟ 3⋅(-27 + 6⋅√21)
⎝ 2 2 ⎠
⎛ ________________________________________
⎜ ╱ _____________________
⎜ ╱ ╱ 2
⎜ ╱ 27⋅y ╲╱ (-27⋅y - 54) + 108
⎜ 3 ╱ - ──── + ──────────────────────── - 27
d ⎜ ╲╱ 2 2 1
──⎜- ────────────────────────────────────────────── + ────────────────────────
dy⎜ 3 __________________
⎜ ╱ _____
⎜ ╱ ╱
⎜ ╱ 27⋅y ╲╱ (-27
⎜ 3 ╱ - ──── + ────────
⎝ ╲╱ 2
⎞
⎟
⎟
⎟
⎟
⎟
──────────────────────⎟
______________________⎟
________________ ⎟
2 ⎟
⋅y - 54) + 108 ⎟
──────────────── - 27 ⎟
2 ⎠
729⋅y + 1458 9 729⋅y + 1458
- ────────────────────────── + ─ ────────────────────────
_____________________ 2 ___________________
╱ 2 ╱ 2
6⋅╲╱ (-27⋅y - 54) + 108 6⋅╲╱ (-27⋅y - 54) + 10
─────────────────────────────────────────── - ────────────────────────────────
4/3
⎛ _____________________ ⎞ ⎛ _________________
⎜ ╱ 2 ⎟ ⎜ ╱ 2
⎜ 27⋅y ╲╱ (-27⋅y - 54) + 108 ⎟ ⎜ 27⋅y ╲╱ (-27⋅y - 54) +
⎜- ──── + ──────────────────────── - 27⎟ 3⋅⎜- ──── + ────────────────────
⎝ 2 2 ⎠ ⎝ 2 2
9
── - ─
__ 2
8
─────────────
2/3
____ ⎞
⎟
108 ⎟
──── - 27⎟
⎠
9 27⋅√21 27⋅√21 9
- ─ + ────── - ────── + ─
2 28 28 2
- ────────────────── + ────────────────
2/3 4/3
3⋅(-27 + 6⋅√21) (-27 + 6⋅√21)
(8)
3
- x + 2⋅x + 1
⎛ _____________________________________
⎜ ╱ ____________________
⎜ ╱ ╱ 2
⎜ ⎛ 1 √3⋅ⅈ⎞ ╱ 27⋅y ╲╱ (27⋅y - 27) - 864 27
⎜ ⎜- ─ - ────⎟⋅3 ╱ ──── + ─────────────────────── - ──
d ⎜ ⎝ 2 2 ⎠ ╲╱ 2 2 2
──⎜- ──────────────────────────────────────────────────────── - ──────────────
dy⎜ 3
⎜
⎜
⎜ ⎛ 1 √3⋅ⅈ⎞
⎜ ⎜- ─ - ────⎟⋅3
⎝ ⎝ 2 2 ⎠ ╲
⎞
⎟
⎟
⎟
⎟
2 ⎟
──────────────────────────────────────────⎟
_____________________________________⎟
╱ ____________________ ⎟
╱ ╱ 2 ⎟
╱ 27⋅y ╲╱ (27⋅y - 27) - 864 27 ⎟
╱ ──── + ─────────────────────── - ── ⎟
╱ 2 2 2 ⎠
⎛ 729⋅y - 729 9⎞ ⎛ 1 √3⋅ⅈ⎞ ⎛
2⋅⎜- ───────────────────────── - ─⎟ ⎜- ─ - ────⎟⋅⎜──────
⎜ ____________________ 2⎟ ⎝ 2 2 ⎠ ⎜ _
⎜ ╱ 2 ⎟ ⎜ ╱
⎝ 6⋅╲╱ (27⋅y - 27) - 864 ⎠ ⎝6⋅╲╱
- ───────────────────────────────────────────────────── - ────────────────────
4/3
⎛ ____________________ ⎞ ⎛ ______
⎜ ╱ 2 ⎟ ⎜ ╱
⎛ 1 √3⋅ⅈ⎞ ⎜27⋅y ╲╱ (27⋅y - 27) - 864 27⎟ ⎜27⋅y ╲╱ (27⋅y
⎜- ─ - ────⎟⋅⎜──── + ─────────────────────── - ──⎟ 3⋅⎜──── + ─────────
⎝ 2 2 ⎠ ⎝ 2 2 2 ⎠ ⎝ 2
729⋅y - 729 9⎞
─────────────────── + ─⎟
___________________ 2⎟
2 ⎟
(27⋅y - 27) - 864 ⎠
────────────────────────
2/3
______________ ⎞
2 ⎟
- 27) - 864 27⎟
────────────── - ──⎟
2 2 ⎠
⎛ 1 √3⋅ⅈ⎞ ⎛9 27⋅√15⋅ⅈ⎞ ⎛ 9 27⋅√15⋅ⅈ⎞
⎜- ─ - ────⎟⋅⎜─ - ────────⎟ 2⋅⎜- ─ + ────────⎟
⎝ 2 2 ⎠ ⎝2 10 ⎠ ⎝ 2 10 ⎠
- ─────────────────────────── - ──────────────────────────────
2/3 4/3
⎛27 3⋅√15⋅ⅈ⎞ ⎛ 1 √3⋅ⅈ⎞ ⎛27 3⋅√15⋅ⅈ⎞
3⋅⎜── + ───────⎟ ⎜- ─ - ────⎟⋅⎜── + ───────⎟
⎝2 2 ⎠ ⎝ 2 2 ⎠ ⎝2 2 ⎠
⎛ _____________________________________
⎜ ╱ ____________________
⎜ ╱ ╱ 2
⎜ ⎛ 1 √3⋅ⅈ⎞ ╱ 27⋅y ╲╱ (27⋅y - 27) - 864 27
⎜ ⎜- ─ + ────⎟⋅3 ╱ ──── + ─────────────────────── - ──
d ⎜ ⎝ 2 2 ⎠ ╲╱ 2 2 2
──⎜- ──────────────────────────────────────────────────────── - ──────────────
dy⎜ 3
⎜
⎜
⎜ ⎛ 1 √3⋅ⅈ⎞
⎜ ⎜- ─ + ────⎟⋅3
⎝ ⎝ 2 2 ⎠ ╲
⎞
⎟
⎟
⎟
⎟
2 ⎟
──────────────────────────────────────────⎟
_____________________________________⎟
╱ ____________________ ⎟
╱ ╱ 2 ⎟
╱ 27⋅y ╲╱ (27⋅y - 27) - 864 27 ⎟
╱ ──── + ─────────────────────── - ── ⎟
╱ 2 2 2 ⎠
⎛ 729⋅y - 729 9⎞ ⎛ 1 √3⋅ⅈ⎞ ⎛
2⋅⎜- ───────────────────────── - ─⎟ ⎜- ─ + ────⎟⋅⎜──────
⎜ ____________________ 2⎟ ⎝ 2 2 ⎠ ⎜ _
⎜ ╱ 2 ⎟ ⎜ ╱
⎝ 6⋅╲╱ (27⋅y - 27) - 864 ⎠ ⎝6⋅╲╱
- ───────────────────────────────────────────────────── - ────────────────────
4/3
⎛ ____________________ ⎞ ⎛ ______
⎜ ╱ 2 ⎟ ⎜ ╱
⎛ 1 √3⋅ⅈ⎞ ⎜27⋅y ╲╱ (27⋅y - 27) - 864 27⎟ ⎜27⋅y ╲╱ (27⋅y
⎜- ─ + ────⎟⋅⎜──── + ─────────────────────── - ──⎟ 3⋅⎜──── + ─────────
⎝ 2 2 ⎠ ⎝ 2 2 2 ⎠ ⎝ 2
729⋅y - 729 9⎞
─────────────────── + ─⎟
___________________ 2⎟
2 ⎟
(27⋅y - 27) - 864 ⎠
────────────────────────
2/3
______________ ⎞
2 ⎟
- 27) - 864 27⎟
────────────── - ──⎟
2 2 ⎠
⎛ 1 √3⋅ⅈ⎞ ⎛9 27⋅√15⋅ⅈ⎞ ⎛ 9 27⋅√15⋅ⅈ⎞
⎜- ─ + ────⎟⋅⎜─ - ────────⎟ 2⋅⎜- ─ + ────────⎟
⎝ 2 2 ⎠ ⎝2 10 ⎠ ⎝ 2 10 ⎠
- ─────────────────────────── - ──────────────────────────────
2/3 4/3
⎛27 3⋅√15⋅ⅈ⎞ ⎛ 1 √3⋅ⅈ⎞ ⎛27 3⋅√15⋅ⅈ⎞
3⋅⎜── + ───────⎟ ⎜- ─ + ────⎟⋅⎜── + ───────⎟
⎝2 2 ⎠ ⎝ 2 2 ⎠ ⎝2 2 ⎠
⎛ _____________________________________
⎜ ╱ ____________________
⎜ ╱ ╱ 2
⎜ ╱ 27⋅y ╲╱ (27⋅y - 27) - 864 27
⎜ 3 ╱ ──── + ─────────────────────── - ──
d ⎜ ╲╱ 2 2 2 2
──⎜- ─────────────────────────────────────────── - ───────────────────────────
dy⎜ 3 _____________________
⎜ ╱ __________
⎜ ╱ ╱
⎜ ╱ 27⋅y ╲╱ (27⋅y - 2
⎜ 3 ╱ ──── + ─────────────
⎝ ╲╱ 2 2
⎞
⎟
⎟
⎟
⎟
⎟
────────────────⎟
________________⎟
__________ ⎟
2 ⎟
7) - 864 27 ⎟
────────── - ── ⎟
2 ⎠
⎛ 729⋅y - 729 9⎞ 729⋅y - 729
2⋅⎜- ───────────────────────── - ─⎟ ───────────────────────── +
⎜ ____________________ 2⎟ ____________________
⎜ ╱ 2 ⎟ ╱ 2
⎝ 6⋅╲╱ (27⋅y - 27) - 864 ⎠ 6⋅╲╱ (27⋅y - 27) - 864
- ──────────────────────────────────────── - ─────────────────────────────────
4/3
⎛ ____________________ ⎞ ⎛ ____________________
⎜ ╱ 2 ⎟ ⎜ ╱ 2
⎜27⋅y ╲╱ (27⋅y - 27) - 864 27⎟ ⎜27⋅y ╲╱ (27⋅y - 27) - 864
⎜──── + ─────────────────────── - ──⎟ 3⋅⎜──── + ───────────────────────
⎝ 2 2 2 ⎠ ⎝ 2 2
9
─
2
─────────
2/3
⎞
⎟
27⎟
- ──⎟
2 ⎠
⎛ 9 27⋅√15⋅ⅈ⎞ 9 27⋅√15⋅ⅈ
2⋅⎜- ─ + ────────⎟ ─ - ────────
⎝ 2 10 ⎠ 2 10
- ────────────────── - ───────────────────
4/3 2/3
⎛27 3⋅√15⋅ⅈ⎞ ⎛27 3⋅√15⋅ⅈ⎞
⎜── + ───────⎟ 3⋅⎜── + ───────⎟
⎝2 2 ⎠ ⎝2 2 ⎠
(9)
3
2⋅x + 5
⎛ _______⎞
d ⎜ ╱ y 5 ⎟
──⎜3 ╱ ─ - ─ ⎟
dy⎝╲╱ 2 2 ⎠
1
────────────
2/3
⎛y 5⎞
6⋅⎜─ - ─⎟
⎝2 2⎠
1/24
⎛ _______ _______⎞
⎜ ╱ y 5 ╱ y 5 ⎟
⎜ 3 ╱ ─ - ─ √3⋅ⅈ⋅3 ╱ ─ - ─ ⎟
d ⎜ ╲╱ 2 2 ╲╱ 2 2 ⎟
──⎜- ─────────── - ────────────────⎟
dy⎝ 2 2 ⎠
1 √3⋅ⅈ
- ───────────── - ─────────────
2/3 2/3
⎛y 5⎞ ⎛y 5⎞
12⋅⎜─ - ─⎟ 12⋅⎜─ - ─⎟
⎝2 2⎠ ⎝2 2⎠
1 √3⋅ⅈ
- ── - ────
48 48
⎛ _______ _______⎞
⎜ ╱ y 5 ╱ y 5 ⎟
⎜ 3 ╱ ─ - ─ √3⋅ⅈ⋅3 ╱ ─ - ─ ⎟
d ⎜ ╲╱ 2 2 ╲╱ 2 2 ⎟
──⎜- ─────────── + ────────────────⎟
dy⎝ 2 2 ⎠
1 √3⋅ⅈ
- ───────────── + ─────────────
2/3 2/3
⎛y 5⎞ ⎛y 5⎞
12⋅⎜─ - ─⎟ 12⋅⎜─ - ─⎟
⎝2 2⎠ ⎝2 2⎠
1 √3⋅ⅈ
- ── + ────
48 48
(10)
2
5⋅x + 1
⎛ _________ ⎞
d ⎜-╲╱ 5⋅y - 5 ⎟
──⎜─────────────⎟
dy⎝ 5 ⎠
-1
─────────────
_________
2⋅╲╱ 5⋅y - 5
-√2
────
20
⎛ _________⎞
d ⎜╲╱ 5⋅y - 5 ⎟
──⎜───────────⎟
dy⎝ 5 ⎠
1
─────────────
_________
2⋅╲╱ 5⋅y - 5
√2
──
20
$
HTML5
<div id="graph0"></div> <pre id="output0"></pre> <label for="r0">r = </label> <input id="r0" type="number" min="0" value="0.5"> <label for="dx">dx = </label> <input id="dx" type="number" min="0" step="0.0001" value="0.001"> <br> <label for="x1">x1 = </label> <input id="x1" type="number" value="-5"> <label for="x2">x2 = </label> <input id="x2" type="number" value="5"> <br> <label for="y1">y1 = </label> <input id="y1" type="number" value="-5"> <label for="y2">y2 = </label> <input id="y2" type="number" value="5"> <button id="draw0">draw</button> <button id="clear0">clear</button> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.2.6/d3.min.js" integrity="sha256-5idA201uSwHAROtCops7codXJ0vja+6wbBrZdQ6ETQc=" crossorigin="anonymous"></script> <script src="sample6.js"></script>
JavaScript
let div0 = document.querySelector('#graph0'),
pre0 = document.querySelector('#output0'),
width = 600,
height = 600,
padding = 50,
btn0 = document.querySelector('#draw0'),
btn1 = document.querySelector('#clear0'),
input_r = document.querySelector('#r0'),
input_dx = document.querySelector('#dx'),
input_x1 = document.querySelector('#x1'),
input_x2 = document.querySelector('#x2'),
input_y1 = document.querySelector('#y1'),
input_y2 = document.querySelector('#y2'),
inputs = [input_r, input_dx, input_x1, input_x2, input_y1, input_y2],
p = (x) => pre0.textContent += x + '\n',
range = (start, end, step=1) => {
let res = [];
for (let i = start; i < end; i += step) {
res.push(i);
}
return res;
};
let fx6 = (x) => x ** 4 - 3 * x ** 2 + 1,
fy6_1 = (y) => -Math.sqrt(-Math.sqrt(4 * y + 5) / 2 + 3 / 2),
fy6_2 = (y) => -fy6_1(y),
fy6_3 = (y) => -Math.sqrt(Math.sqrt(4 * y + 5) / 2 + 3 / 2),
fy6_4 = (y) => -fy6_3(y);
let draw = () => {
pre0.textContent = '';
let r = parseFloat(input_r.value),
dx = parseFloat(input_dx.value),
x1 = parseFloat(input_x1.value),
x2 = parseFloat(input_x2.value),
y1 = parseFloat(input_y1.value),
y2 = parseFloat(input_y2.value);
if (r === 0 || dx === 0 || x1 > x2 || y1 > y2) {
return;
}
let points = [],
lines = [],
fns = [[(x) => x, 'red'],
[fx6, 'green'],
[fy6_1, 'blue'],
[fy6_2, 'blue'],
[fy6_3, 'blue'],
[fy6_4, 'blue']],
fns1 = [],
fns2 = [];
fns
.forEach((o) => {
let [f, color] = o;
for (let x = x1; x <= x2; x += dx) {
let y = f(x);
points.push([x, y, color]);
}
});
fns2
.forEach((o) => {
let [f, color] = o;
for (let x = x1; x <= x2; x += dx0) {
let g = f(x);
lines.push([x1, g(x1), x2, g(x2), color]);
}
});
let xscale = d3.scaleLinear()
.domain([x1, x2])
.range([padding, width - padding]);
let yscale = d3.scaleLinear()
.domain([y1, y2])
.range([height - padding, padding]);
let xaxis = d3.axisBottom().scale(xscale);
let yaxis = d3.axisLeft().scale(yscale);
div0.innerHTML = '';
let svg = d3.select('#graph0')
.append('svg')
.attr('width', width)
.attr('height', height);
svg.selectAll('line')
.data([[x1, 0, x2, 0], [0, y1, 0, y2]].concat(lines))
.enter()
.append('line')
.attr('x1', (d) => xscale(d[0]))
.attr('y1', (d) => yscale(d[1]))
.attr('x2', (d) => xscale(d[2]))
.attr('y2', (d) => yscale(d[3]))
.attr('stroke', (d) => d[4] || 'black');
svg.selectAll('circle')
.data(points)
.enter()
.append('circle')
.attr('cx', (d) => xscale(d[0]))
.attr('cy', (d) => yscale(d[1]))
.attr('r', r)
.attr('fill', (d) => d[2] || 'green');
svg.append('g')
.attr('transform', `translate(0, ${height - padding})`)
.call(xaxis);
svg.append('g')
.attr('transform', `translate(${padding}, 0)`)
.call(yaxis);
[fns, fns1, fns2].forEach((fs) => p(fs.join('\n')));
};
inputs.forEach((input) => input.onchange = draw);
btn0.onclick = draw;
btn1.onclick = () => pre0.textContent = '';
draw();
0 コメント:
コメントを投稿