Maple:如何为绘图假设赋予价值?

时间:2011-09-11 17:14:14

标签: plot maple

所以我有一个简单的例子说明我想做什么:

restart;
assume(can, real);
f := {g = x+can*x*y, t = x+x*y};
assign(f[1]); g;
can := 2;
plot3d(g, x = 0 .. 100, y = 0 .. 100);

enter image description here

虽然这有效:

restart;
f := {g = x+can*x*y, t = x+x*y};
assign(f[1]);
can := 2;
plot3d(g, x = 0 .. 100, y = 0 .. 100);

enter image description here

但是这些假设对于我的真实生活情况非常重要(对于复杂数字的一些优化),所以我不能只是leve不能预先设定。

为什么它对我来说不是很好,如何制作它?

1 个答案:

答案 0 :(得分:1)

要绘制的表达式(或过程)必须求值为数字浮点数量。因此,对于您的表达式g,名称can必须在生成g的任何图表时具有特定的数值。

但是您可以为can的各种值生成一系列3D绘图,并显示它们。您可以一次显示所有内容,覆盖。或者您可以以动画序列显示它们。你可以用不同的方式对它们进行着色或着色,以提供can正在变化的视觉提示,并为每个提示不同。

restart;

f := {g = x+can*x*y, t = x+x*y};

eval(g,f);

N:=50:
Pseq := seq(
  plot3d(eval(g,f),
         x=0..10,y=0..10,
         color=RGB(0.5,0.5,can/(2*N)),
         transparency=0.5*(can/(N+1))),
            can=1 .. N):

plots:-display(Pseq, axes=box);

plots:-display([Pseq],insequence=true,axes=box);

顺便说一句,您不必仅为了使用g内显示的g等式来分配f。执行该任务(使用assign,比如说,就像你所做的那样)使得随后根据纯名g创建其他方程式更加尴尬,除非您首先unassign名称{ {1}}。有些人发现更容易根据g完成此类任务的分配,并简单地使用g,就像我上面所做的那样。

现在谈谈你更深层次的问题。您创建一个包含本地假名的表达式。然后你想要使用相同的表达式,但使用该名称的全局,未采用的版本。您可以创建表达式,其中包含全局的,未使用的名称,而不是本地的假名,buy执行替换。

eval