Найти - Пользователи
Полная версия: Помогите пожалуйста с программой нахождения корней на заданном интервале
Начало » Python для новичков » Помогите пожалуйста с программой нахождения корней на заданном интервале
1
Simarglur
Требуется найти корни уравнения вида :
(E^(200 I k0) - 3 E^(600 I k0))/(-3 + E^(400 I k0)) = 1
на заданном интервале (предполагается что уравнения в общем-то будут разные в дальнейшем, но подобного вида).

Сперва написала такую задачу в wolfram mathematika
In[33]:= NSolve[(E^(200 I k0) - 3 E^(600 I k0))/(-3 + E^(400 I k0)) == 1 
&& -0.05067731239 <= Re[ k0 ] <= 0.05067731239, k0]
Out[33]={{k0 -> -0.0429185 + 0. I}, {k0 -> -0.0314159}, {k0 -> -0.0199133 + 0. I},
{k0 -> -0.0115026 + 0. I}, {k0 -> 0.}, {k0 -> 0.0115026 + 0. I}, {k0 -> 0.0199133 + 0. I},
{k0 -> 0.0314159}, {k0 -> 0.0429185 + 0. I}}
Тут вроде все верно.

Теперь пытаюсь написать похожее решение на Python.
Вот пример кода:
 from sympy import Symbol, sin, cos, I, exp, pi, solve, Eq, simplify, nsolve, solveset, pprint, ImageSet
k0 = Symbol('k0')
fun = (exp(200*I*k0) - 3*exp(600*I*k0))/(exp(400*I*k0) - 3) - 1
froot = solveset(fun, k0)
pprint(froot)
здесь пытаюсь в общем виде решить. А вообще тоже надо на интервале. Пробовала и разные численные решения и от Sympy и от scipy.optimize, не получается что-то.
Может вы знаете чем тут можно помочь?
Спасибо


ZerG
ну ответ очевиден.
Код вольфрама не соответствует коду на питоне.
Немного почитайте докупи допишите правильно и все получится.
Но не угадывайте%)
py.user.next
Simarglur
Может вы знаете чем тут можно помочь?
На Wolfram вычисляет корни.
На sympy v1.0 виснет
  
>>> solveset((exp(200 * x * I) - 3 * exp(600 * x * I)) / (-3 + exp(400 * x * I)) - 1)
повисло
Simarglur
py.user.next
На Wolfram вычисляет корни.
На simpy виснет
вот и я о том же
py.user.next
Simarglur
вот и я о том же
Можешь запулить им в багтрекер инфу, что Wolfram вычисляет, а их модуль виснет
https://github.com/sympy/sympy/issues/

Лучше начать с их группы, так как может и быть решение у проблемы какое-то.

Все вопросы по sympy туда, так как это сторонний модуль. Разработчики питона к этому не имеют отношения.
Simarglur
py.user.next
Можешь запулить

закинула, спасибо
Simarglur
А какие-то другие способы есть? просто по всякому пробовала ни в какую. Может есть еще что-то чего я не знаю ?
py.user.next
Simarglur
А какие-то другие способы есть?
Есть клиент для Wolfram
https://pypi.org/search/?q=wolfram
https://pypi.org/project/wolframalpha/
Simarglur
py.user.next
Есть клиент для Wolfram
ух ты, спасибо огромное
щас гляну…
Simarglur
пока выкрутилась тем что ищу через nsolve в окрестностях каждой точки, которая выбирается в заданном интервале с определенным шагом, а потом упорядочиваю результаты. Неудобно, но что поделать.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB