【问题标题】:Function plot from points result of other function combinations其他函数组合的点结果的函数图
【发布时间】:2014-12-18 15:40:22
【问题描述】:

我在 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)

请注意,由于f1f2 过于复杂,因此无法从上面的等式中提取z(并获得一个新的闪亮函数f3(x, y))。

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

提前致谢!

编辑: 我需要的是

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

在哪里

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

【问题讨论】:

  • 您是否尝试过仅生成值并将它们放入列表{{x1,y1,z1},...,{xn,yn,zn}},然后使用函数ListPlot3D[]
  • 不幸的是,我无法生成值。我唯一知道的是xy从0.1变为500000。我对z一无所知。
  • 那么 f1(x,y) 是否给出 z 的值?此外,f2(z,x) 是否给出了 y 的值?如果是这种情况,在 z = y 线上延伸 -inf 是否会有 0 个或多个交叉点
  • 假设您可以评估函数f2(f1(x,y),x) == f1(x,y) 是否公平?所以本质上是z = f1(x,y); return f2(z,x) == z。我认为您确实需要发布方程式。

标签: matlab math wolfram-mathematica maxima wxmathplot


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:
     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 是一个 2d 列表列表,所以它需要被 1 维展平。

     set = Flatten[set,1];
    
     ListPlot3D[set (*add plot options*)]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-01
      相关资源
      最近更新 更多