我昨天问了这个问题,但不确定我是否清楚我在寻找什么。假设我有两条定义为f[x_]:=...和g[x_]:=...的曲线,如下所示。我想使用Mathematica来确定两条曲线的切线的横坐标交点,并分别存储每条曲线的值。也许这真的是一项微不足道的任务,但我真的很感谢你的帮助。我是Mathematica的中级人员,但这是我在其他地方找不到的解决方案。

发布于 2011-12-21 23:45:38
f[x_] := x^2
g[x_] := (x - 2)^2 + 3
sol = Solve[(f[x1] - g[x2])/(x1 - x2) == f'[x1] == g'[x2], {x1, x2}, Reals]
(* ==> {{x1 -> 3/4, x2 -> 11/4}} *)
eqns = FlattenAt[{f[x], g[x], f'[x1] x + g[x2] - f'[x1] x2 /. sol}, 3]; 
Plot[eqns, {x, -2, 4}, Frame -> True, Axes -> None]

请注意,将有许多函数f和g无法通过这种方式找到解决方案。在这种情况下,你将不得不求助于数值问题的解决方法。
发布于 2011-12-21 23:30:33
你只需要解一个联立方程组:
公共切线是y = a x + b。
常用的斜率为a = f'(x1) = g'(x2)
它们的共同点是a x0 + b = f(x0)和a x1 + b = g(x1)。
根据函数f和g的性质,这可能没有、只有一个或许多个解决方案。
https://stackoverflow.com/questions/8592200
复制相似问题