功能图来自其他功能组合的点结果

时间:2014-12-18 15:40:23

标签: matlab math wolfram-mathematica maxima wxmathplot

我在wxmaxima中声明了2个函数: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)

请注意,由于zf3(x, y)过于复杂,因此无法从上面的等式中提取f1(并获得新的闪亮函数f2)。 / p>

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

提前致谢!

编辑: 我需要的是

的情节
F(x, y, z) = 0

,其中

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

2 个答案:

答案 0 :(得分:1)

对于Maxima,请尝试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 ...都为false,则函数将返回false,而不是数字。您必须确保条件是详尽无遗的,或者将if放在{{1}}的末尾,这样无论输入什么,它都会返回一个数字。

答案 1 :(得分: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是列表的第2列,因此需要将其展平为1维。

 set = Flatten[set,1];

 ListPlot3D[set (*add plot options*)]