Python fsolve: Как я могу получить массив корней для различных функций? - PullRequest
0 голосов
/ 06 ноября 2019

Я пишу некоторый код на 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
...