TSC999 发表于 2021-10-14 20:22:09

表示圆的一个函数,用参数方程画的曲线为什么与直角坐标方程画的不一样?

有一个圆用参数方程表示如下:

$ x=(2 u^2 + 2 u + 6)/(u^2 + 1),   y=(3 u^2 + 4 u + 1)/(u^2 + 1) $,用指令Eliminate[ ]消去参数 $ u $ 后可将其转换为直角坐标方程为:$ -y^2+4 y-15=x^2-8 x $。
但是用参数方程指令画出的圆,却与用隐函数指令画出的圆不一样。哪里出问题了? 是转换成的直角坐标方程不对呢,还是画图指令不对?

参数方程转换成直角坐标方程的程序代码如下:
Clear["Global`*"];
Eliminate[{x == (2 u^2 + 2 u + 6)/(u^2 + 1),
y == (3 u^2 + 4 u + 1)/(
   u^2 + 1)}, {u}] (*已知 x、y 的参数方程,消去参数 u 求 x、y 间的关系*)


用参数方程指令画圆与用隐函数指令画圆,结果不一样:
Clear["Global`*"];
ParametricPlot[{(2 u^2 + 2 u + 6)/(u^2 + 1), (3 u^2 + 4 u + 1)/(
u^2 + 1)}, {u, -8, 8}]
ContourPlot[{ -y^2 + 4 y - 15 == x^2 - 8 x}, {x, 0,
   8}, {y, -2, 6}, Axes -> True, Frame -> False]

上面两条指令运行结果如下 (用图片表示):

gxqcn 发表于 2021-10-15 07:38:58

是不是两个图的坐标原点不同,导致了你的误判?

TSC999 发表于 2021-10-15 09:22:02

用 mathematica 的参数方程画图指令ParametricPlot []画出的圆,乍看好像是与用隐函数作图指令 ContourPlot []画出的圆不一样,其实是一样的。

参数方程画的坐标系是把纵轴画在x=2 处了,而隐函数作图画的坐标系是把纵轴画在 x=0的。

wayne 发表于 2021-10-15 12:07:16

因为u的定义域是开区间, 少了一个无穷远点. u在无穷远的地方的时候,对应的是点 $(2,3)$ 的邻域 ,消元后是 又把无穷远点给补上去了.所以ContourPlot没问题.
ParametricPlot 的区间越大,要画的点越多,为了兼顾计算性能,软件会有省略算法, 所以看上去 ParametricPlot 函数也有问题, 不过我们可以通过加选项绕过去.

m = 1000; ParametricPlot[{(2 u^2 + 2 u + 6)/(u^2 + 1), (3 u^2 + 4 u +1)/(u^2 + 1)}, {u, -m, m}, PlotRange -> All, PlotPoints -> 500]
页: [1]
查看完整版本: 表示圆的一个函数,用参数方程画的曲线为什么与直角坐标方程画的不一样?