2024-04-26 13:42:08 发布
网友
在Python(3.8)中,我尝试制作一个以函数f(x)作为输入的脚本,例如
f(x)
f(x) = 1/x
如果我们将y = f(x)定义为欧几里德空间上的一条线,我们可以计算线上每个点(x,f(x))距离原点(0,0)的距离d()
y = f(x)
(x,f(x))
(0,0)
d()
d(x,y) = sqrt(x^2+(f(x))^2)
我的目标是找到x,这样上面的距离就最小化了。这可以通过解决
x
2x+2f(x)*f'(x) = 0
我将非常感谢你的帮助。谢谢
例如{}(不是{}方面的专家)
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],因此-1和1应该是真正的答案
[-1, 1, -I, I]
-1
1
distance = x**2 + g**2 distance.subs(x,1) distance.subs(x,-1)
我在远处没有看到sqrt(),但我希望你知道如何在sympy中解决这个问题。这是一种方法,有包来近似导数,并求根,这应该也行
sqrt()
sympy
例如{}(不是{}方面的专家)
这将返回
[-1, 1, -I, I]
,因此-1
和1
应该是真正的答案我在远处没有看到
sqrt()
,但我希望你知道如何在sympy
中解决这个问题。这是一种方法,有包来近似导数,并求根,这应该也行相关问题 更多 >
编程相关推荐