参考:gnuplot で sin x と x のグラフを描く の Maxima 版。Maxima で $y = \sin x $ と $y = x$ のグラフを描く。
$ |x| \ll 1 $ では2つのグラフはほとんど重なっていて $ \sin x \simeq x $ すなわち $\displaystyle \frac{\sin x}{x} \simeq 1$ であることを見て確かめる。
Maxima では plot2d()
(いわゆる plot 系)と draw2d()
(いわゆる draw 系)がある。最近は個人的には授業等では draw 系を使うようになってきているが,参考までに両方の使用例を書いておく。
plot2d()
編
$ – \pi \leq x \leq \pi$ の範囲で $y = \sin x$ と $ y = x$ を plot2d()
。
/* 次に拡大表示する部分の矩形 */
points4: [[-1,-1],[1,-1],[1,1],[-1,1],[-1,-1]]$
plot2d(
[[discrete, points4], sin(x), x], [x, -%pi, %pi],
[color, orange, red, blue],
[style, [lines, 2], [lines, 3], [lines, 1.5]],
[legend, "", "sin x", "x"],
[x, -%pi, %pi], [y, -%pi, %pi], [same_xy], grid2d,
/* グラフのサイズとフォントの設定 */
[gnuplot_svg_term_command, "set term svg size 600,600 font 'Times,18'"],
/* 凡例の位置 */
[gnuplot_preamble, "set key top left;"]
)$
$ – 1 \leq x \leq 1$ の範囲で $y = \sin x$ と $ y = x$ を plot2d()
。
/* 次に拡大表示する部分の矩形 */
points4s: [[-0.1,-0.1],[0.1,-0.1],[0.1,0.1],[-0.1,0.1],[-0.1,-0.1]]$
plot2d(
[[discrete, points4s], sin(x), x], [x, -1, 1],
[color, orange, red, blue],
[style, [lines, 2], [lines, 3], [lines, 1.5]],
[legend, "", "sin x", "x"],
[x, -1, 1], [y, -1, 1], [same_xy], grid2d,
[gnuplot_svg_term_command, "set term svg size 600,600 font 'Times,18'"],
[gnuplot_preamble, "set key top left;"]
)$
$ – 0.1 \leq x \leq 0.1$ の範囲で $y = \sin x$ と $ y = x$ を plot2d()
。ほとんど重なっていて,区別がつきにくい。
plot2d(
[sin(x), x], [x, -0.1, 0.1],
[color, red, blue],
[style, [lines, 3], [lines, 1.5]],
[legend, "sin x", "x"],
[x, -0.1, 0.1], [y, -0.1, 0.1], [same_xy], grid2d,
[gnuplot_svg_term_command, "set term svg size 600,600 font 'Times,18'"],
[gnuplot_preamble, "set key top left;"]
)$
draw2d()
編
$ – \pi \leq x \leq \pi$ の範囲で $y = \sin x$ と $ y = x$ を draw2d()
。
draw2d(
/* 次に拡大表示する部分を矩形で囲む */
color = orange, line_width = 2, key = "",
transparent = true,
rectangle([-1,-1], [1, 1]),
color = red, line_width = 3, key = "sin x",
explicit(sin(x), x, -%pi, %pi),
color = blue, line_width = 1.5, key = "x",
explicit(x, x, -%pi, %pi),
xrange = [-%pi, %pi], yrange = [-%pi, %pi],
proportional_axes = xy,
xaxis = true, yaxis = true, grid = true,
/* グラフのサイズとフォントの設定 */
dimensions = [600,600], font = "Times", font_size = 18,
/* 凡例の位置 */
user_preamble = ["set key top left;"]
)$
$ – 1 \leq x \leq 1$ の範囲で $y = \sin x$ と $ y = x$ を draw2d()
。
draw2d(
/* 次に拡大表示する部分を矩形で囲む */
color = orange, line_width = 2, key = "",
transparent = true,
rectangle([-0.1,-0.1], [0.1, 0.1]),
color = red, line_width = 3, key = "sin x",
explicit(sin(x), x, -1, 1),
color = blue, line_width = 1.5, key = "x",
explicit(x, x, -1, 1),
xrange = [-1, 1], yrange = [-1, 1],
proportional_axes = xy,
xaxis = true, yaxis = true, grid = true,
dimensions = [600,600], font = "Times", font_size = 18,
user_preamble = ["set key top left;"]
)$
$ – 0.1 \leq x \leq 0.1$ の範囲で $y = \sin x$ と $ y = x$ を draw2d()
。ほとんど重なっていて,区別がつきにくい。
draw2d(
color = red, line_width = 3, key = "sin x",
explicit(sin(x), x, -0.1, 0.1),
color = blue, line_width = 1.5, key = "x",
explicit(x, x, -0.1, 0.1),
xrange = [-0.1, 0.1], yrange = [-0.1, 0.1],
proportional_axes = xy,
xaxis = true, yaxis = true, grid = true,
dimensions = [600,600], font = "Times", font_size = 18,
user_preamble = ["set key top left;"]
)$