Python fsolve:如何获取不同函数的根数组?

时间:2019-11-06 15:13:12

标签: python scipy-optimize

我正在用Python编写一些代码来说明隐函数定理。我有一个方程式(请参见代码),我想将z编写为x和y的隐式函数。

因此,我的代码首先定义了一个具有三个输入变量的函数。然后,我只想使用“隐式”对x和y处的函数进行评估。随后,我想求解z并返回根。

我遇到以下错误:TypeError:function()缺少1个必需的位置参数:'z'

我看不到我在做什么错。请帮忙!

import scipy
import numpy as np
from scipy import optimize
from scipy.optimize import fsolve

# Equation is x + 2y + z + e^{2z} = 1
# To find roots, we set F(x,y,z) = x + 2y + z + e^{2z} - 1 = 0

def function(x,y,z): #this is my function
    f = x + 2*y + z + np.exp(2*z) - 1
    return f

# with this step, I want to evaluate 'function' at the given x and y of 'implicit'
# then I wish to use fsolve to find the roots of z
# I want the roots of z (zz) returned.

def implicit(x,y): 

    x0 = np.array([0,0,0]) #initial guess
    zz = fsolve(function, x0, x,y,z)
    return zz

0 个答案:

没有答案