功率:遇到无限表达式 1/0

Power: Infinte expression 1/0 encountered

提问人:underloaded_operator 提问时间:4/7/2023 最后编辑:underloaded_operator 更新时间:4/9/2023 访问量:92

问:

我正在研究一个涉及笛卡尔 Folium 的 Mathematica 实验室。我正在尝试找到垂直和水平切线,然后将它们与同一图形中的对开页绘制。我不断收到错误 [Power: Infinite expression 1/0 encountered]。我一直在谷歌上搜索解决方案或解决问题的方法,但空手而归。如果有人能看一看并帮助我弄清楚发生了什么,我将不胜感激。

p.s 如何在 Mathematica 中调试?

功能

x[t_] := (12 t)/(1 + t^3)
y[t_] := (12 t^2)/(1 + t^3)

第一个情节

Manipulate[
 ParametricPlot[{x[t], y[t]}, {t, -100, 100}, 
  PlotRange -> {{-10, 10}, {-10, 10}}, PerformanceGoal -> "Quality", 
  AxesLabel -> {x, y}, 
  Epilog -> {Red, PointSize -> .05, Point[{x[t1], y[t1]}]}], {t1, -5, 
  5}]

部分错误/和我的问题

(*Find values of t for vertical tangent lines*)
Solve[D[y[t], t]/D[x[t], t] == Infinity, t, Reals]

(*Find values of t for horizontal tangent lines*)
Solve[D[y[t], t]/D[x[t], t] == 0, t, Reals]

(*Find values of t for horizontal tangent lines*)
ht = Solve[{D[y[t], t] == 0, t != -1, t != 1}, t, Reals, 
  MaxExtraConditions -> 
   All] (*Exclude -1 and 1 because we get a floaitng point exception*)

(*Plot the folium and the tangent lines*)
Show[ParametricPlot[{x[t], y[t]}, {t, -100, 100}, 
  PlotRange -> {{-10, 10}, {-10, 10}}, AxesLabel -> {x, y}], 
 Epilog -> {Thick, Red, Point[{x[#], y[#]} & /@ {-1, 0, 1}], 
   Table[Line[{{-10, y[t]}, {10, y[t]}}], {t, t /. ht}]}]

先谢谢你

编辑:

嗨,在“调试”该错误后,我发现我错误地将其更改为

Point[({x[#], y[#]} & /@ {-1, 0, 1}) /. t -> #] &

因此,这些点可以通过 T 进行参数化。但不幸的是,我的工作没有在那里完成,我收到一个新错误说:函数不是图形原语或指令。在网上阅读后,我了解到这意味着我可能正在尝试使用函数作为图形命令的参数?我正在使用 ParametricPlot,我不明白这如何引发这样的错误。我该如何解决这个问题?

Math Wolfram-Mathematica Wolfram-语言

评论


答:

2赞 Chris Degnen 4/7/2023 #1

从 Point 参数中排除 -1。 & 导致错误。x[-1]y[-1]

(*Plot the folium and the tangent lines*)Show[
 ParametricPlot[{x[t], y[t]}, {t, -100, 100},
  PlotRange -> {{-10, 10}, {-10, 10}},
  AxesLabel -> {x, y}], Epilog -> {Thick, Red,
   Table[Line[{{-10, y[t]}, {10, y[t]}}], {t, t /. ht}],
   PointSize[Large], Orange,
   Point[{x[#], y[#]} & /@ {(*-1,*)0, 1}]}]

若要调试,请拆开表达式。例如,这很好

ParametricPlot[{x[t], y[t]}, {t, -100, 100},
 PlotRange -> {{-10, 10}, {-10, 10}},
 AxesLabel -> {x, y}]

这也很好

Table[Line[{{-10, y[t]}, {10, y[t]}}], {t, t /. ht}]

但错误立即暴露在

Point[{x[#], y[#]} & /@ {-1, 0, 1}]