1

我在 wxmaxima:f1(x, y)f2(x, y). 两者都包含 if-then-else 语句和基本算术运算:加法、减法、乘法和除法。例如(只是一个例子,实际函数看起来要复杂得多):

f1(x, y) := block([],
    if x * y < 123 then x + y
    else if x / y > 7 then x - y
);

在这两个函数中xy从 0.1 变为 500000。我需要以下几点的 3D 图(图表):

(x, y, z), where f1(x, y) == f2(z, x)

请注意,不可能z从上面的等式中提取出来(并获得一个新的闪亮函数f3(x, y)),因为f1f2太复杂了。

这是否可以使用任何计算软件来实现?

提前致谢!

编辑:我需要的是情节

F(x, y, z) = 0

在哪里

F(x, y, z) = f1(x, y) - f2(z, x)
4

2 回答 2

1

对于千里马,尝试一些浮点数implicit_plot(f1(x, y) = f2(x, y), [x, <x0>, <x1>], [y, <y0>, <y1>])在哪里,它们是绘图的范围。<x0>, <x1>, <y0>, <y1>请注意,这load(implicit_plot)是必需的,因为implicit_plot默认情况下不加载。

顺便说一句,我看到您的函数f1具有形式if <condition1> then ... else if <condition2> then ...,仅此而已。这意味着如果两者<condition1><condition2>为假,则该函数将返回假,而不是数字。您必须确保条件是详尽的,或者放在else ...末尾,if以便无论输入什么它都会返回一个数字。

于 2014-12-18T17:26:33.957 回答
0
 set = Table[{i,j,0},{i,1,10},{j,0,10}];

给出所需 x 和 y 值的列表,并使用全部替换/.

 set =  set /.{a_ ,b_ ,c_} -> {a,b, f1[a,b] - f2[a,b]} (*Simplified of course*)

Set 是列表的二维列表,因此需要将其展平一维。

 set = Flatten[set,1];

 ListPlot3D[set (*add plot options*)]
于 2014-12-18T17:14:57.597 回答