Skip to main content
 首页 » 编程设计

Python:从函数中减去一个 float (为了调用 scipy.newton())

2025年05月04日13grandyang

我想调用 scipy.newton(f, x0, df)。

我将 f 定义为

def f(x): 
    resf = x**2 
    return resf 

和df作为

def df(x): 
    df = 2*x 
    return df 

我这样调用 newton

x0 = 1.0     
y0 = 6.0 
root = newton(f-y0, x0, df) 

当然我遇到了一个错误,因为我试图从一个函数中减去一个float。

我如何定义函数 f 并调用 newton 来找到 f-y0 的根。

语法是什么,输入参数是什么?

以下不起作用:

 def f(x, y0): 
    resf = x**2-y0 
    return resf 

因为那时我不知道如何调用 newton。

请您参考如下方法:

你可以像这样传递一个匿名函数:

root = newton(lambda x: f(x)-y0, x0, df) 

也可以使用嵌套函数:

def difference(x): 
    return f(x) - y0 
 
root = newton(difference, x0, df)