Maxima の draw2d で2曲線間の領域を塗りつぶしとグラフの書き出し

領域の塗りつぶし

\displaystyle \frac{\pi}{4} \leq x \leq \frac{5 \pi}{4}の範囲で y = \sin x$ と $ y = \cos x で囲まれた部分を黄色で塗りつぶす例。

/* 囲まれた部分を塗りつぶして表示。*/

draw2d(/* 塗りつぶす色の指定。*/
       fill_color = yellow, 
       /* 上の線。*/
       filled_func = sin(x), 
       /* 下の線と範囲の指定。*/
       explicit(cos(x), x, %pi/4, 5*%pi/4))$

 

/* もう少しオプションを付けて。*/

draw2d(xrange = [0, 2*%pi],
       yrange = [-1.1, 1.3],
       xaxis = true, font = "Times", font_size = 14,
       user_preamble = "set xtics pi/4; set format x '%4.2P π';
set grid front;",
       /* 領域の塗りつぶし */
       fill_color = yellow,
       filled_func = sin(x),
       explicit(cos(x), x, %pi/4, 5*%pi/4),
       /* sin(x) と cos(x) の parametric での描画 */
       /* 塗りつぶしがあるときは explicit 以外で線を描く */
       nticks = 300, line_width = 2,
       color = blue, key = "sin x",
       parametric(x, sin(x), x, 0, 2*%pi),
       color = red, key = "cos x",
       parametric(x, cos(x), x, 0, 2*%pi),
       /* x = π/4 と x = 5 π/4 のライン */
       /* points_joined を true にして points() で 2 点を結ぶ */
       points_joined = true, point_size = 0, color = black, key = "",
       points([[%pi/4, -1.1], [%pi/4, sin(%pi/4)]]),
       points([[5*%pi/4, -1.1], [5*%pi/4, sin(5*%pi/4)]])
)$

 

 

もう一つの例。y = f(x)x 軸の間を,-0.25 \leq x \leq 2 までは黄色で,2 \leq x \leq 2.5 までは灰色で塗りつぶす例。

 

f(x):= 0.6*x + 0.4*cos(x)$
draw2d(/* x 軸,y 軸の実線表示 */
       xaxis =true, xaxis_type=solid,
       yaxis =true, yaxis_type=solid,
       user_preamble="set grid front",
       /* x, y の表示範囲設定 */
       xrange = [-0.2,3.5],
       yrange = [-0.2,1.5],
       /* 最初の塗りつぶし。色を yellow で */
       /* y = f(x) と y 軸の間を x が 0.25 から 2 まで */
       fill_color = yellow,
       filled_func = f(x),
       explicit(0, x, 0.25, 2),
       /* 次の塗りつぶし。色を gray で */
       /* y = f(x) と y 軸の間を x が 2 から 2.5 まで */
       fill_color = gray,
       filled_func = f(x),
       explicit(0, x, 2, 2.5),
       line_width = 2,
       /* 最後に y = f(x) を x が 0.1 から 2.7 まで */
       /* 塗りつぶしの explicit との混同を避けるため parametric で */
       parametric(x, f(x), x, 0.1, 2.7)
)$

 

 

グラフを pdf で書き出し

以下のように,file_name = "myfile1", terminal = 'pdf, dimensions = [1024, 768], などのオプションをつけて draw2d すると,グラフ部分が myfile1.pdf で保存される。

draw2d(file_name = "myfile1", terminal = 'pdf, dimensions = [1024, 768],
       /* 塗りつぶす色の指定。*/ 
       fill_color = yellow, 
       /* 上の線。*/
       filled_func = sin(x), 
       /* 下の線と範囲の指定。*/
       explicit(cos(x), x, %pi/4, 5*%pi/4))$