Python 计算从f(x)到原点的最短距离的程序

Python 计算从f(x)到原点的最短距离的程序,python,minimize,Python,Minimize,在Python(3.8)中,我尝试制作一个脚本,将函数f(x)作为输入,例如 f(x) = 1/x 如果我们将定义y=f(x)定义为欧几里德空间上的一条直线,我们可以计算直线上每个点(x,f(x))距离原点(0,0) d(x,y) = sqrt(x^2+(f(x))^2) 我的目标是找到x,从而使上述距离最小化。这可以通过解决 2x+2f(x)*f'(x) = 0 我将非常感谢你的帮助。谢谢。示例在symphy(不擅长symphy) 这将返回[-1,1,-I,I]因此-1和1应该是真正的答

在Python(3.8)中,我尝试制作一个脚本,将函数
f(x)
作为输入,例如

f(x) = 1/x
如果我们将定义y=f(x)定义为欧几里德空间上的一条直线,我们可以计算直线上每个点
(x,f(x))
距离原点
(0,0)

d(x,y) = sqrt(x^2+(f(x))^2)
我的目标是找到
x
,从而使上述距离最小化。这可以通过解决

2x+2f(x)*f'(x) = 0

我将非常感谢你的帮助。谢谢。

示例在
symphy
(不擅长
symphy

这将返回
[-1,1,-I,I]
因此
-1
1
应该是真正的答案

distance = x**2 + g**2

distance.subs(x,1)
distance.subs(x,-1)

我在远处没有看到
sqrt()
,但我希望您知道如何在
sympy
中解决这个问题。这是单向的,有一个程序包来近似导数,并找到根,这也应该有效。

我不确定y是什么。你有d(x,y),但在距离表达式中看不到y。。y=f(x)吗?两者都可以给出导数并求解为0,你认为这是一种选择吗?让我知道如果你需要一个例子,我是一个非常新的初学者,如果你能给出例子来阅读一个函数,推导和解决方案,是完美的。或者你可以使用f(x)=1/x,看看这个例子是如何工作的。谢谢你的帮助。
distance = x**2 + g**2

distance.subs(x,1)
distance.subs(x,-1)