我试图在x = 1处用这个隐式微分问题求解斜率,但是NSolve无法解决它。我怎样才能解决这个问题?
eqn[x_, y_] := x*Sin[y] - y*Sin[x] == 2 (*note: bound is -5<=x<=5,-5<=y<=5*)
yPrime = Solve[D[eqn[x, y[x]], x], y'[x]] /. {y[x] -> y,
y'[x] -> y'} // Simplify
{{Derivative[1][y] -> (y Cos[x] - Sin[y])/(x Cos[y] - Sin[x])}}
NSolve[eqn[x, y] /. x -> 1, y] (*this doesn't work*)
答案 0 :(得分:0)
NSolve
并非真正适合这项工作的工具。
如果你的方程只涉及线性函数或多项式,那么 您可以使用
NSolve
来获取所有数字的近似值 解决方案。但是,当你的方程涉及更复杂时 功能,一般没有找到所有的系统程序 解决方案,甚至数字化。在这种情况下,您可以使用FindRoot
寻找解决方案。你必须给FindRoot
一个地方开始它 搜索范围。
由于您的函数不是真正的多项式,因此以下工作:
FindRoot[eqn/.x->1,{y,-2}]
{y -> -2.7881400978783035` }
您可以插入yprime
。
选择起点并不明显,但快速ContourPlot
始终有效:
ContourPlot[x*Sin[y] - y*Sin[x], {x, -5, 5}, {y, -5, 5}, Contours -> {2}]
它表明您的等式不是唯一的x
。