Векторизованная версия алгоритма Брента (поиск корня)Python

Программы на Python
Ответить
Anonymous
 Векторизованная версия алгоритма Брента (поиск корня)

Сообщение Anonymous »

Я работаю над версией уравнения состояния морской воды на Python (http://www.teos-10.org/). Библиотека зависит от обращения уравнений, таких как p = f(t,d), где вы можете напрямую вычислить f(t,d), если вы знали t и d, но обычно у вас есть t и p. Это всего лишь проблема поиска корня, и в библиотеке есть варианты использования методов Ньютона, деления пополам или Брента. (В частности, для метода Брента см. вики https://en.wikipedia.org/wiki/Brent%27s_method.)

Однако библиотека находит корни для отдельных значений t и p. Я хочу, чтобы моя версия была доступна для построения графиков и исследования уравнения состояния, поэтому я хочу разрешить векторные (числовые массивы) значения t и p. Векторизация методов Ньютона и бисекции была довольно простой, но метод Брента имеет множество условий, которые я не могу усвоить.

Есть какие-нибудь советы о том, как векторизовать этот метод? Что еще более важно, будет ли эта векторизация на самом деле быстрее, чем циклический перебор значений в массивах t и p?

Подробнее здесь: https://stackoverflow.com/questions/338 ... ot-finding
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»