函数绘图
灰姑娘提供了几个操作符,允许用户绘制有关数学函数的信息。除了简单的函数绘图外,还可以显示有关极值、零点和拐点的信息。
功能
以下函数允许绘制将实数映射为实数的函数的图形。
绘制函数:绘图(<expr>)
描述:这个情节
运算符可用于绘制函数。函数必须作为表达式给定<出口>
。此表达式必须包含运行变量#
并计算实际输入的实际值#
或二维向量。在第一种情况下情节
操作符将简单地绘制函数。在后一种情况下,它将绘制函数的参数图。坐标系与几何视图的坐标系相关联。而不是#
此外,还会自动检测其他运行变量。如果只有一个自由变量,则将该变量作为运行变量。如果有几个自由变量绘图(…)
函数按顺序搜索典型名称x个
,年
,t吨
,z(z)
.
示例:最简单的形式是情节
运算符可以直接用于绘制函数。这条线绘图(sin(#))
立即绘制函数sin(x个).
相同的绘图由绘图(sin(x))
.
类似地,可以首先定义一个函数,该函数的图形随后由情节
操作员。以下代码行生成了下图:
f(x):=1/(x^2+1)*sin(4*x);图(f(x));
如果使用表达式调用<出口>
生成二维向量作为输出情节
操作员将自动生成曲线的参数化绘图。此处输入变量的值范围默认为0到100。然而,这些默认值可以通过修改器轻松更改。这条线图([sin(t),cos(t)]*t)
生成以下输出:
修改人:这个情节
运算符支持许多不同的修饰符。其中一些需要详细解释。它们可以用于修改曲线的外观、修改绘图范围、修改屏幕上的位置,甚至显示函数的最大值、最小值、零和拐点。下表概述了可用的修饰符。注意,有些修饰符甚至可以用不同类型的参数调用,从而产生稍微不同的效果。
修饰符 | 参数 | 效果
|
外观 |
颜色 | [<real1>、<real2>、<real3>] | 将颜色设置为特定值 |
大小 | <真实> | 将线条大小设置为特定值 |
阿尔法 | <真实> | 设置不透明度 |
连接 | <真> | 函数中的连接跳转 |
迭代控制 |
开始 | <真实> | 设置函数绘图的起始值 |
停止 | <真实> | 设置函数绘图的结束值 |
步骤 | <真实> | 设定绘图点的数量(仅适用于参数函数) |
像素 | <真实> | 曲线绘制的像素分辨率(仅适用于实际函数) |
重要点 |
极值 | <布尔> | 标记所有极值 |
极值 | [<real1>、<real2>、<real3>] | 用指定的颜色标记所有极值 |
最小值 | <布尔> | 标记所有最小值 |
最小值 | [<real1>、<real2>、<real3>] | 用指定的颜色标记所有最小值 |
最大值 | <布尔> | 标记所有最大值 |
最大值 | [<real1>、<real2>、<real3>] | 用指定的颜色标记所有最大值 |
0 | <布尔> | 标记所有零 |
0 | [<real1>、<real2>、<real3>] | 用指定的颜色标记所有零 |
屈折 | <布尔> | 标记所有拐点 |
屈折 | [<real1>、<real2>、<real3>] | 用指定的颜色标记所有拐点 |
线条样式 |
冲锋陷阵 | <真实> | 虚线图案的宽度(默认为5) |
虚线类型 | <整数> | 特定破折号类型(允许值为0…4) |
虚线图案 | <列表> | 指定单个划线图案 |
示例:以下是几个示例,演示了修饰符的使用:
通过设置开始和停止值,可以轻松改变绘图范围。例如,绘图(f(#),开始->A.x,停止->B.x)
有助于控制x个-两个自由施工点的坐标。
打印外观
绘图的分辨率是自动自适应控制的。这个绘图(…)
函数会自动增加接近奇点的分辨率。下图显示了调用的输出绘图(sin(1/#)*#)
.观察靠近原点的绘图质量。
通常会检测到函数中的跳转,并且默认情况下它们没有连接。可以通过设置连接->真
.
|
|
|
图(x层(x)) | 绘图(x层(x),连接->真)
|
特别注意事项
通过使用曲线有效点的修改器,可以显示零、最小值、最大值和拐点。以下三张图片演示了这些运算符的使用。
华丽的
绘图语句的“虚线”选项与直线和圆的选项相同。它们可以由修改器控制冲锋陷阵
,虚线类型
和虚线图案
.
虚线类型
可以是0到4之间的整数,并选择四个预定义虚线图案之一。值0创建实线。冲锋陷阵
是一个实数,指定虚线的单位大小。只需设置破折号->5
已经创建了标准破折号。虚线图案
可以设置为指定连续虚线和空格长度的列表。
以下图片是用创建的绘图(sin(x),虚线模式->[0,3,7,3],大小->2,虚线->5)
动态颜色和Alpha
这个颜色
和阿尔法
也可以是依赖于运行变量的函数。通过函数图的不透明度和颜色,可以随函数而变化。下面的图是用语句生成的
绘图(sin(x),颜色->色调(x/(2*pi)),大小->3)
这里是色调
使用了循环生成彩虹颜色的函数。
绘制函数:绘图(<expr>,<var>)
描述:与相同绘图(<expr>)
但使用指定的运行变量。
绘制类积分效果:填充图(<expr>)
描述:通常需要突出显示函数图和坐标系x轴之间的区域(例如,如果生成用于解释积分的小程序)。这可以使用函数完成填充图
。类似于情节
,此运算符将函数作为参数(运行变量由与中相同的进程确定绘图(…)
). 在最简单的形式中,该操作符只突出显示函数所遍历的区域。函数本身未绘制。这可以通过显式调用绘图(…)
操作员。以下代码
f(x):=1/(x^2+1)*sin(4*x);填充图(f(x));图(f(x));
生成以下图片:
警告:奇异性处理填充图(…)
声明远不如绘图(…)
声明。因此,尽管修饰符允许绘制函数填充图
应该使用情节
用于功能绘图。
修改人:
修饰符 | 参数 | 效果
|
外观 |
颜色 | [<real1>、<real2>、<real3>] | 将颜色设置为特定值 |
Plus颜色 | [<real1>、<real2>、<real3>] | 设置正函数值的颜色 |
微彩色 | [<real1>、<real2>、<real3>] | 设置负函数值的颜色 |
阿尔法 | <真实> | 设置不透明度 |
迭代控制 |
开始 | <真实> | 设置函数绘图的起始值 |
停止 | <真实> | 设置函数绘图的结束值 |
功能图 |
图表 | <布尔> | 还绘制功能图 |
图表 | [<real1>、<real2>、<real3>] | 用指定的颜色绘制函数图 |
大小 | <真实> | 设置函数图的行大小 |
这个颜色
和阿尔法
修改器再次支持使用控制颜色和不透明度的函数(类似于情节
). 以下取样器说明了填充图
声明:
|
填充图(sin(x)) |
|
fillplot(sin(x),graph->true) |
|
填充图(sin(x),图->真,加号->(.5,1,.5),减号->(1,.5,.5)) |
|
fillplot(sin(x),graph->true,color->(sin |
绘制类似积分的效果:填充图(<expr1>、<expr2>)
描述:此函数与填充图(…)
声明。然而,它不是突出显示函数和x轴之间的are,而是突出显示两个函数之间的区域。下图
是使用语句创建的
fillplot(sin(x)、cos(x),graph->true,pluscolor->(.5,1,.5),minuscolor->(1,.5,.5))
修改人:此语句支持与完全相同的修饰符填充图(…)
.
彩色图
颜色图用于创建有关在整个平面中定义的函数的视觉信息。它们可以将颜色值与矩形中的每个点相关联。
创建颜色图:彩色图(<expr>、<vec>、<vec>)
描述:这个彩色图
该算子使平面函数的可视化成为可能。一个函数可以为矩形的每个点指定一个颜色值。在函数中<出口>
运行变量可以选择为#
(有关运行变量的更多信息,请参阅下文)。然而,值得注意的是,这个变量现在描述了平面上的一个点(这是一个变量二维坐标)。的返回值<出口>
应该是实数(在这种情况下,指定一个灰度值)或三个实数的向量(在这种情形下,指定RGB颜色值)。在任何情况下,实数的值都应该介于0和1之间。第二个和第三个参数确定绘图区域的左下角和右上角。
例子:下面的代码和两个点A和B生成了下面的图片。在第一行中,定义了一个实值函数,该函数将两点之间距离的正弦赋值给两点(移位和缩放以适应区间[0,1])。的第一个参数彩色图
操作符现在是一个由三个数字组成的向量,具体取决于run变量#
(红色部分是围绕a的环形波,绿色部分是零,蓝色部分是围绕B的环形波)。最后,C和D标记矩形的角。
f(A,B):=((1+sin(2*dist(A,B)))/2);彩色图((f(A,#),0,f(B,#)),C、 D类)
运行变量:通常情况下#
是中运行变量的最佳选择彩色图
功能。然而,也可能有其他选择。按以下顺序检查运行变量的可能性:
- 如果中只有一个自由变量
<出口>
然后将此变量作为运行变量并解释为二维向量。 - 如果
<出口>
包含#
这个#
作为运行变量(再次作为二维向量) - 如果
<出口>
包含两者x个
和年
作为自由变量,这两个变量可以用作运行变量,一起表示向量(x,y)
. - 如果恰好有一个自由变量尚未赋值,则取该变量(作为向量)
- 如果上述情况都没有发生
第页
(代表点)和z(z)
(对于复数)被检查为运行变量。
例如,下面一行
色度图((sin(2*x),sin(2*y),0),A,B)
生成以下图片:
修改人:这个彩色图
运算符支持三个修饰符。修饰符像素
可以设置为一个整数,以确定彩色图的基本四边形的像素大小。上面的照片是用像素->2
这是默认值。设置像素
修改为1或2会产生令人惊叹的图片。然而,应该注意的是,对于彩色图
必须对函数求值一次。计算工作量呈二次方增长像素
线性减少。因此,有时减少pxlres修饰符也是一种很好的做法,以获得更多的预设。下面的图片已通过设置渲染像素->8
.
还可以动态更改分辨率。对于此,还有另一个修改器启动
这可以用来逐步改进情节,从而将两个世界中最好的结合起来。例如,使用两者启动次数->16
和像素->1
在交互移动过程中,你会得到一个粗略的绘图,只要有足够的时间,就会自动以更精细的分辨率重新计算。
此外彩色图
运算符支持修饰符阿尔法
用于控制不透明度的。此修饰符甚至可以设置为参数化依赖于运行变量的值。
下面的图片是由以下代码生成的,这只是对前面一个示例的代码的轻微修改:
f(A,B):=((1+sin(2*dist(A,B)))/2);彩色图((f(A,#),0,f(B,#)),C、 D、,pxlres->2,α->-abs(#)+5)
矢量字段
向量场可用于可视化流和力。它们在微分方程组可视化中有许多应用。
绘制向量场:绘图区(<expr>)
描述:这个牵引场
运算符可用于绘制向量场。函数必须作为表达式给定<出口>
。此表达式必须包含运行变量(通常#
),这一次应该表示二维向量(如彩色图中所示)。结果也应该是二维向量。应用运算符牵引场
到这个表达式将导致绘制相应的向量场。该字段将设置动画。这意味着它将随每张图片而略有变化。因此,将牵引场
操作员进入“计时器刻度”评估槽。这将在几何视图中创建动画控件。运行动画将自动为向量场设置动画。正在运行的变量策略与彩色图(…)
声明。特别是可以使用自由变量x个
和年
表示二维位置(x,y)
示例:我们考虑由函数定义的向量场f(x,y)=(y,sin(x))
。与函数定义和牵引场
操作员如下:
f(v):=[v.y,sin(v.x)];牵引场(f(#));
或者,可以通过以下方式生成相同的图片
为了生成图片,将一组针状对象扔到绘图表面上。这些针将根据矢量场定向。在动画期间,针会根据矢量场移动。也可以用小的蛇形物体代替针,这样可以更准确地显示矢量场,但计算时间更长。这可以使用合适的修改器来完成。
f(v):=[v.y,sin(v.x)];绘图字段(f(#),流->真,颜色->(0,0,0));
修改人:这个牵引场
操作符支持许多控制向量场生成过程的修饰符。为了帮助理解它们,我们首先更详细地描述了图片是如何生成的。
这些图片是通过显示一些测试对象在磁场影响下的运动而生成的。默认情况下,测试对象是针状的。它们最初被放置在一个规则的网格上。由于这通常会产生许多视觉伪影,因此它们在网格点周围的特定半径内随机扭曲。在动画中,针沿力场方向移动。针的长度代表着田地的强度。
修饰符 | 参数 | 效果
|
测试对象 |
分辨率 | 整数 | 原始网格单元大小(像素) |
抖动 | 整数 | 试件变形 |
针线尺寸 | <真实> | 针头的最大尺寸 |
因素 | <真实> | 场强比例因子 |
流动 | <布尔> | 使用针头或小溪 |
移动 | <真实> | 移动物体的速度 |
外观 |
颜色 | [<real1>、<real2>、<real3>] | 设置流线颜色或第一针颜色 |
颜色2 | [<real1>、<real2>、<real3>] | 设置第二针颜色 |
下图演示了原始网格移动->0
和抖动->0
。它显示了水平或垂直方向非自然对齐导致的明显伪影。
以下图片已使用渲染分辨率->5
和流->真
.
绘制复杂向量场:drawfield复合体(<expr>)
描述:此运算符与牵引场
操作员。然而,它需要一个一维复杂函数作为输入。实部和虚部被视为x个和年向量场的组件。否则,该操作符与前一个操作符完全类似。
例子:以下示例演示了运算符与复多项式的使用,复多项式的零点由图形中的四个点确定:
f(x):=(x络合物(A))*(x络合物(B))*;drawfieldcomplex(f(#),流->真,分辨率->5,颜色->(0,0,0))
修改器类似于牵引场
操作员。
绘制力场:牵引力()
描述:此运算符与牵引场
操作员。然而,这一次它与中的物理模拟有关辛迪实验室。无需参数,它显示了放置在屏幕上不同位置的潜在测试电荷上的作用力。试验装药的质量=1,装药=1,半径=1。然而,没有其他粒子会与它相互作用。有时需要使用因素
用于放大力场的修改器。以下示例显示了四个带电粒子之间的相互作用。
绘制点的力场:牵引力(<质量>)
描述:还有另一个操作符可以绘制关于固定质量粒子的力场。粒子本身不参与力的计算。通过这种方式,人们可以直观地看到作用在某个粒子上的力。
网格
栅格可用于可视化将平面映射到其自身的变换。通过栅格,可以可视化由这种贴图引起的变形。
映射矩形网格:地图网格(<expr>)
描述:此操作符采用矩形网格,并通过中给定的函数使其变形<出口>
。默认情况下,原始网格的范围被视为平面中的单位矩形。可以使用修饰符更改此矩形的边界。也可以使用复杂->真
修改器。
修改人:有几个修改器控制此函数的行为。
修饰符 | 参数 | 效果
|
外观 |
颜色 | [<real1>、<real2>、<real3>] | 将颜色设置为特定值 |
阿尔法 | <真实> | 设置不透明度 |
大小 | <真实> | 设置网格线的大小 |
迭代控制 |
润智 | [<真实>,<真实>] | x个-源矩形的范围 |
yrange公司 | [<真实>,<真实>] | 年-源矩形的范围 |
分辨率 | <整数> | 两个方向上的网格线数 |
分辨率x | <整数> | 中的网格线数x个-方向 |
分辨率 | <整数> | 中的网格线数年-方向 |
步 | <整数> | 双向细化 |
阶梯(stepx) | <整数> | 中的细化x个-方向 |
stepy公司 | <整数> | 中的细化年-方向 |
类型 |
复杂的 | <布尔值> | 使用复杂函数 |
示例:下面的代码举例说明了地图网格
操作员。还说明了润智
和yrange公司
修改器。它显示了二维函数的效果,该函数使x个和年单独协调。
f(v):=(v_1^2,v_2^2);线宽(1.5);地图网格(f(v),颜色->(0,0,0));地图网格(f(v),x范围->[1,2],颜色->(.6,0,0));地图网格(f(v),yrange->[1,2],color->(.6,0,0));地图网格(f(v),x范围->[1,2],y范围->[12,2],颜色->(0,.6,0));
在下面的示例中,我们看到网格线通常不必保持笔直或平行。
f(v):=(v1*sin(v2),v2*sin)(v1);线宽(1.5);地图网格(f(v),x范围->[1,2],y范围->[1,1,2]);
下面的简单示例说明了地图网格
用于复杂功能。
使用分辨率
修改器,可以指定生成的网格线数。
mapgrid(z^2,复杂->真,分辨率->4);
默认情况下地图网格
命令直接连接网格点。这可能会导致图片无法真正映射数学真理。使用步
修改器,可以在网格点之间引入其他步骤。
地图网格(z^2,复杂度->true,分辨率->4,步长->5);
最后三段代码的结果如下所示。
网格包含关于复杂函数的非常特征性的信息。以下三张图片显示了函数的网格z*z
,正弦(z)
,1/z(1/z)
和棕褐色(z)
分别是。
示波器
示波器允许可视化物理模拟和动画中数值的动态变化。
物理量值曲线图:绘制曲线(<vec>,<list>)
描述:在真实和模拟的物理环境中,人们通常对绘制曲线感兴趣,这些曲线显示了震级如何随时间演变。为此绘制曲线
已创建运算符。在这里<vec>
是指绘图区域左下角的二维矢量,以及<列表>
是要观察的值的列表。当动画运行时,将更新值并绘制相应的曲线。
例子:下一张图片显示了绘制曲线
操作员。在辛迪实验室,构造了一个物理摆。以下代码生成x个移动点及其坐标x个速度:
修改人:这个绘制曲线
运算符支持许多修饰符。Than可用于更改曲线的外观并显示其他信息。
修改器 | 参数 | 效果
|
尺寸 |
宽度 | <真实> | 绘图范围的像素宽度 |
高度 | <真实> | 每条曲线的像素高度 |
外观 |
边境 | <布尔> | 显示表格的边框 |
后面 | <布尔> | 显示背景 |
后面 | [<real1>、<real2>、<real3>] | 以指定颜色显示背景 |
背面α | <真实> | 背景不透明度 |
颜色 | [<col1>、<col2>、<col3>…] | 为每条曲线提供颜色 |
问询处 |
文本 | [<text1>,<text2>,…] | 为每条曲线提供标题 |
展厅 | <布尔> | 显示每条曲线的最大值和最小值 |
致使 |
范围 | <字符串> | “预览”缩放到绝对测量的最大值,“自动”缩放到当前显示的曲线部分 |
范围 | [<string1>,<string2>,…] | 每条曲线的单个“peek”/“auto” |
下面的代码演示了修饰符的用法。它显示了弱耦合摆及其能量行为。
线颜色((1,1,1));文本颜色((0,0.8,0));绘制曲线((-7,-3),[A.x,B.x,A.ke,B.ke,A.pe+B.pe+c.pe],高度->50,颜色->(1,1,1),返回->(0,0,0),backalpha->1,范围->“查看”,宽度->400,颜色->[[1,0.5,0.5],[0.5,1,0.5], [1,0.5,0.5], [0.5,1,0.5],[0.5,0.5,1]],文本->[“PosA=”+A.x,“PosB=”+B.x,“能量A=”+A.ke,“能量B=”+B.ke,“势能=”+(a.pe+b.pe+c.pe)]);
相应的图纸如下所示: