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

2024-04-26 13:42:08 发布

您现在位置:Python中文网/ 问答频道 /正文

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

f(x) = 1/x

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

d(x,y) = sqrt(x^2+(f(x))^2)

我的目标是找到x,这样上面的距离就最小化了。这可以通过解决

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

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


Tags: 函数脚本距离目标定义空间sqrt原点
1条回答
网友
1楼 · 发布于 2024-04-26 13:42:08

例如{}(不是{}方面的专家)

from sympy import *
from sympy.solvers import solve

x, y, z = symbols('x y z')

g = 1/x

h = 2*x + (2*g) * (diff(g,x))

solve(h,x)

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

distance = x**2 + g**2

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

我在远处没有看到sqrt(),但我希望你知道如何在sympy中解决这个问题。这是一种方法,有包来近似导数,并求根,这应该也行

相关问题 更多 >