Я пытаюсь решить уравнение численно, используя fsolve
на интервале 0,100 с максимальными решениями n
. Я сделал это в Maple, и он делает то, что мне нужно.
Вот мой код:
E:= proc (a, n, maxe) local E1, E2; E1 := fsolve(tan((1/2)*w*a) ==
tanh((1/2)*w*a), w, 0 .. maxe, maxsols = n); E2 := {-E1[2 .. -1]} union {E1}
end proc:
aa:=1.5; nn:=4: sqrtener(aa,nn,100);
Мой вывод:
{-20.42035224, -14.13716549, -7.853204624, 0., 7.853204624, 14.13716549, 20.42035224}
Но я должен переписать его на языке Python. Так используется та же функция:
def E(a, n, maxe):
E1 = fsolve(lambda w : np.tan(w * a / 2) - np.tanh(w * a / 2),range(maxe), maxfev = n)
E2 = set(np.array(E1)) | set(np.array((-1)*E1[:-1]-1))
return(E2)
print(E(1.5,4,100))
Но он возвращает мне 200 чисел от -100 до 100, даже если я поставлю параметр maxfev = 4
Может быть, кто-то знает другую функцию вместо fsolve?