mathematica作图问题

问题描述:

mathematica作图问题
需要绘制一系列点(x^2+y,y^2+x+1),其中x与y满足关系式sin(xy)+e^x=x+1; 显然X与Y是一个隐函数,没办法求出表达式,那请问这种图应该怎么画呢,
1个回答 分类:综合 2014-10-07

问题解答:

我来补答
自己写一个函数,调用隐式函数画图过程中产生的数据点,然后转换成你要画的函数的数据点,隐式函数绘制的图像如下:

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} &]
 
 
展开全文阅读
剩余:2000
上一页:例2的第一问