作业帮 > 综合 > 作业

mathematica作图问题

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/04/30 06:51:39
mathematica作图问题
需要绘制一系列点(x^2+y,y^2+x+1),其中x与y满足关系式sin(xy)+e^x=x+1; 显然X与Y是一个隐函数,没办法求出表达式,那请问这种图应该怎么画呢,
mathematica作图问题
自己写一个函数,调用隐式函数画图过程中产生的数据点,然后转换成你要画的函数的数据点,隐式函数绘制的图像如下:

ContourPlot[Sin[x*y] + Exp[x] == x + 1, {x, -3, 3}, {y, -10, 10}, 
 ContourStyle -> Red]

下面就是自己写的一个简单的函数来将上图中的数据点,转换成 {x^2+y,y^2+x+1},
constraintPlot[f_] := 
  ReplaceAll[#, 
    GraphicsComplex[x_List, y_List, z : OptionsPattern[__]] :> 
     GraphicsComplex[f @@@ x, y, z]] &;
其中参数 f 就是你要的数据点满足的函数关系式,所以这里就应该是下面这两种可选形式
{#1^2 + #2, #2^2 + #1 + 1} &
或者,
Function[{x, y}, {x^2 + y, y^2 + x + 1}]
你要是不明白的话就看看 Mathematica 中关于纯函数的介绍和用法,在此不细说了,所以最终的函数图象就是下面的这个样子,
ContourPlot[Sin[x*y] + Exp[x] == x + 1, {x, -3, 3}, {y, -10, 10}, 
  ContourStyle -> Red] // constraintPlot[{#1^2 + #2, #2^2 + #1 + 1} &]