我在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
);
在x
和y
两个函数中,从0.1更改为500000。
我需要以下几点的3D图(图表):
(x, y, z), where f1(x, y) == f2(z, x)
请注意,由于z
和f3(x, y)
过于复杂,因此无法从上面的等式中提取f1
(并获得新的闪亮函数f2
)。 / p>
这是否可以使用任何计算软件实现?
提前致谢!
编辑: 我需要的是
的情节F(x, y, z) = 0
,其中
F(x, y, z) = f1(x, y) - f2(z, x)
答案 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*)]