1

将具有不同域的多个函数绘制到同一个图中的最佳方法是什么?有没有办法用 来做到这一点plot2d,还是我必须draw2d改用?

我特别喜欢在一个列表中提供多个函数的可能性,而如果我正确理解文档plot2d,我将不得不将不同的函数作为单独的参数添加。draw2d

我的意思的一个例子:

f(x, a) := sqrt(a) * exp(-(x-a)^2);
fmax(x) := sqrt(x);

在这个例子中,我想绘制f(x, a)几个a(例如,使用makelist(f(x, a), a, [0, 0.5, 1, 2, 5]))从 -1 到 10 和从 0 到 5(以显示曲线族fmax的最大值所在的位置)。f(x, a)

4

3 回答 3

3

你可以试试draw2d

f(x, a) := sqrt(a) * exp(-(x-a)^2);
fmax(x) := sqrt(x);

flist: makelist(f(x, a), a, [0, 0.5, 1, 2, 5]);

par: map(lambda([f], explicit(f, x, -1, 10)), flist);
par: append([explicit(fmax, x, 0, 5), color=red], par);

load(draw);
apply(draw2d, par);
于 2013-06-20T14:50:35.490 回答
0

我不太满意的一种方法是将具有较小域的函数声明为参数曲线,x 轴参数很简单x

f(x, a) := sqrt(a) * exp(-(x-a)^2);
fmax(x) := sqrt(x);
plot2d(endcons([parametric, x, fmax(x), [x, 0, 5], [nticks, 80]],
               makelist(f(x, a), a, [0, 1/2, 1, 2, 5])),
       [x, -1, 10]);
于 2013-06-19T08:09:51.517 回答
0

这让我沮丧了好几个小时,但我找到了一种在同一个图表上拥有多个不同域的函数的方法。

wxplot2d([if x < 0 then -x else sin(x), if x > -1 then x^2],[x,-%pi,%pi],[y,-2,2]);
于 2019-04-29T05:22:14.890 回答